From 9a7e4ee589fbea225b38e96009f58e1cdc05c662 Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Fri, 16 Jul 2021 09:38:43 +0200
Subject: [PATCH] Deprecate NullBooleanField in favour of
 BooleanField(null=True)

---
 .../0006_alter_comment_needs_doi.py           | 18 ++++++++++++
 scipost_django/comments/models.py             |  5 +++-
 .../0017_alter_subsidy_renewable.py           | 18 ++++++++++++
 scipost_django/finances/models.py             |  4 ++-
 .../migrations/0011_alter_motion_accepted.py  | 18 ++++++++++++
 scipost_django/forums/models.py               |  4 ++-
 .../migrations/0111_auto_20210716_0937.py     | 28 +++++++++++++++++++
 scipost_django/journals/models/deposits.py    | 15 ++++++++--
 .../migrations/0108_auto_20210716_0937.py     | 23 +++++++++++++++
 .../submissions/models/referee_invitation.py  |  6 +++-
 scipost_django/submissions/models/report.py   |  2 +-
 11 files changed, 133 insertions(+), 8 deletions(-)
 create mode 100644 scipost_django/comments/migrations/0006_alter_comment_needs_doi.py
 create mode 100644 scipost_django/finances/migrations/0017_alter_subsidy_renewable.py
 create mode 100644 scipost_django/forums/migrations/0011_alter_motion_accepted.py
 create mode 100644 scipost_django/journals/migrations/0111_auto_20210716_0937.py
 create mode 100644 scipost_django/submissions/migrations/0108_auto_20210716_0937.py

diff --git a/scipost_django/comments/migrations/0006_alter_comment_needs_doi.py b/scipost_django/comments/migrations/0006_alter_comment_needs_doi.py
new file mode 100644
index 000000000..e540695f9
--- /dev/null
+++ b/scipost_django/comments/migrations/0006_alter_comment_needs_doi.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2.5 on 2021-07-16 07:37
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('comments', '0005_auto_20190623_0954'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='comment',
+            name='needs_doi',
+            field=models.BooleanField(default=None, null=True),
+        ),
+    ]
diff --git a/scipost_django/comments/models.py b/scipost_django/comments/models.py
index fb646ec83..ec531d2c5 100644
--- a/scipost_django/comments/models.py
+++ b/scipost_django/comments/models.py
@@ -70,7 +70,10 @@ class Comment(TimeStampedModel):
                                            verbose_name='optional remarks for the Editors only')
     date_submitted = models.DateTimeField('date submitted', default=timezone.now)
 
-    needs_doi = models.NullBooleanField(default=None)
+    needs_doi = models.BooleanField(
+        null=True,
+        default=None
+    )
     doideposit_needs_updating = models.BooleanField(default=False)
     genericdoideposit = GenericRelation('journals.GenericDOIDeposit',
                                         related_query_name='genericdoideposit')
diff --git a/scipost_django/finances/migrations/0017_alter_subsidy_renewable.py b/scipost_django/finances/migrations/0017_alter_subsidy_renewable.py
new file mode 100644
index 000000000..9bc6419a4
--- /dev/null
+++ b/scipost_django/finances/migrations/0017_alter_subsidy_renewable.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2.5 on 2021-07-16 07:37
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('finances', '0016_auto_20200901_0631'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='subsidy',
+            name='renewable',
+            field=models.BooleanField(null=True),
+        ),
+    ]
diff --git a/scipost_django/finances/models.py b/scipost_django/finances/models.py
index 21c93ef71..d4845c7a4 100644
--- a/scipost_django/finances/models.py
+++ b/scipost_django/finances/models.py
@@ -45,7 +45,9 @@ class Subsidy(models.Model):
     status = models.CharField(max_length=32, choices=SUBSIDY_STATUS)
     date = models.DateField()
     date_until = models.DateField(blank=True, null=True)
-    renewable = models.NullBooleanField()
+    renewable = models.BooleanField(
+        null=True
+    )
     renewal_of = models.ManyToManyField('self', related_name='renewed_by',
                                         symmetrical=False, blank=True)
 
diff --git a/scipost_django/forums/migrations/0011_alter_motion_accepted.py b/scipost_django/forums/migrations/0011_alter_motion_accepted.py
new file mode 100644
index 000000000..f6e521efb
--- /dev/null
+++ b/scipost_django/forums/migrations/0011_alter_motion_accepted.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2.5 on 2021-07-16 07:37
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('forums', '0010_auto_20190621_0701'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='motion',
+            name='accepted',
+            field=models.BooleanField(null=True),
+        ),
+    ]
diff --git a/scipost_django/forums/models.py b/scipost_django/forums/models.py
index 1487a3960..43823a060 100644
--- a/scipost_django/forums/models.py
+++ b/scipost_django/forums/models.py
@@ -254,6 +254,8 @@ class Motion(Post):
     in_abstain = models.ManyToManyField('auth.User', blank=True,
                                         related_name='abstain_with_motion')
     voting_deadline = models.DateField()
-    accepted = models.NullBooleanField()
+    accepted = models.BooleanField(
+        null=True
+    )
 
     objects = models.Manager()
