Skip to content

Commit 82ec512

Browse files
committed
Fix modified at usage for DREF
1 parent 21f560b commit 82ec512

File tree

3 files changed

+23
-11
lines changed

3 files changed

+23
-11
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 3.2.16 on 2022-10-24 06:41
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('dref', '0044_alter_dref_modified_at'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='dref',
15+
name='modified_at',
16+
field=models.DateTimeField(auto_now=True, verbose_name='modified at'),
17+
),
18+
]

dref/models.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,8 @@ class Status(models.IntegerChoices):
230230
created_at = models.DateTimeField(verbose_name=_('created at'), auto_now_add=True)
231231
modified_at = models.DateTimeField(
232232
verbose_name=_('modified at'),
233-
default=datetime.now, blank=True
233+
auto_now=True,
234+
blank=True
234235
)
235236
created_by = models.ForeignKey(
236237
settings.AUTH_USER_MODEL, verbose_name=_('created by'), on_delete=models.SET_NULL,

dref/serializers.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ class DrefSerializer(
207207
assessment_report_details = DrefFileSerializer(source='assessment_report', read_only=True)
208208
supporting_document_details = DrefFileSerializer(read_only=True, source='supporting_document')
209209
risk_security = RiskSecuritySerializer(many=True, required=False)
210+
modified_at = serializers.DateTimeField(required=True)
210211

211212
class Meta:
212213
model = Dref
@@ -309,11 +310,6 @@ def validate_operation_timeframe(self, operation_timeframe):
309310
)
310311
return operation_timeframe
311312

312-
def validate_modified_at(self, modified_at):
313-
if self.instance and self.instance.modified_at is None:
314-
raise serializers.ValidationError('Modified At can\'t be None')
315-
return modified_at
316-
317313
def create(self, validated_data):
318314
validated_data['created_by'] = self.context['request'].user
319315
is_assessment_report = validated_data.get('is_assessment_report')
@@ -357,7 +353,7 @@ def update(self, instance, validated_data):
357353
is_assessment_report = validated_data.get('is_assessment_report')
358354
modified_at = validated_data.pop('modified_at', None)
359355
if modified_at is None:
360-
raise serializers.ValidationError('Modified At is required!')
356+
raise serializers.ValidationError({ 'modified_at': 'Modified At is required!' })
361357
if is_assessment_report:
362358
# Previous Operations
363359
validated_data['lessons_learned'] = None
@@ -391,16 +387,13 @@ def update(self, instance, validated_data):
391387
else:
392388
to = None
393389
if modified_at and instance.modified_at and modified_at < instance.modified_at:
394-
raise serializers.ValidationError(
395-
gettext(f'Input Payload in {self.DREF_UPDATE_ERROR_MESSAGE}')
396-
)
390+
raise serializers.ValidationError({ 'modified_at': self.DREF_UPDATE_ERROR_MESSAGE })
397391
dref = super().update(instance, validated_data)
398392
if to:
399393
transaction.on_commit(
400394
lambda: send_dref_email.delay(dref.id, list(to), 'Updated')
401395
)
402396
return dref
403-
return instance
404397

405398

406399
class DrefOperationalUpdateSerializer(

0 commit comments

Comments
 (0)