diff --git a/SciPost_v1/settings.py b/SciPost_v1/settings.py index 65894af86ddb083fb54710aa0be1c03e331bcdf1..797c834c1fdbcbb4744cf42e62cede241c76eaab 100644 --- a/SciPost_v1/settings.py +++ b/SciPost_v1/settings.py @@ -33,8 +33,10 @@ ALLOWED_HOSTS = [] # Secure proxy SSL header and secure cookies SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') -SESSION_COOKIE_SECURE = host_settings["SESSION_COOKIE_SECURE"] -CSRF_COOKIE_SECURE = host_settings["CSRF_COOKIE_SECURE"] +#SESSION_COOKIE_SECURE = host_settings["SESSION_COOKIE_SECURE"] +SESSION_COOKIE_SECURE = False +#CSRF_COOKIE_SECURE = host_settings["CSRF_COOKIE_SECURE"] +CSRF_COOKIE_SECURE = False # Session expire at browser close SESSION_EXPIRE_AT_BROWSER_CLOSE = True diff --git a/commentaries/migrations/0001_initial.py b/commentaries/migrations/0001_initial.py index ae1d80b84d0195a3b141a892dc404bb595546611..b4993173dd6252cec2981c87c67865a2f3fc5123 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(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), + ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), ('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(null=True, decimal_places=0, default=0, max_digits=3)), + ('clarity_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_validity_ratings', models.IntegerField(default=0)), - ('validity_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('validity_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_rigour_ratings', models.IntegerField(default=0)), - ('rigour_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('rigour_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_originality_ratings', models.IntegerField(default=0)), - ('originality_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('originality_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_significance_ratings', models.IntegerField(default=0)), - ('significance_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('significance_rating', models.DecimalField(max_digits=3, null=True, default=0, 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, related_name='requested_by', blank=True, to='scipost.Contributor')), - ('vetted_by', models.ForeignKey(null=True, blank=True, to='scipost.Contributor')), + ('authors', models.ManyToManyField(to='scipost.Contributor', blank=True, related_name='authors_com')), + ('requested_by', models.ForeignKey(blank=True, related_name='requested_by', to='scipost.Contributor', null=True)), + ('vetted_by', models.ForeignKey(blank=True, to='scipost.Contributor', null=True)), ], ), ] diff --git a/comments/migrations/0001_initial.py b/comments/migrations/0001_initial.py index bcbf9a1a3ec65c1928337d42324732b98840ac1d..100a47806ee4ed4c536e1d55fc236ec689329f88 100644 --- a/comments/migrations/0001_initial.py +++ b/comments/migrations/0001_initial.py @@ -7,38 +7,38 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ + ('reports', '0001_initial'), ('commentaries', '0001_initial'), ('scipost', '0001_initial'), ('submissions', '0001_initial'), - ('reports', '0001_initial'), ] operations = [ migrations.CreateModel( name='AuthorReply', fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), + ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), ('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(null=True, decimal_places=0, default=0, max_digits=3)), + ('relevance_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_importance_ratings', models.IntegerField(default=0)), - ('importance_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('importance_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_clarity_ratings', models.IntegerField(default=0)), - ('clarity_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('clarity_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_validity_ratings', models.IntegerField(default=0)), - ('validity_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('validity_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_rigour_ratings', models.IntegerField(default=0)), - ('rigour_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('rigour_rating', models.DecimalField(max_digits=3, null=True, default=0, 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(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), + ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), ('status', models.SmallIntegerField(default=0)), ('is_rem', models.BooleanField(default=False, verbose_name='remark')), ('is_que', models.BooleanField(default=False, verbose_name='question')), @@ -51,34 +51,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(null=True, decimal_places=0, default=0, max_digits=3)), + ('relevance_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_importance_ratings', models.IntegerField(default=0)), - ('importance_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('importance_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_clarity_ratings', models.IntegerField(default=0)), - ('clarity_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('clarity_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_validity_ratings', models.IntegerField(default=0)), - ('validity_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('validity_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_rigour_ratings', models.IntegerField(default=0)), - ('rigour_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('rigour_rating', models.DecimalField(max_digits=3, null=True, default=0, 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='reports.Report'), + field=models.ForeignKey(blank=True, to='reports.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/ratings/migrations/0001_initial.py b/ratings/migrations/0001_initial.py index c4d9ffa0489776e0cc120a7929effbabe61a59f5..2de2375d8496665b74ce6fee6d8813e2359d37e5 100644 --- a/ratings/migrations/0001_initial.py +++ b/ratings/migrations/0001_initial.py @@ -7,23 +7,23 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ + ('reports', '0001_initial'), ('commentaries', '0001_initial'), ('scipost', '0001_initial'), ('submissions', '0001_initial'), ('comments', '0001_initial'), - ('reports', '0001_initial'), ] operations = [ migrations.CreateModel( name='AuthorReplyRating', fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), - ('relevance', models.PositiveSmallIntegerField(null=True, 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%')))), - ('importance', models.PositiveSmallIntegerField(null=True, 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%')))), - ('clarity', models.PositiveSmallIntegerField(null=True, 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%')))), - ('validity', models.PositiveSmallIntegerField(null=True, 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%')))), - ('rigour', models.PositiveSmallIntegerField(null=True, 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%')))), + ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), + ('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%')))), ('authorreply', models.ForeignKey(to='comments.AuthorReply')), ('rater', models.ForeignKey(to='scipost.Contributor')), ], @@ -34,12 +34,12 @@ class Migration(migrations.Migration): migrations.CreateModel( name='CommentaryRating', fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), - ('clarity', models.PositiveSmallIntegerField(null=True, 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%')))), - ('validity', models.PositiveSmallIntegerField(null=True, 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%')))), - ('rigour', models.PositiveSmallIntegerField(null=True, 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%')))), - ('originality', models.PositiveSmallIntegerField(null=True, 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%')))), - ('significance', models.PositiveSmallIntegerField(null=True, 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%')))), + ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), + ('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%')))), ('commentary', models.ForeignKey(to='commentaries.Commentary')), ('rater', models.ForeignKey(to='scipost.Contributor')), ], @@ -50,12 +50,12 @@ class Migration(migrations.Migration): migrations.CreateModel( name='CommentRating', fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), - ('relevance', models.PositiveSmallIntegerField(null=True, 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%')))), - ('importance', models.PositiveSmallIntegerField(null=True, 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%')))), - ('clarity', models.PositiveSmallIntegerField(null=True, 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%')))), - ('validity', models.PositiveSmallIntegerField(null=True, 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%')))), - ('rigour', models.PositiveSmallIntegerField(null=True, 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%')))), + ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), + ('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%')))), ('comment', models.ForeignKey(to='comments.Comment')), ('rater', models.ForeignKey(to='scipost.Contributor')), ], @@ -66,12 +66,12 @@ class Migration(migrations.Migration): migrations.CreateModel( name='ReportRating', fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), - ('relevance', models.PositiveSmallIntegerField(null=True, 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%')))), - ('importance', models.PositiveSmallIntegerField(null=True, 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%')))), - ('clarity', models.PositiveSmallIntegerField(null=True, 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%')))), - ('validity', models.PositiveSmallIntegerField(null=True, 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%')))), - ('rigour', models.PositiveSmallIntegerField(null=True, 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%')))), + ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), + ('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%')))), ('rater', models.ForeignKey(to='scipost.Contributor')), ('report', models.ForeignKey(to='reports.Report')), ], @@ -82,12 +82,12 @@ class Migration(migrations.Migration): migrations.CreateModel( name='SubmissionRating', fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), - ('clarity', models.PositiveSmallIntegerField(null=True, 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%')))), - ('validity', models.PositiveSmallIntegerField(null=True, 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%')))), - ('rigour', models.PositiveSmallIntegerField(null=True, 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%')))), - ('originality', models.PositiveSmallIntegerField(null=True, 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%')))), - ('significance', models.PositiveSmallIntegerField(null=True, 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%')))), + ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), + ('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%')))), ('rater', models.ForeignKey(to='scipost.Contributor')), ('submission', models.ForeignKey(to='submissions.Submission')), ], diff --git a/reports/migrations/0001_initial.py b/reports/migrations/0001_initial.py index 63a77dfcec66f8dd61f746770d11ad1a06d29933..cd7a3ddced352df71e64b9a6ca54af4ef05b3d97 100644 --- a/reports/migrations/0001_initial.py +++ b/reports/migrations/0001_initial.py @@ -15,7 +15,7 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Report', fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), + ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), ('status', models.SmallIntegerField(default=0)), ('qualification', models.PositiveSmallIntegerField(default=0)), ('strengths', models.TextField()), @@ -23,20 +23,20 @@ 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, blank=True, verbose_name='date invited')), + ('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(null=True, decimal_places=0, default=0, max_digits=3)), + ('relevance_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_importance_ratings', models.IntegerField(default=0)), - ('importance_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('importance_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_clarity_ratings', models.IntegerField(default=0)), - ('clarity_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('clarity_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_validity_ratings', models.IntegerField(default=0)), - ('validity_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('validity_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_rigour_ratings', models.IntegerField(default=0)), - ('rigour_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('rigour_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('author', models.ForeignKey(to='scipost.Contributor')), - ('invited_by', models.ForeignKey(null=True, related_name='invited_by', blank=True, to='scipost.Contributor')), + ('invited_by', models.ForeignKey(blank=True, related_name='invited_by', to='scipost.Contributor', null=True)), ('submission', models.ForeignKey(to='submissions.Submission')), ], ), diff --git a/scipost/templates/scipost/change_password.html b/scipost/templates/scipost/change_password.html index 3c3da05514d6dd441756ee45c39f1cf1847ee060..29846710f67d3912bf302b7e1041c86b970ce2af 100644 --- a/scipost/templates/scipost/change_password.html +++ b/scipost/templates/scipost/change_password.html @@ -6,7 +6,7 @@ <section> <h1>Change your SciPost password</h1> - <form action="{% url 'contributors:change_password' %}" method="post"> + <form action="{% url 'scipost:change_password' %}" method="post"> {% csrf_token %} <table> <ul> diff --git a/scipost/templates/scipost/index.html b/scipost/templates/scipost/index.html index 1a4ffe00fd0e2dce1ab8f594a62fda7a46edbc31..04af8648ef770caf7083c4972d8a5322361fdf77 100644 --- a/scipost/templates/scipost/index.html +++ b/scipost/templates/scipost/index.html @@ -38,12 +38,12 @@ <div class="row"> <div class="col-4"> <h1>SciPost Contributors</h1> - <h3>Registered contributors:</h3> <a href="{% url 'contributors:login' %}">Login to your Personal Page</a> + <h3>Registered contributors:</h3> <a href="{% url 'scipost:login' %}">Login to your Personal Page</a> </div> <div class="col-4"> <h1>Register</h1> <p>Professional scientists (PhD students and above) can become Contributors to SciPost by filling the - <a href="{% url 'contributors:register' %}">registration form</a>.</p> + <a href="{% url 'scipost:register' %}">registration form</a>.</p> </div> <div class="col-4"> <h4>Registered contributors can:</h4> diff --git a/scipost/templates/scipost/login.html b/scipost/templates/scipost/login.html index 1c7e9fefd3a78bf0f622432a41dc85fdec14e583..215c84f48a9408b30f95cbdde154a747443a9183 100644 --- a/scipost/templates/scipost/login.html +++ b/scipost/templates/scipost/login.html @@ -8,7 +8,7 @@ <div class="row"> <div class="col-6"> <h1>Log in to SciPost</h1> - <form action="{% url 'contributors:login' %}" method="post"> + <form action="{% url 'scipost:login' %}" method="post"> {% csrf_token %} <table> <ul> @@ -23,7 +23,7 @@ <div class="col-6"> <h1>Not registered as a Contributor to SciPost?</h1> <p>If you are a professional scientist (PhD student and above), you can register by filling the - <a href="{% url 'contributors:register' %}">registration form</a>.</p> + <a href="{% url 'scipost:register' %}">registration form</a>.</p> </div> {% endif %} </div> diff --git a/scipost/templates/scipost/navbar.html b/scipost/templates/scipost/navbar.html index 98449c912685127bb0d339b81b2cec847ecb5de4..c6fc5ed42fb4af81620c5da0bec540df3cce4703 100644 --- a/scipost/templates/scipost/navbar.html +++ b/scipost/templates/scipost/navbar.html @@ -12,10 +12,10 @@ <div class="col-6"> {% if user.is_authenticated %} <p>Logged in as {{ user.username }}</p> - <a href="{% url 'contributors:logout' %}">Logout</a> - <a href="{% url 'contributors:personal_page' %}">Personal Page</a> + <a href="{% url 'scipost:logout' %}">Logout</a> + <a href="{% url 'scipost:personal_page' %}">Personal Page</a> {% else %} - <a href="{% url 'contributors:login' %}">Login</a> + <a href="{% url 'scipost:login' %}">Login</a> {% endif %} </div> </div> diff --git a/scipost/templates/scipost/personal_page.html b/scipost/templates/scipost/personal_page.html index 3c340b2aaaa486d544f01c802b135eabf6465927..f99c89238bd7164fe8417efafa362780f5ff46f4 100644 --- a/scipost/templates/scipost/personal_page.html +++ b/scipost/templates/scipost/personal_page.html @@ -17,7 +17,7 @@ <div class="col-4"> <h3>Registration actions</h3> <ul> - <li><a href="{% url 'contributors:vet_registration_requests' %}">Vet Registration requests</a> ({{ nr_reg_to_vet }})</li> + <li><a href="{% url 'scipost:vet_registration_requests' %}">Vet Registration requests</a> ({{ nr_reg_to_vet }})</li> </ul> </div> {% endif %} @@ -65,12 +65,12 @@ <div class="row"> <div class="col-6"> <ul> - <li><a href="{% url 'contributors:update_personal_data' %}">Update your personal data</a></li> + <li><a href="{% url 'scipost:update_personal_data' %}">Update your personal data</a></li> </ul> </div> <div class="col-6"> <ul> - <li><a href="{% url 'contributors:change_password' %}">Change your password</a></li> + <li><a href="{% url 'scipost:change_password' %}">Change your password</a></li> </ul> </div> </div> diff --git a/scipost/templates/scipost/register.html b/scipost/templates/scipost/register.html index cfe41fed883e5989d5b2b5e9bb60f300c98b14df..6bcee8ed347836785a7386228e0911b167c62afd 100644 --- a/scipost/templates/scipost/register.html +++ b/scipost/templates/scipost/register.html @@ -6,7 +6,7 @@ <section> <h1>Register to SciPost</h1> - <form action="{% url 'contributors:register' %}" method="post"> + <form action="{% url 'scipost:register' %}" method="post"> {% csrf_token %} <table> <ul> diff --git a/scipost/templates/scipost/update_personal_data.html b/scipost/templates/scipost/update_personal_data.html index 9ee3a82a002907d86c9534f0c16d70fe98aa194a..430b5b3be3f7c2081504a1902ee6af0f0af41423 100644 --- a/scipost/templates/scipost/update_personal_data.html +++ b/scipost/templates/scipost/update_personal_data.html @@ -6,7 +6,7 @@ <section> <h1>Update your personal data</h1> - <form action="{% url 'contributors:update_personal_data' %}" method="post"> + <form action="{% url 'scipost:update_personal_data' %}" method="post"> {% csrf_token %} <table> <ul> diff --git a/scipost/templates/scipost/vet_registration_request_ack.html b/scipost/templates/scipost/vet_registration_request_ack.html index 597018a2441df0321af64ee8666720663394f596..05af61d8e7c86c6a2f1d81e8c6cad76f4b6a2d8a 100644 --- a/scipost/templates/scipost/vet_registration_request_ack.html +++ b/scipost/templates/scipost/vet_registration_request_ack.html @@ -6,7 +6,7 @@ <section> <h1>SciPost Registration request vetted.</h1> - <p><a href="{% url 'contributors:vet_registration_requests' %}">Back to Registration requests page</a></p> + <p><a href="{% url 'scipost:vet_registration_requests' %}">Back to Registration requests page</a></p> </section> {% endblock bodysup %} diff --git a/scipost/templates/scipost/vet_registration_requests.html b/scipost/templates/scipost/vet_registration_requests.html index 8f0900d16f3f6d3d0a35e56561450e8f3e630ed0..0c4d25f770c3cb55a7ed670a16222458f769e7da 100644 --- a/scipost/templates/scipost/vet_registration_requests.html +++ b/scipost/templates/scipost/vet_registration_requests.html @@ -23,7 +23,7 @@ </table> </div> <div class="col-4"> - <form action="{% url 'contributors:vet_registration_request_ack' contributor_id=registration_to_vet.id %}" method="post"> + <form action="{% url 'scipost:vet_registration_request_ack' contributor_id=registration_to_vet.id %}" method="post"> {% csrf_token %} {{ form.as_p }} <input type="submit" value="Submit" /> diff --git a/scipost/views.py b/scipost/views.py index 4da8766faf3555cb3dc199e4278e8ba312dbb56a..16915ea80c6f955c5c6453e2ec1f2ace3fd35abc 100644 --- a/scipost/views.py +++ b/scipost/views.py @@ -3,7 +3,7 @@ from django.utils import timezone from django.shortcuts import get_object_or_404, render from django.contrib.auth import authenticate, login, logout from django.contrib.auth.models import User -from django.core.mail import send_mail +from django.core.mail import EmailMessage from django.core.urlresolvers import reverse from django.http import HttpResponse, HttpResponseRedirect from django.views.decorators.csrf import csrf_protect @@ -62,10 +62,10 @@ def register(request): if form.is_valid(): # check for mismatching passwords if form.cleaned_data['password'] != form.cleaned_data['password_verif']: - return render(request, 'register.html', {'form': form, 'errormessage': 'Your passwords must match'}) + return render(request, 'scipost/register.html', {'form': form, 'errormessage': 'Your passwords must match'}) # check for already-existing username if User.objects.filter(username=form.cleaned_data['username']).exists(): - return render(request, 'register.html', {'form': form, 'errormessage': 'This username is already in use'}) + return render(request, 'scipost/register.html', {'form': form, 'errormessage': 'This username is already in use'}) # create the user user = User.objects.create_user ( first_name = form.cleaned_data['first_name'], @@ -92,11 +92,11 @@ def register(request): form = RegistrationForm() errormessage = '' - return render(request, 'register.html', {'form': form, 'errormessage': errormessage}) + return render(request, 'scipost/register.html', {'form': form, 'errormessage': errormessage}) def thanks_for_registering(request): - return render(request, 'thanks_for_registering.html') + return render(request, 'scipost/thanks_for_registering.html') def vet_registration_requests(request): @@ -104,7 +104,7 @@ def vet_registration_requests(request): registration_requests_to_vet = Contributor.objects.filter(rank=0) form = VetRegistrationForm() context = {'contributor': contributor, 'registration_requests_to_vet': registration_requests_to_vet, 'form': form } - return render(request, 'vet_registration_requests.html', context) + return render(request, 'scipost/vet_registration_requests.html', context) def vet_registration_request_ack(request, contributor_id): @@ -130,7 +130,7 @@ def vet_registration_request_ack(request, contributor_id): contributor.save() context = {} - return render(request, 'vet_registration_request_ack.html', context) + return render(request, 'scipost/vet_registration_request_ack.html', context) def login_view(request): @@ -143,19 +143,19 @@ def login_view(request): login(request, user) contributor = Contributor.objects.get(user=request.user) context = {'contributor': contributor } - return render(request, 'personal_page.html', context) + return render(request, 'scipost/personal_page.html', context) else: - return render(request, 'disabled_account.html') + return render(request, 'scipost/disabled_account.html') else: - return render(request, 'login_error.html') + return render(request, 'scipost/login_error.html') else: form = AuthenticationForm() - return render(request, 'login.html', {'form': form}) + return render(request, 'scipost/login.html', {'form': form}) def logout_view(request): logout(request) - return render(request, 'logout.html') + return render(request, 'scipost/logout.html') def personal_page(request): @@ -178,11 +178,11 @@ def personal_page(request): nr_author_replies_to_vet = AuthorReply.objects.filter(status=0).count() nr_reports_to_vet = Report.objects.filter(status=0).count() context = {'contributor': contributor, 'nr_reg_to_vet': nr_reg_to_vet, 'nr_commentary_page_requests_to_vet': nr_commentary_page_requests_to_vet, 'nr_comments_to_vet': nr_comments_to_vet, 'nr_author_replies_to_vet': nr_author_replies_to_vet, 'nr_reports_to_vet': nr_reports_to_vet, 'nr_submissions_to_process': nr_submissions_to_process } - return render(request, 'personal_page.html', context) + return render(request, 'scipost/personal_page.html', context) else: form = AuthenticationForm() context = {'form': form} - return render(request, 'login.html', context) + return render(request, 'scipost/login.html', context) def change_password(request): @@ -191,21 +191,21 @@ def change_password(request): if form.is_valid(): # verify existing password: if not request.user.check_password(form.cleaned_data['password_prev']): - return render(request, 'change_password.html', {'form': form, 'errormessage': 'The currently existing password you entered is incorrect'}) + return render(request, 'scipost/change_password.html', {'form': form, 'errormessage': 'The currently existing password you entered is incorrect'}) # check for mismatching new passwords if form.cleaned_data['password_new'] != form.cleaned_data['password_verif']: - return render(request, 'change_password.html', {'form': form, 'errormessage': 'Your new password entries must match'}) + return render(request, 'scipost/change_password.html', {'form': form, 'errormessage': 'Your new password entries must match'}) # otherwise simply change the pwd: request.user.set_password(form.cleaned_data['password_new']) request.user.save() - return render(request, 'change_password_ack.html') + return render(request, 'scipost/change_password_ack.html') else: form = PasswordChangeForm() - return render (request, 'change_password.html', {'form': form}) + return render (request, 'scipost/change_password.html', {'form': form}) def change_password_ack(request): - return render (request, 'change_password_ack.html') + return render (request, 'scipost/change_password_ack.html') def update_personal_data(request): @@ -224,18 +224,18 @@ def update_personal_data(request): request.user.contributor.personalwebpage = form.cleaned_data['personalwebpage'] request.user.save() request.user.contributor.save() - return render(request, 'update_personal_data_ack.html') + return render(request, 'scipost/update_personal_data_ack.html') else: #form = UpdatePersonalDataForm() aff = contributor.affiliation prefilldata = {'affiliation': aff} form = UpdatePersonalDataForm(initial=prefilldata) - return render(request, 'update_personal_data.html', {'form': form, 'contributor': contributor}) + return render(request, 'scipost/update_personal_data.html', {'form': form, 'contributor': contributor}) else: form = AuthenticationForm() - return render(request, 'login.html', {'form': form}) + return render(request, 'scipost/login.html', {'form': form}) def update_personal_data_ack(request): - return render (request, 'update_personal_data_ack.html') + return render (request, 'scipost/update_personal_data_ack.html') diff --git a/submissions/migrations/0001_initial.py b/submissions/migrations/0001_initial.py index 937dbc227a36a45624312153b26ab1714a8fe17d..87a9c40616d2ab46d33eb27a4e37de25266c387e 100644 --- a/submissions/migrations/0001_initial.py +++ b/submissions/migrations/0001_initial.py @@ -15,11 +15,11 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Submission', fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), + ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), ('vetted', models.BooleanField(default=False)), - ('submitted_to_journal', models.CharField(max_length=30, 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')])), - ('domain', models.CharField(default='E', max_length=1, choices=[('E', 'Experimental'), ('T', 'Theoretical'), ('C', 'Computational')])), - ('specialization', models.CharField(max_length=1, 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')])), + ('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)), + ('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)), ('open_for_commenting', models.BooleanField(default=True)), @@ -29,18 +29,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(null=True, decimal_places=0, default=0, max_digits=3)), + ('clarity_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_validity_ratings', models.IntegerField(default=0)), - ('validity_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('validity_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_rigour_ratings', models.IntegerField(default=0)), - ('rigour_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('rigour_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_originality_ratings', models.IntegerField(default=0)), - ('originality_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('originality_rating', models.DecimalField(max_digits=3, null=True, default=0, decimal_places=0)), ('nr_significance_ratings', models.IntegerField(default=0)), - ('significance_rating', models.DecimalField(null=True, decimal_places=0, default=0, max_digits=3)), + ('significance_rating', models.DecimalField(max_digits=3, null=True, default=0, 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, related_name='editor_in_charge', blank=True, to='scipost.Contributor')), + ('authors', models.ManyToManyField(to='scipost.Contributor', blank=True, related_name='authors_sub')), + ('editor_in_charge', models.ForeignKey(blank=True, related_name='editor_in_charge', to='scipost.Contributor', null=True)), ('submitted_by', models.ForeignKey(to='scipost.Contributor')), ], ),