diff --git a/commentaries/forms.py b/commentaries/forms.py index 60f785b6c123b8bd2a6277954aa54ebc92c78ba9..13853394b85b44f6eed86fd942173a1bf490dd49 100644 --- a/commentaries/forms.py +++ b/commentaries/forms.py @@ -14,16 +14,18 @@ COMMENTARY_REFUSAL_CHOICES = ( (-2, 'this paper cannot be traced'), ) - - -class RequestCommentaryForm(forms.Form): - type = forms.ChoiceField(choices=COMMENTARY_TYPES) - pub_title = forms.CharField(max_length=300, label="Title") - author_list = forms.CharField(max_length=1000) - pub_date = forms.DateField(label="Publication date (YYYY-MM-DD)") - arxiv_link = forms.URLField(label='arXiv link (including version nr)', required=False) - pub_DOI_link = forms.URLField(label='DOI link to the published version', required=False) - pub_abstract = forms.CharField(widget=forms.Textarea, label="Abstract") # need TextField but doesn't exist +#class RequestCommentaryForm(forms.Form): +# type = forms.ChoiceField(choices=COMMENTARY_TYPES) +# pub_title = forms.CharField(max_length=300, label="Title") +# author_list = forms.CharField(max_length=1000) +# pub_date = forms.DateField(label="Publication date (YYYY-MM-DD)") +# arxiv_link = forms.URLField(label='arXiv link (including version nr)', required=False) +# pub_DOI_link = forms.URLField(label='DOI link to the published version', required=False) +# pub_abstract = forms.CharField(widget=forms.Textarea, label="Abstract") # need TextField but doesn't exist +class RequestCommentaryForm(forms.ModelForm): + class Meta: + model = Commentary + fields = ['type', 'pub_title', 'author_list', 'pub_date', 'arxiv_link', 'pub_DOI_link', 'pub_abstract'] class VetCommentaryForm(forms.Form): action_option = forms.ChoiceField(widget=forms.RadioSelect, choices=COMMENTARY_ACTION_CHOICES, required=True, label='Action') diff --git a/commentaries/migrations/0001_initial.py b/commentaries/migrations/0001_initial.py index e798f7a3c20d129b0c0f21f9b6d958a0403dd339..51c59ffdaeb869693ac2371c804eb63bbd767bd1 100644 --- a/commentaries/migrations/0001_initial.py +++ b/commentaries/migrations/0001_initial.py @@ -15,7 +15,7 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Commentary', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, primary_key=True, auto_created=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('vetted', models.BooleanField(default=False)), ('type', models.CharField(max_length=9)), ('open_for_commenting', models.BooleanField(default=True)), @@ -26,19 +26,19 @@ class Migration(migrations.Migration): ('pub_date', models.DateField(verbose_name='date of original publication')), ('pub_abstract', models.TextField()), ('nr_clarity_ratings', models.IntegerField(default=0)), - ('clarity_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('clarity_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_validity_ratings', models.IntegerField(default=0)), - ('validity_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('validity_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_rigour_ratings', models.IntegerField(default=0)), - ('rigour_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('rigour_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_originality_ratings', models.IntegerField(default=0)), - ('originality_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('originality_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_significance_ratings', models.IntegerField(default=0)), - ('significance_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('significance_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('latest_activity', models.DateTimeField(default=django.utils.timezone.now)), - ('authors', models.ManyToManyField(related_name='authors_com', blank=True, to='scipost.Contributor')), - ('requested_by', models.ForeignKey(null=True, blank=True, related_name='requested_by', to='scipost.Contributor')), - ('vetted_by', models.ForeignKey(null=True, blank=True, to='scipost.Contributor')), + ('authors', models.ManyToManyField(blank=True, related_name='authors_com', to='scipost.Contributor')), + ('requested_by', models.ForeignKey(blank=True, to='scipost.Contributor', related_name='requested_by', null=True)), + ('vetted_by', models.ForeignKey(blank=True, to='scipost.Contributor', null=True)), ], ), ] diff --git a/commentaries/models.py b/commentaries/models.py index b90e7d139f40c5b078460c7d6adff5eff3bb1616..cb62119d66a1a9526d5933e1050aff96e5da4d4f 100644 --- a/commentaries/models.py +++ b/commentaries/models.py @@ -16,16 +16,16 @@ class Commentary(models.Model): requested_by = models.ForeignKey (Contributor, blank=True, null=True, related_name='requested_by') vetted = models.BooleanField(default=False) vetted_by = models.ForeignKey (Contributor, blank=True, null=True) - type = models.CharField(max_length=9) # published paper or arxiv preprint + type = models.CharField(max_length=9, choices=COMMENTARY_TYPES) # published paper or arxiv preprint open_for_commenting = models.BooleanField(default=True) - pub_title = models.CharField(max_length=300) - arxiv_link = models.URLField(verbose_name='arXiv link (including version nr)') - pub_DOI_link = models.URLField(verbose_name='DOI link to the original publication') + pub_title = models.CharField(max_length=300, verbose_name='title') + arxiv_link = models.URLField(verbose_name='arXiv link (including version nr)', blank=True) + pub_DOI_link = models.URLField(verbose_name='DOI link to the original publication', blank=True) author_list = models.CharField(max_length=1000) # Authors which have been mapped to contributors: authors = models.ManyToManyField (Contributor, blank=True, related_name='authors_com') pub_date = models.DateField(verbose_name='date of original publication') - pub_abstract = models.TextField() + pub_abstract = models.TextField(verbose_name='abstract') nr_clarity_ratings = models.IntegerField(default=0) clarity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0, null=True) diff --git a/comments/forms.py b/comments/forms.py index 12e89fbed369c6cf9b9b8c44c6b5f6a8b40e414e..d2c4632d86e73d5063a21ece9a2b20be04b3aecf 100644 --- a/comments/forms.py +++ b/comments/forms.py @@ -15,8 +15,6 @@ COMMENT_REFUSAL_CHOICES = ( (-3, 'not useful'), ) - - AUTHOR_REPLY_ACTION_CHOICES = ( # (0, 'modify'), (1, 'accept'), @@ -32,18 +30,22 @@ AUTHOR_REPLY_REFUSAL_CHOICES = ( ) +#class CommentForm(forms.Form): +## category = forms.MultipleChoiceField(choices=COMMENT_CATEGORIES, widget=forms.CheckboxSelectMultiple(), label='Please categorize your comment (multiple choices allowed):') +# is_rem = forms.BooleanField(required=False, label='remark') +# is_que = forms.BooleanField(required=False, label='question') +# is_ans = forms.BooleanField(required=False, label='answer to question') +# is_obj = forms.BooleanField(required=False, label='objection') +# is_rep = forms.BooleanField(required=False, label='reply to objection') +# is_val = forms.BooleanField(required=False, label='validation or rederivation') +# is_lit = forms.BooleanField(required=False, label='pointer to related literature') +# is_sug = forms.BooleanField(required=False, label='suggestions for further work') +# comment_text = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols':80}), label='', required=True) # need TextField but doesn't exist +class CommentForm(forms.ModelForm): + class Meta: + model = Comment + fields = ['is_rem', 'is_que', 'is_ans', 'is_obj', 'is_rep', 'is_val', 'is_lit', 'is_sug', 'comment_text'] -class CommentForm(forms.Form): -# category = forms.MultipleChoiceField(choices=COMMENT_CATEGORIES, widget=forms.CheckboxSelectMultiple(), label='Please categorize your comment (multiple choices allowed):') - is_rem = forms.BooleanField(required=False, label='remark') - is_que = forms.BooleanField(required=False, label='question') - is_ans = forms.BooleanField(required=False, label='answer to question') - is_obj = forms.BooleanField(required=False, label='objection') - is_rep = forms.BooleanField(required=False, label='reply to objection') - is_val = forms.BooleanField(required=False, label='validation or rederivation') - is_lit = forms.BooleanField(required=False, label='pointer to related literature') - is_sug = forms.BooleanField(required=False, label='suggestions for further work') - comment_text = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols':80}), label='', required=True) # need TextField but doesn't exist class VetCommentForm(forms.Form): action_option = forms.ChoiceField(widget=forms.RadioSelect, choices=COMMENT_ACTION_CHOICES, required=True, label='Action') @@ -51,9 +53,13 @@ class VetCommentForm(forms.Form): email_response_field = forms.CharField(widget=forms.Textarea(), label='Justification (optional)', required=False) -class AuthorReplyForm(forms.Form): - reply_text = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols':80}), label='', required=True) -# need TextField but doesn't exist +#class AuthorReplyForm(forms.Form): +# reply_text = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols':80}), label='', required=True) +## need TextField but doesn't exist +class AuthorReplyForm(forms.ModelForm): + class Meta: + model = AuthorReply + fields = ['reply_text'] class VetAuthorReplyForm(forms.Form): action_option = forms.ChoiceField(widget=forms.RadioSelect, choices=AUTHOR_REPLY_ACTION_CHOICES, required=True, label='Action') diff --git a/comments/migrations/0001_initial.py b/comments/migrations/0001_initial.py index cda402bdab55a98c82e5e3e53d566f2d082a7882..8404853e566ba7c82bedeb3cd99557ee13b6e7cf 100644 --- a/comments/migrations/0001_initial.py +++ b/comments/migrations/0001_initial.py @@ -7,37 +7,37 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('scipost', '0001_initial'), ('submissions', '0001_initial'), ('commentaries', '0001_initial'), + ('scipost', '0001_initial'), ] operations = [ migrations.CreateModel( name='AuthorReply', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, primary_key=True, auto_created=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('status', models.SmallIntegerField(default=0)), ('reply_text', models.TextField()), ('date_submitted', models.DateTimeField(verbose_name='date submitted')), ('nr_relevance_ratings', models.IntegerField(default=0)), - ('relevance_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('relevance_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_importance_ratings', models.IntegerField(default=0)), - ('importance_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('importance_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_clarity_ratings', models.IntegerField(default=0)), - ('clarity_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('clarity_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_validity_ratings', models.IntegerField(default=0)), - ('validity_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('validity_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_rigour_ratings', models.IntegerField(default=0)), - ('rigour_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('rigour_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('author', models.ForeignKey(to='scipost.Contributor')), - ('commentary', models.ForeignKey(null=True, blank=True, to='commentaries.Commentary')), + ('commentary', models.ForeignKey(blank=True, to='commentaries.Commentary', null=True)), ], ), migrations.CreateModel( name='Comment', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, primary_key=True, auto_created=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('status', models.SmallIntegerField(default=0)), ('is_rem', models.BooleanField(default=False, verbose_name='remark')), ('is_que', models.BooleanField(default=False, verbose_name='question')), @@ -50,34 +50,34 @@ class Migration(migrations.Migration): ('comment_text', models.TextField()), ('date_submitted', models.DateTimeField(verbose_name='date submitted')), ('nr_relevance_ratings', models.IntegerField(default=0)), - ('relevance_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('relevance_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_importance_ratings', models.IntegerField(default=0)), - ('importance_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('importance_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_clarity_ratings', models.IntegerField(default=0)), - ('clarity_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('clarity_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_validity_ratings', models.IntegerField(default=0)), - ('validity_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('validity_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_rigour_ratings', models.IntegerField(default=0)), - ('rigour_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('rigour_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('author', models.ForeignKey(to='scipost.Contributor')), - ('commentary', models.ForeignKey(null=True, blank=True, to='commentaries.Commentary')), - ('in_reply_to', models.ForeignKey(null=True, blank=True, to='comments.Comment')), - ('submission', models.ForeignKey(null=True, blank=True, to='submissions.Submission')), + ('commentary', models.ForeignKey(blank=True, to='commentaries.Commentary', null=True)), + ('in_reply_to', models.ForeignKey(blank=True, to='comments.Comment', null=True)), + ('submission', models.ForeignKey(blank=True, to='submissions.Submission', null=True)), ], ), migrations.AddField( model_name='authorreply', name='in_reply_to_comment', - field=models.ForeignKey(null=True, blank=True, to='comments.Comment'), + field=models.ForeignKey(blank=True, to='comments.Comment', null=True), ), migrations.AddField( model_name='authorreply', name='in_reply_to_report', - field=models.ForeignKey(null=True, blank=True, to='submissions.Report'), + field=models.ForeignKey(blank=True, to='submissions.Report', null=True), ), migrations.AddField( model_name='authorreply', name='submission', - field=models.ForeignKey(null=True, blank=True, to='submissions.Submission'), + field=models.ForeignKey(blank=True, to='submissions.Submission', null=True), ), ] diff --git a/comments/models.py b/comments/models.py index 73e84820004309db225f6500e46f2732982ce45e..77ed104acdd9542eefd8c2cdef88eb2b92d01f18 100644 --- a/comments/models.py +++ b/comments/models.py @@ -26,8 +26,6 @@ COMMENT_CATEGORIES = ( ('SUG', 'suggestion for further work'), ) - - class Comment(models.Model): """ A Comment is an unsollicited note, submitted by a Contributor, on a particular publication or in reply to an earlier Comment. """ # status: @@ -83,7 +81,7 @@ class AuthorReply(models.Model): in_reply_to_comment = models.ForeignKey(Comment, blank=True, null=True) # one of this and next must be not null in_reply_to_report = models.ForeignKey(Report, blank=True, null=True) author = models.ForeignKey(Contributor) - reply_text = models.TextField() + reply_text = models.TextField(verbose_name="") date_submitted = models.DateTimeField('date submitted') # Aggregates of ratings applied to this comment: nr_relevance_ratings = models.IntegerField(default=0) diff --git a/journals/models.py b/journals/models.py index b64ff88b6653efcab92241431bab8a8e2d01f9fb..956a6385064f81fad69478782627f7d12f1959c4 100644 --- a/journals/models.py +++ b/journals/models.py @@ -49,6 +49,10 @@ SCIPOST_JOURNALS_DOMAINS = ( ('E', 'Experimental'), ('T', 'Theoretical'), ('C', 'Computational'), + ('ET', 'Exp. & Theor.'), + ('EC', 'Exp. & Comp.'), + ('TC', 'Theor. & Comp.'), + ('ETC', 'Exp., Theor. & Comp.'), ) SCIPOST_JOURNALS_SPECIALIZATIONS = ( diff --git a/ratings/migrations/0001_initial.py b/ratings/migrations/0001_initial.py index 43fc9d0649e205ddbfda00208ed6f577ddd75b0c..efcd95e5cf18dae994c7ff6836f95a38c698cbbe 100644 --- a/ratings/migrations/0001_initial.py +++ b/ratings/migrations/0001_initial.py @@ -7,22 +7,22 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('scipost', '0001_initial'), ('submissions', '0001_initial'), - ('comments', '0001_initial'), ('commentaries', '0001_initial'), + ('comments', '0001_initial'), + ('scipost', '0001_initial'), ] operations = [ migrations.CreateModel( name='AuthorReplyRating', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, primary_key=True, auto_created=True)), - ('relevance', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('importance', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('clarity', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('validity', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('rigour', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('relevance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('importance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), ('authorreply', models.ForeignKey(to='comments.AuthorReply')), ('rater', models.ForeignKey(to='scipost.Contributor')), ], @@ -33,12 +33,12 @@ class Migration(migrations.Migration): migrations.CreateModel( name='CommentaryRating', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, primary_key=True, auto_created=True)), - ('clarity', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('validity', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('rigour', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('originality', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('significance', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('originality', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('significance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), ('commentary', models.ForeignKey(to='commentaries.Commentary')), ('rater', models.ForeignKey(to='scipost.Contributor')), ], @@ -49,12 +49,12 @@ class Migration(migrations.Migration): migrations.CreateModel( name='CommentRating', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, primary_key=True, auto_created=True)), - ('relevance', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('importance', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('clarity', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('validity', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('rigour', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('relevance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('importance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), ('comment', models.ForeignKey(to='comments.Comment')), ('rater', models.ForeignKey(to='scipost.Contributor')), ], @@ -65,12 +65,12 @@ class Migration(migrations.Migration): migrations.CreateModel( name='ReportRating', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, primary_key=True, auto_created=True)), - ('relevance', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('importance', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('clarity', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('validity', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('rigour', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('relevance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('importance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), ('rater', models.ForeignKey(to='scipost.Contributor')), ('report', models.ForeignKey(to='submissions.Report')), ], @@ -81,12 +81,12 @@ class Migration(migrations.Migration): migrations.CreateModel( name='SubmissionRating', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, primary_key=True, auto_created=True)), - ('clarity', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('validity', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('rigour', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('originality', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), - ('significance', models.PositiveSmallIntegerField(default=0, null=True, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')))), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('clarity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('validity', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('rigour', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('originality', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), + ('significance', models.PositiveSmallIntegerField(default=0, verbose_name=((101, '-'), (100, '100%'), (90, '90%'), (80, '80%'), (70, '70%'), (60, '60%'), (50, '50%'), (40, '40%'), (30, '30%'), (20, '20%'), (10, '10%'), (0, '0%')), null=True)), ('rater', models.ForeignKey(to='scipost.Contributor')), ('submission', models.ForeignKey(to='submissions.Submission')), ], diff --git a/scipost/forms.py b/scipost/forms.py index 39550cb847a966a8ddfafc19c7453caea5d89fe5..1d67485d6224ed13bbf4e13e3702855b93a3a622 100644 --- a/scipost/forms.py +++ b/scipost/forms.py @@ -1,4 +1,4 @@ -from django import forms +from django import forms from .models import * @@ -33,6 +33,11 @@ class UpdatePersonalDataForm(forms.Form): affiliation = forms.CharField(label='Affiliation', max_length=300) address = forms.CharField(label='Address', max_length=1000, required=False) personalwebpage = forms.URLField(label='Personal web page', required=False) +#class UpdatePersonalDataForm(forms.ModelForm): +# class Meta: +# model = Contributor +# fields = ['title', 'user.first_name', 'user.last_name', 'user.email', 'orcid_id', 'affiliation', 'address', 'personalwebpage'] +# #fields = ['title', 'orcid_id', 'affiliation', 'address', 'personalwebpage'] class VetRegistrationForm(forms.Form): promote_to_rank_1 = forms.BooleanField(required=False) diff --git a/scipost/views.py b/scipost/views.py index 7db4ab8715ed3ac2162cce8e61ee8bb6f1b0de8c..7b37984a7af08e2e5a420590ec78d419ae28adb4 100644 --- a/scipost/views.py +++ b/scipost/views.py @@ -229,6 +229,9 @@ def update_personal_data(request): prefilldata = {'affiliation': aff} form = UpdatePersonalDataForm(initial=prefilldata) return render(request, 'scipost/update_personal_data.html', {'form': form, 'contributor': contributor}) + # Use ModelForm instead: + #form = UpdatePersonalDataForm(instance=contributor) + #return render(request, 'scipost/update_personal_data.html', {'form': form}) else: form = AuthenticationForm() return render(request, 'scipost/login.html', {'form': form}) diff --git a/submissions/forms.py b/submissions/forms.py index 124d4e79acf14c79e9c86cbaf1d4f119ffa6148f..44ff75e5351450156a533badf004e961b59c332d 100644 --- a/submissions/forms.py +++ b/submissions/forms.py @@ -4,14 +4,18 @@ from .models import * from ratings.models import * -class SubmissionForm(forms.Form): - submitted_to_journal = forms.ChoiceField(choices=SCIPOST_JOURNALS_SUBMIT, required=True, label='SciPost Journal to submit to:') - domain = forms.ChoiceField(choices=SCIPOST_JOURNALS_DOMAINS) - specialization = forms.ChoiceField(choices=SCIPOST_JOURNALS_SPECIALIZATIONS) - title = forms.CharField(max_length=300, required=True, label='Title') - author_list = forms.CharField(max_length=1000, required=True) - abstract = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols':60}), label='Abstract', required=True) # need TextField but doesn't exist - arxiv_link = forms.URLField(label='arXiv link (including version nr)', required=True) +#class SubmissionForm(forms.Form): +# submitted_to_journal = forms.ChoiceField(choices=SCIPOST_JOURNALS_SUBMIT, required=True, label='SciPost Journal to submit to:') +# domain = forms.ChoiceField(choices=SCIPOST_JOURNALS_DOMAINS) +# specialization = forms.ChoiceField(choices=SCIPOST_JOURNALS_SPECIALIZATIONS) +# title = forms.CharField(max_length=300, required=True, label='Title') +# author_list = forms.CharField(max_length=1000, required=True) +# abstract = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols':60}), label='Abstract', required=True) # need TextField but doesn't exist +# arxiv_link = forms.URLField(label='arXiv link (including version nr)', required=True) +class SubmissionForm(forms.ModelForm): + class Meta: + model = Submission + fields = ['submitted_to_journal', 'domain', 'specialization', 'title', 'author_list', 'abstract', 'arxiv_link'] class ProcessSubmissionForm(forms.Form): editor_in_charge = forms.ModelChoiceField(queryset=Contributor.objects.filter(rank__gte=3), required=True) @@ -40,13 +44,17 @@ REPORT_REFUSAL_CHOICES = ( (-4, 'not academic in style'), ) -class ReportForm(forms.Form): - qualification = forms.ChoiceField(RATING_CHOICES, label='Your degree of qualification in assessing this Submission') - strengths = forms.CharField(widget=forms.Textarea(), required=False) - weaknesses = forms.CharField(widget=forms.Textarea(), required=False) - report = forms.CharField(widget=forms.Textarea(), required=False) - requested_changes = forms.CharField(widget=forms.Textarea(), required=False) - recommendation = forms.ChoiceField(choices=REPORT_REC) +#class ReportForm(forms.Form): +# qualification = forms.ChoiceField(RATING_CHOICES, label='Your degree of qualification in assessing this Submission') +# strengths = forms.CharField(widget=forms.Textarea(), required=False) +# weaknesses = forms.CharField(widget=forms.Textarea(), required=False) +# report = forms.CharField(widget=forms.Textarea(), required=False) +# requested_changes = forms.CharField(widget=forms.Textarea(), required=False) +# recommendation = forms.ChoiceField(choices=REPORT_REC) +class ReportForm(forms.ModelForm): + class Meta: + model = Report + fields = ['qualification', 'strengths', 'weaknesses', 'report', 'requested_changes', 'recommendation'] class VetReportForm(forms.Form): action_option = forms.ChoiceField(widget=forms.RadioSelect, choices=REPORT_ACTION_CHOICES, required=True, label='Action') diff --git a/submissions/migrations/0001_initial.py b/submissions/migrations/0001_initial.py index 07ae59293cb4da6b359ae1ff1fd3a6deb40e6f2c..5b3c9b3580f80208ede42ef8892c09546fbdf06b 100644 --- a/submissions/migrations/0001_initial.py +++ b/submissions/migrations/0001_initial.py @@ -15,7 +15,7 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Report', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, primary_key=True, auto_created=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('status', models.SmallIntegerField(default=0)), ('qualification', models.PositiveSmallIntegerField(default=0)), ('strengths', models.TextField()), @@ -23,29 +23,29 @@ class Migration(migrations.Migration): ('report', models.TextField()), ('requested_changes', models.TextField()), ('recommendation', models.SmallIntegerField(choices=[(1, 'Publish as Tier I (top 10% of papers in this journal)'), (2, 'Publish as Tier II (top 50% of papers in this journal)'), (3, 'Publish as Tier III (meets the criteria of this journal)'), (-1, 'Ask for minor revision'), (-2, 'Ask for major revision'), (-3, 'Reject')])), - ('date_invited', models.DateTimeField(null=True, verbose_name='date invited', blank=True)), + ('date_invited', models.DateTimeField(blank=True, null=True, verbose_name='date invited')), ('date_submitted', models.DateTimeField(verbose_name='date submitted')), ('nr_relevance_ratings', models.IntegerField(default=0)), - ('relevance_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('relevance_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_importance_ratings', models.IntegerField(default=0)), - ('importance_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('importance_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_clarity_ratings', models.IntegerField(default=0)), - ('clarity_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('clarity_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_validity_ratings', models.IntegerField(default=0)), - ('validity_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('validity_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_rigour_ratings', models.IntegerField(default=0)), - ('rigour_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('rigour_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('author', models.ForeignKey(to='scipost.Contributor')), - ('invited_by', models.ForeignKey(null=True, blank=True, related_name='invited_by', to='scipost.Contributor')), + ('invited_by', models.ForeignKey(blank=True, to='scipost.Contributor', related_name='invited_by', null=True)), ], ), migrations.CreateModel( name='Submission', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, primary_key=True, auto_created=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('vetted', models.BooleanField(default=False)), ('submitted_to_journal', models.CharField(choices=[('SciPost Physics Select', 'SciPost Physics Select'), ('SciPost Physics Letters', 'SciPost Physics Letters'), ('SciPost Physics X', 'SciPost Physics X (cross-division)'), ('SciPost Physics', 'SciPost Physics (Experimental, Theoretical and Computational)'), ('SciPost Physics Lecture Notes', 'SciPost Physics Lecture Notes')], max_length=30)), - ('domain', models.CharField(choices=[('E', 'Experimental'), ('T', 'Theoretical'), ('C', 'Computational')], default='E', max_length=1)), + ('domain', models.CharField(default='E', choices=[('E', 'Experimental'), ('T', 'Theoretical'), ('C', 'Computational')], max_length=1)), ('specialization', models.CharField(choices=[('A', 'Atomic, Molecular and Optical Physics'), ('B', 'Biophysics'), ('C', 'Condensed Matter Physics'), ('F', 'Fluid Dynamics'), ('G', 'Gravitation, Cosmology and Astroparticle Physics'), ('H', 'High-Energy Physics'), ('M', 'Mathematical Physics'), ('N', 'Nuclear Physics'), ('Q', 'Quantum Statistical Mechanics'), ('S', 'Statistical and Soft Matter Physics')], max_length=1)), ('status', models.SmallIntegerField(choices=[(0, 'unassigned'), (1, 'editor in charge assigned'), (2, 'under review'), (3, 'reviewed, peer checking period'), (4, 'reviewed, peer checked, editorial decision pending'), (5, 'editorial decision')])), ('open_for_reporting', models.BooleanField(default=True)), @@ -56,18 +56,18 @@ class Migration(migrations.Migration): ('arxiv_link', models.URLField(verbose_name='arXiv link (including version nr)')), ('submission_date', models.DateField(verbose_name='date of original publication')), ('nr_clarity_ratings', models.IntegerField(default=0)), - ('clarity_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('clarity_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_validity_ratings', models.IntegerField(default=0)), - ('validity_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('validity_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_rigour_ratings', models.IntegerField(default=0)), - ('rigour_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('rigour_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_originality_ratings', models.IntegerField(default=0)), - ('originality_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('originality_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('nr_significance_ratings', models.IntegerField(default=0)), - ('significance_rating', models.DecimalField(default=0, null=True, decimal_places=0, max_digits=3)), + ('significance_rating', models.DecimalField(default=0, max_digits=3, null=True, decimal_places=0)), ('latest_activity', models.DateTimeField(default=django.utils.timezone.now)), - ('authors', models.ManyToManyField(related_name='authors_sub', blank=True, to='scipost.Contributor')), - ('editor_in_charge', models.ForeignKey(null=True, blank=True, related_name='editor_in_charge', to='scipost.Contributor')), + ('authors', models.ManyToManyField(blank=True, related_name='authors_sub', to='scipost.Contributor')), + ('editor_in_charge', models.ForeignKey(blank=True, to='scipost.Contributor', related_name='editor_in_charge', null=True)), ('submitted_by', models.ForeignKey(to='scipost.Contributor')), ], ), diff --git a/submissions/models.py b/submissions/models.py index 940a5289c9b3548fde73d42b9bf121a4ddf2a027..6ab140544a3f557ce67c07fa910837a0e16c905a 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -26,14 +26,14 @@ class Submission(models.Model): submitted_by = models.ForeignKey(Contributor) vetted = models.BooleanField(default=False) editor_in_charge = models.ForeignKey(Contributor, related_name="editor_in_charge", blank=True, null=True) # assigned by Journal Editor - submitted_to_journal = models.CharField(max_length=30, choices=SCIPOST_JOURNALS) - domain = models.CharField(max_length=1, choices=SCIPOST_JOURNALS_DOMAINS, default='E') + submitted_to_journal = models.CharField(max_length=30, choices=SCIPOST_JOURNALS_SUBMIT) + domain = models.CharField(max_length=3, choices=SCIPOST_JOURNALS_DOMAINS) specialization = models.CharField(max_length=1, choices=SCIPOST_JOURNALS_SPECIALIZATIONS) status = models.SmallIntegerField(choices=SUBMISSION_STATUS) # set by Editors open_for_reporting = models.BooleanField(default=True) open_for_commenting = models.BooleanField(default=True) title = models.CharField(max_length=300) - author_list = models.CharField(max_length=1000) + author_list = models.CharField(max_length=1000, verbose_name="author list") # Authors which have been mapped to contributors: authors = models.ManyToManyField (Contributor, blank=True, related_name='authors_sub') abstract = models.TextField() @@ -84,7 +84,7 @@ class Report(models.Model): strengths = models.TextField() weaknesses = models.TextField() report = models.TextField() - requested_changes = models.TextField() + requested_changes = models.TextField(verbose_name="requested changes") recommendation = models.SmallIntegerField(choices=REPORT_REC) date_invited = models.DateTimeField('date invited', blank=True, null=True) invited_by = models.ForeignKey(Contributor, blank=True, null=True, related_name='invited_by')