Skip to content

Commit 6645306

Browse files
committed
Add clean method to validate enum
1 parent 980833a commit 6645306

File tree

2 files changed

+55
-6
lines changed

2 files changed

+55
-6
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Generated by Django 3.2.20 on 2023-08-03 07:58
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12+
('dref', '0065_auto_20230728_0405'),
13+
]
14+
15+
operations = [
16+
migrations.AlterField(
17+
model_name='dref',
18+
name='created_by',
19+
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'),
20+
),
21+
migrations.AlterField(
22+
model_name='dref',
23+
name='modified_by',
24+
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'),
25+
),
26+
migrations.AlterField(
27+
model_name='dreffinalreport',
28+
name='created_by',
29+
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'),
30+
),
31+
migrations.AlterField(
32+
model_name='dreffinalreport',
33+
name='modified_by',
34+
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'),
35+
),
36+
migrations.AlterField(
37+
model_name='drefoperationalupdate',
38+
name='created_by',
39+
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'),
40+
),
41+
migrations.AlterField(
42+
model_name='drefoperationalupdate',
43+
name='modified_by',
44+
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'),
45+
),
46+
]

dref/models.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -230,14 +230,14 @@ class Status(models.IntegerChoices):
230230
settings.AUTH_USER_MODEL,
231231
verbose_name=_("created by"),
232232
on_delete=models.SET_NULL,
233-
null=True,
233+
null=True, blank=True,
234234
related_name="created_by_dref",
235235
)
236236
modified_by = models.ForeignKey(
237237
settings.AUTH_USER_MODEL,
238238
verbose_name=_("modified by"),
239239
on_delete=models.SET_NULL,
240-
null=True,
240+
null=True, blank=True,
241241
related_name="modified_by_dref",
242242
)
243243
users = models.ManyToManyField(settings.AUTH_USER_MODEL, verbose_name=_("users"), blank=True, related_name="user_dref")
@@ -582,6 +582,7 @@ class Meta:
582582
verbose_name_plural = _("drefs")
583583

584584
def save(self, *args, **kwargs):
585+
self.full_clean() # required for choice field validation
585586
if self.budget_file and self.budget_file_id != self.__budget_file_id:
586587
pages = convert_from_bytes(self.budget_file.file.read())
587588
if len(pages) > 0:
@@ -666,14 +667,14 @@ class DrefOperationalUpdate(models.Model):
666667
settings.AUTH_USER_MODEL,
667668
verbose_name=_("created by"),
668669
on_delete=models.SET_NULL,
669-
null=True,
670+
null=True, blank=True,
670671
related_name="created_by_dref_operational_update",
671672
)
672673
modified_by = models.ForeignKey(
673674
settings.AUTH_USER_MODEL,
674675
verbose_name=_("modified by"),
675676
on_delete=models.SET_NULL,
676-
null=True,
677+
null=True, blank=True,
677678
related_name="modified_by_dref_operational_update",
678679
)
679680
dref = models.ForeignKey(Dref, verbose_name=_("Dref"), on_delete=models.CASCADE)
@@ -994,6 +995,7 @@ class Meta:
994995

995996
def save(self, *args, **kwargs):
996997
# self.status = Dref.Status.COMPLETED if self.is_published else Dref.Status.IN_PROGRESS
998+
self.full_clean() # required for choice field validation
997999
super().save(*args, **kwargs)
9981000

9991001
@staticmethod
@@ -1024,14 +1026,14 @@ class DrefFinalReport(models.Model):
10241026
settings.AUTH_USER_MODEL,
10251027
verbose_name=_("created by"),
10261028
on_delete=models.SET_NULL,
1027-
null=True,
1029+
null=True, blank=True,
10281030
related_name="created_by_dref_final_report",
10291031
)
10301032
modified_by = models.ForeignKey(
10311033
settings.AUTH_USER_MODEL,
10321034
verbose_name=_("modified by"),
10331035
on_delete=models.SET_NULL,
1034-
null=True,
1036+
null=True, blank=True,
10351037
related_name="modified_by_dref_final_report",
10361038
)
10371039
dref = models.OneToOneField(Dref, verbose_name=_("Dref"), on_delete=models.CASCADE)
@@ -1286,6 +1288,7 @@ class Meta:
12861288
verbose_name_plural = _("Dref Final Reports")
12871289

12881290
def save(self, *args, **kwargs):
1291+
self.full_clean() # required for choice field validation
12891292
if self.financial_report_id and self.financial_report_id != self.__financial_report_id:
12901293
pages = convert_from_bytes(self.financial_report.file.read())
12911294
if len(pages) > 0:

0 commit comments

Comments
 (0)