From 9b531bc09e1b9677a67a5878c1138a8bc00d4c54 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Tue, 16 Nov 2021 12:26:50 +0100 Subject: [PATCH] Refactoring * moves adding of revocation into Intervention model --- intervention/forms/modalForms.py | 28 +------------------ intervention/models/intervention.py | 42 ++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 28 deletions(-) diff --git a/intervention/forms/modalForms.py b/intervention/forms/modalForms.py index b3fc9f3..480ac86 100644 --- a/intervention/forms/modalForms.py +++ b/intervention/forms/modalForms.py @@ -176,33 +176,7 @@ class NewRevocationModalForm(BaseModalForm): } def save(self): - with transaction.atomic(): - created_action = UserActionLogEntry.objects.create( - user=self.user, - action=UserAction.CREATED - ) - edited_action = UserActionLogEntry.objects.create( - user=self.user, - action=UserAction.EDITED - ) - revocation = Revocation.objects.create( - date=self.cleaned_data["date"], - legal=self.instance.legal, - comment=self.cleaned_data["comment"], - created=created_action, - ) - self.instance.modified = edited_action - self.instance.save() - self.instance.log.add(edited_action) - - if self.cleaned_data["file"]: - RevocationDocument.objects.create( - title="revocation_of_{}".format(self.instance.identifier), - date_of_creation=self.cleaned_data["date"], - comment=self.cleaned_data["comment"], - file=self.cleaned_data["file"], - instance=revocation - ) + revocation = self.instance.add_revocation(self) return revocation diff --git a/intervention/models/intervention.py b/intervention/models/intervention.py index 0d7f1d8..4ae3d55 100644 --- a/intervention/models/intervention.py +++ b/intervention/models/intervention.py @@ -15,7 +15,7 @@ from django.utils.translation import gettext_lazy as _ from intervention.managers import InterventionManager from intervention.models.legal import Legal from intervention.models.responsibility import Responsibility -from intervention.models.revocation import RevocationDocument +from intervention.models.revocation import RevocationDocument, Revocation from intervention.utils.quality import InterventionQualityChecker from konova.models import generate_document_file_upload_path, AbstractDocument, Geometry, BaseObject, ShareableObjectMixin, \ RecordableObjectMixin, CheckableObjectMixin @@ -209,6 +209,46 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec self.save() return pay + def add_revocation(self, form): + """ Adds a new revocation to the intervention + + Args: + form (NewPaymentForm): The form holding the data + + Returns: + + """ + form_data = form.cleaned_data + user = form.user + with transaction.atomic(): + created_action = UserActionLogEntry.objects.create( + user=user, + action=UserAction.CREATED + ) + edited_action = UserActionLogEntry.objects.create( + user=user, + action=UserAction.EDITED + ) + revocation = Revocation.objects.create( + date=form_data["date"], + legal=self.legal, + comment=form_data["comment"], + created=created_action, + ) + self.modified = edited_action + self.save() + self.log.add(edited_action) + + if form_data["file"]: + RevocationDocument.objects.create( + title="revocation_of_{}".format(self.identifier), + date_of_creation=form_data["date"], + comment=form_data["comment"], + file=form_data["file"], + instance=revocation + ) + return revocation + class InterventionDocument(AbstractDocument): """