|
2 | 2 | import datetime |
3 | 3 |
|
4 | 4 | from django.utils.translation import gettext |
5 | | -from django.db import models |
| 5 | +from django.db import models, transaction |
6 | 6 |
|
7 | 7 | from rest_framework import serializers |
8 | 8 |
|
|
34 | 34 | from dref.imminent_utils import extract_imminent_file |
35 | 35 | from dref.assessment_utils import extract_assessment_file |
36 | 36 |
|
| 37 | +from .tasks import send_dref_email |
| 38 | + |
37 | 39 |
|
38 | 40 | class RiskSecuritySerializer(ModelSerializer): |
39 | 41 | class Meta: |
@@ -160,7 +162,7 @@ def create(self, validated_data): |
160 | 162 | created_by = self.context['request'].user |
161 | 163 | dref = extract_assessment_file(file, created_by) |
162 | 164 | if not dref: |
163 | | - raise serializers.ValidationError(ugettext('Can\'t dref from supplied data')) |
| 165 | + raise serializers.ValidationError(gettext('Can\'t dref from supplied data')) |
164 | 166 | validated_data['dref'] = dref |
165 | 167 | return super().create(validated_data) |
166 | 168 |
|
@@ -422,7 +424,11 @@ def create(self, validated_data): |
422 | 424 | dref_assessment_report = super().create(validated_data) |
423 | 425 | dref_assessment_report.needs_identified.clear() |
424 | 426 | return dref_assessment_report |
425 | | - return super().create(validated_data) |
| 427 | + dref = super().create(validated_data) |
| 428 | + transaction.on_commit( |
| 429 | + lambda: send_dref_email.delay(dref.id) |
| 430 | + ) |
| 431 | + return dref |
426 | 432 |
|
427 | 433 | def update(self, instance, validated_data): |
428 | 434 | validated_data['modified_by'] = self.context['request'].user |
@@ -452,7 +458,11 @@ def update(self, instance, validated_data): |
452 | 458 | dref_assessment_report = super().update(instance, validated_data) |
453 | 459 | dref_assessment_report.needs_identified.clear() |
454 | 460 | return dref_assessment_report |
455 | | - return super().update(instance, validated_data) |
| 461 | + dref = super().update(instance, validated_data) |
| 462 | + transaction.on_commit( |
| 463 | + lambda: send_dref_email.delay(dref.id) |
| 464 | + ) |
| 465 | + return dref |
456 | 466 |
|
457 | 467 |
|
458 | 468 | class DrefOperationalUpdateSerializer( |
|
0 commit comments