Refactors triggering checked/recorded
* refactors BaseForm request/user initialization * introduces mark_as_edited() method for compensation models
This commit is contained in:
@@ -10,6 +10,7 @@ import shutil
|
||||
from django.contrib.auth.models import User
|
||||
from django.db import models, transaction
|
||||
from django.db.models import QuerySet, Sum
|
||||
from django.http import HttpRequest
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from compensation.managers import CompensationManager
|
||||
@@ -45,7 +46,7 @@ class AbstractCompensation(BaseObject):
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def add_new_deadline(self, form) -> Deadline:
|
||||
def add_deadline(self, form) -> Deadline:
|
||||
""" Adds a new deadline to the abstract compensation
|
||||
|
||||
Args:
|
||||
@@ -73,7 +74,7 @@ class AbstractCompensation(BaseObject):
|
||||
self.deadlines.add(deadline)
|
||||
return deadline
|
||||
|
||||
def add_new_action(self, form) -> CompensationAction:
|
||||
def add_action(self, form) -> CompensationAction:
|
||||
""" Adds a new action to the compensation
|
||||
|
||||
Args:
|
||||
@@ -86,8 +87,6 @@ class AbstractCompensation(BaseObject):
|
||||
user = form.user
|
||||
with transaction.atomic():
|
||||
user_action = UserActionLogEntry.get_created_action(user)
|
||||
edited_action = UserActionLogEntry.get_edited_action(user, _("Added action"))
|
||||
|
||||
comp_action = CompensationAction.objects.create(
|
||||
action_type=form_data["action_type"],
|
||||
amount=form_data["amount"],
|
||||
@@ -95,9 +94,6 @@ class AbstractCompensation(BaseObject):
|
||||
comment=form_data["comment"],
|
||||
created=user_action,
|
||||
)
|
||||
self.modified = edited_action
|
||||
self.save()
|
||||
self.log.add(edited_action)
|
||||
self.actions.add(comp_action)
|
||||
return comp_action
|
||||
|
||||
@@ -112,13 +108,7 @@ class AbstractCompensation(BaseObject):
|
||||
|
||||
"""
|
||||
form_data = form.cleaned_data
|
||||
user = form.user
|
||||
with transaction.atomic():
|
||||
user_action = UserActionLogEntry.get_edited_action(user, _("Added state"))
|
||||
self.log.add(user_action)
|
||||
self.modified = user_action
|
||||
self.save()
|
||||
|
||||
state = CompensationState.objects.create(
|
||||
biotope_type=form_data["biotope_type"],
|
||||
surface=form_data["surface"],
|
||||
@@ -271,9 +261,17 @@ class Compensation(AbstractCompensation, CEFMixin, CoherenceMixin):
|
||||
)
|
||||
return docs
|
||||
|
||||
def add_new_action(self, form) -> CompensationAction:
|
||||
super().add_new_action(form)
|
||||
self.intervention.set_as_edited(form.user)
|
||||
def mark_as_edited(self, user: User, request: HttpRequest = None, edit_comment: str = None):
|
||||
""" Performs internal logic for setting the recordedd/checked state of the related intervention
|
||||
|
||||
Args:
|
||||
user (User): The performing user
|
||||
request (HttpRequest): The performing request
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
self.intervention.mark_as_edited(user, request, edit_comment)
|
||||
|
||||
|
||||
class CompensationDocument(AbstractDocument):
|
||||
|
||||
Reference in New Issue
Block a user