diff --git a/scipost_django/journals/migrations/0111_auto_20210716_0937.py b/scipost_django/journals/migrations/0111_auto_20210716_0937.py
new file mode 100644
index 000000000..bde5ae385
--- /dev/null
+++ b/scipost_django/journals/migrations/0111_auto_20210716_0937.py
@@ -0,0 +1,28 @@
+# Generated by Django 3.2.5 on 2021-07-16 07:37
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('journals', '0110_auto_20210716_0926'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='deposit',
+            name='deposit_successful',
+            field=models.BooleanField(default=None, null=True),
+        ),
+        migrations.AlterField(
+            model_name='doajdeposit',
+            name='deposit_successful',
+            field=models.BooleanField(default=None, null=True),
+        ),
+        migrations.AlterField(
+            model_name='genericdoideposit',
+            name='deposit_successful',
+            field=models.BooleanField(default=None, null=True),
+        ),
+    ]
diff --git a/scipost_django/journals/models/deposits.py b/scipost_django/journals/models/deposits.py
index b67472047..432b17b83 100644
--- a/scipost_django/journals/models/deposits.py
+++ b/scipost_django/journals/models/deposits.py
@@ -23,7 +23,10 @@ class Deposit(models.Model):
     metadata_xml_file = models.FileField(blank=True, null=True, max_length=512)
     deposition_date = models.DateTimeField(blank=True, null=True)
     response_text = models.TextField(blank=True)
-    deposit_successful = models.NullBooleanField(default=None)
+    deposit_successful = models.BooleanField(
+        null=True,
+        default=None
+    )
 
     class Meta:
         ordering = ['-timestamp']
@@ -45,7 +48,10 @@ class DOAJDeposit(models.Model):
     metadata_DOAJ_file = models.FileField(blank=True, null=True, max_length=512)
     deposition_date = models.DateTimeField(blank=True, null=True)
     response_text = models.TextField(blank=True, null=True)
-    deposit_successful = models.NullBooleanField(default=None)
+    deposit_successful = models.BooleanField(
+        null=True,
+        default=None
+    )
 
     class Meta:
         verbose_name = 'DOAJ deposit'
@@ -67,7 +73,10 @@ class GenericDOIDeposit(models.Model):
     metadata_xml = models.TextField(blank=True, null=True)
     deposition_date = models.DateTimeField(blank=True, null=True)
     response = models.TextField(blank=True, null=True)
-    deposit_successful = models.NullBooleanField(default=None)
+    deposit_successful = models.BooleanField(
+        null=True,
+        default=None
+    )
 
     class Meta:
         ordering = ['-timestamp']
diff --git a/scipost_django/submissions/migrations/0108_auto_20210716_0937.py b/scipost_django/submissions/migrations/0108_auto_20210716_0937.py
new file mode 100644
index 000000000..b3c89a313
--- /dev/null
+++ b/scipost_django/submissions/migrations/0108_auto_20210716_0937.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.5 on 2021-07-16 07:37
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('submissions', '0107_alter_submission_metadata'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='refereeinvitation',
+            name='accepted',
+            field=models.BooleanField(choices=[(None, 'Response pending'), (True, 'Accept'), (False, 'Decline')], default=None, null=True),
+        ),
+        migrations.AlterField(
+            model_name='report',
+            name='needs_doi',
+            field=models.BooleanField(default=None, null=True),
+        ),
+    ]
diff --git a/scipost_django/submissions/models/referee_invitation.py b/scipost_django/submissions/models/referee_invitation.py
index 63728b5c7..1e180dd26 100644
--- a/scipost_django/submissions/models/referee_invitation.py
+++ b/scipost_django/submissions/models/referee_invitation.py
@@ -55,7 +55,11 @@ class RefereeInvitation(SubmissionRelatedObjectMixin, models.Model):
     auto_reminders_allowed = models.BooleanField(default=True)
     nr_reminders = models.PositiveSmallIntegerField(default=0)
     date_last_reminded = models.DateTimeField(blank=True, null=True)
-    accepted = models.NullBooleanField(choices=ASSIGNMENT_NULLBOOL, default=None)
+    accepted = models.BooleanField(
+        null=True,
+        choices=ASSIGNMENT_NULLBOOL,
+        default=None
+    )
     date_responded = models.DateTimeField(blank=True, null=True)
     refusal_reason = models.CharField(
         max_length=3,
diff --git a/scipost_django/submissions/models/report.py b/scipost_django/submissions/models/report.py
index b83407799..f14e4cb84 100644
--- a/scipost_django/submissions/models/report.py
+++ b/scipost_django/submissions/models/report.py
@@ -72,7 +72,7 @@ class Report(SubmissionRelatedObjectMixin, models.Model):
     recommendation = models.SmallIntegerField(null=True, blank=True, choices=REPORT_REC)
     remarks_for_editors = models.TextField(blank=True,
                                            verbose_name='optional remarks for the Editors only')
-    needs_doi = models.NullBooleanField(default=None)
+    needs_doi = models.BooleanField(null=True, default=None)
     doideposit_needs_updating = models.BooleanField(default=False)
     genericdoideposit = GenericRelation('journals.GenericDOIDeposit',
                                         related_query_name='genericdoideposit')
-- 
GitLab