diff --git a/dref/migrations/0066_auto_20230803_0758.py b/dref/migrations/0066_auto_20230803_0758.py new file mode 100644 index 000000000..7db5f1833 --- /dev/null +++ b/dref/migrations/0066_auto_20230803_0758.py @@ -0,0 +1,46 @@ +# Generated by Django 3.2.20 on 2023-08-03 07:58 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('dref', '0065_auto_20230728_0405'), + ] + + operations = [ + migrations.AlterField( + model_name='dref', + name='created_by', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_by_dref', to=settings.AUTH_USER_MODEL, verbose_name='created by'), + ), + migrations.AlterField( + model_name='dref', + name='modified_by', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='modified_by_dref', to=settings.AUTH_USER_MODEL, verbose_name='modified by'), + ), + migrations.AlterField( + model_name='dreffinalreport', + name='created_by', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_by_dref_final_report', to=settings.AUTH_USER_MODEL, verbose_name='created by'), + ), + migrations.AlterField( + model_name='dreffinalreport', + name='modified_by', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='modified_by_dref_final_report', to=settings.AUTH_USER_MODEL, verbose_name='modified by'), + ), + migrations.AlterField( + model_name='drefoperationalupdate', + name='created_by', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_by_dref_operational_update', to=settings.AUTH_USER_MODEL, verbose_name='created by'), + ), + migrations.AlterField( + model_name='drefoperationalupdate', + name='modified_by', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='modified_by_dref_operational_update', to=settings.AUTH_USER_MODEL, verbose_name='modified by'), + ), + ] diff --git a/dref/models.py b/dref/models.py index 19dd2c884..0fc9ed053 100644 --- a/dref/models.py +++ b/dref/models.py @@ -230,14 +230,14 @@ class Status(models.IntegerChoices): settings.AUTH_USER_MODEL, verbose_name=_("created by"), on_delete=models.SET_NULL, - null=True, + null=True, blank=True, related_name="created_by_dref", ) modified_by = models.ForeignKey( settings.AUTH_USER_MODEL, verbose_name=_("modified by"), on_delete=models.SET_NULL, - null=True, + null=True, blank=True, related_name="modified_by_dref", ) users = models.ManyToManyField(settings.AUTH_USER_MODEL, verbose_name=_("users"), blank=True, related_name="user_dref") @@ -582,6 +582,7 @@ class Meta: verbose_name_plural = _("drefs") def save(self, *args, **kwargs): + self.full_clean() # required for choice field validation if self.budget_file and self.budget_file_id != self.__budget_file_id: pages = convert_from_bytes(self.budget_file.file.read()) if len(pages) > 0: @@ -666,14 +667,14 @@ class DrefOperationalUpdate(models.Model): settings.AUTH_USER_MODEL, verbose_name=_("created by"), on_delete=models.SET_NULL, - null=True, + null=True, blank=True, related_name="created_by_dref_operational_update", ) modified_by = models.ForeignKey( settings.AUTH_USER_MODEL, verbose_name=_("modified by"), on_delete=models.SET_NULL, - null=True, + null=True, blank=True, related_name="modified_by_dref_operational_update", ) dref = models.ForeignKey(Dref, verbose_name=_("Dref"), on_delete=models.CASCADE) @@ -994,6 +995,7 @@ class Meta: def save(self, *args, **kwargs): # self.status = Dref.Status.COMPLETED if self.is_published else Dref.Status.IN_PROGRESS + self.full_clean() # required for choice field validation super().save(*args, **kwargs) @staticmethod @@ -1024,14 +1026,14 @@ class DrefFinalReport(models.Model): settings.AUTH_USER_MODEL, verbose_name=_("created by"), on_delete=models.SET_NULL, - null=True, + null=True, blank=True, related_name="created_by_dref_final_report", ) modified_by = models.ForeignKey( settings.AUTH_USER_MODEL, verbose_name=_("modified by"), on_delete=models.SET_NULL, - null=True, + null=True, blank=True, related_name="modified_by_dref_final_report", ) dref = models.OneToOneField(Dref, verbose_name=_("Dref"), on_delete=models.CASCADE) @@ -1291,6 +1293,7 @@ class Meta: verbose_name_plural = _("Dref Final Reports") def save(self, *args, **kwargs): + self.full_clean() # required for choice field validation if self.financial_report_id and self.financial_report_id != self.__financial_report_id: pages = convert_from_bytes(self.financial_report.file.read()) if len(pages) > 0: