Skip to content

Commit 24f8b23

Browse files
committed
Remove auto_now from modified_at
1 parent 4d33ec6 commit 24f8b23

File tree

4 files changed

+38
-5
lines changed

4 files changed

+38
-5
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Generated by Django 3.2.20 on 2023-07-28 04:05
2+
3+
from django.db import migrations, models
4+
import django.utils.timezone
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('dref', '0064_dreffinalreport_financial_report_preview'),
11+
]
12+
13+
operations = [
14+
migrations.AlterField(
15+
model_name='dref',
16+
name='modified_at',
17+
field=models.DateTimeField(default=django.utils.timezone.now, null=True, verbose_name='modified at'),
18+
),
19+
migrations.AlterField(
20+
model_name='dreffinalreport',
21+
name='modified_at',
22+
field=models.DateTimeField(default=django.utils.timezone.now, null=True, verbose_name='modified at'),
23+
),
24+
migrations.AlterField(
25+
model_name='drefoperationalupdate',
26+
name='modified_at',
27+
field=models.DateTimeField(default=django.utils.timezone.now, null=True, verbose_name='modified at'),
28+
),
29+
]

dref/models.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from django.templatetags.static import static
1111
from django.core.exceptions import ValidationError
1212
from django.contrib.postgres.aggregates import ArrayAgg
13+
from django.utils import timezone
1314

1415
from api.models import Country, DisasterType, District, FieldReport
1516

@@ -224,7 +225,7 @@ class Status(models.IntegerChoices):
224225
COMPLETED = 1, _("Completed")
225226

226227
created_at = models.DateTimeField(verbose_name=_("created at"), auto_now_add=True)
227-
modified_at = models.DateTimeField(verbose_name=_("modified at"), auto_now=True, blank=True)
228+
modified_at = models.DateTimeField(verbose_name=_("modified at"), default=timezone.now, null=True)
228229
created_by = models.ForeignKey(
229230
settings.AUTH_USER_MODEL,
230231
verbose_name=_("created by"),
@@ -660,7 +661,7 @@ def clone(self, user):
660661
@reversion.register()
661662
class DrefOperationalUpdate(models.Model):
662663
created_at = models.DateTimeField(verbose_name=_("created at"), auto_now_add=True)
663-
modified_at = models.DateTimeField(verbose_name=_("modified at"), auto_now=True, blank=True)
664+
modified_at = models.DateTimeField(verbose_name=_("modified at"), default=timezone.now, null=True)
664665
created_by = models.ForeignKey(
665666
settings.AUTH_USER_MODEL,
666667
verbose_name=_("created by"),
@@ -1018,7 +1019,7 @@ def get_for(user):
10181019
@reversion.register()
10191020
class DrefFinalReport(models.Model):
10201021
created_at = models.DateTimeField(verbose_name=_("created at"), auto_now_add=True)
1021-
modified_at = models.DateTimeField(verbose_name=_("modified at"), auto_now=True)
1022+
modified_at = models.DateTimeField(verbose_name=_("modified at"), default=timezone.now, null=True)
10221023
created_by = models.ForeignKey(
10231024
settings.AUTH_USER_MODEL,
10241025
verbose_name=_("created by"),

dref/serializers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,7 @@ def update(self, instance, validated_data):
518518
to = None
519519
if modified_at and instance.modified_at and modified_at < instance.modified_at:
520520
raise serializers.ValidationError({"modified_at": settings.DREF_OP_UPDATE_FINAL_REPORT_UPDATE_ERROR_MESSAGE})
521+
validated_data["modified_at"] = modified_at
521522
dref = super().update(instance, validated_data)
522523
if to:
523524
transaction.on_commit(lambda: send_dref_email.delay(dref.id, list(to), "Updated"))
@@ -888,6 +889,7 @@ def update(self, instance, validated_data):
888889

889890
if modified_at and instance.modified_at and modified_at < instance.modified_at:
890891
raise serializers.ValidationError({"modified_at": settings.DREF_OP_UPDATE_FINAL_REPORT_UPDATE_ERROR_MESSAGE})
892+
validated_data["modified_at"] = modified_at
891893
return super().update(instance, validated_data)
892894

893895

@@ -1154,7 +1156,7 @@ def update(self, instance, validated_data):
11541156
raise serializers.ValidationError({"modified_at": "Modified At is required!"})
11551157
if modified_at and instance.modified_at and modified_at < instance.modified_at:
11561158
raise serializers.ValidationError({"modified_at": settings.DREF_OP_UPDATE_FINAL_REPORT_UPDATE_ERROR_MESSAGE})
1157-
1159+
validated_data["modified_at"] = modified_at
11581160
validated_data["modified_by"] = self.context["request"].user
11591161
return super().update(instance, validated_data)
11601162

dref/test_views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ def test_dref_is_published(self, mock_now):
402402
Test for dref if is_published = True
403403
"""
404404

405-
initial_now = datetime(2011, 11, 11)
405+
initial_now = datetime(2023, 7, 28)
406406
mock_now.return_value = initial_now
407407

408408
region = Region.objects.create(name=RegionName.AFRICA)
@@ -430,6 +430,7 @@ def test_dref_is_published(self, mock_now):
430430
)
431431
url = f"/api/v2/dref/{not_published_dref.id}/"
432432
self.client.force_authenticate(self.user)
433+
data["modified_at"] = initial_now + timedelta(days=10)
433434
response = self.client.patch(url, data)
434435
self.assert_200(response)
435436

0 commit comments

Comments
 (0)