#35 Sanity command
* refactors "toggling" of recorded/checked state * introduces mark_as_edited() for RecordableObjectMixin
This commit is contained in:
@@ -485,5 +485,8 @@ class RecordModalForm(BaseModalForm):
|
||||
def save(self):
|
||||
with transaction.atomic():
|
||||
if self.cleaned_data["confirm"]:
|
||||
self.instance.toggle_recorded(self.user)
|
||||
if self.instance.recorded:
|
||||
self.instance.set_unrecorded(self.user)
|
||||
else:
|
||||
self.instance.set_recorded(self.user)
|
||||
return self.instance
|
||||
@@ -203,6 +203,8 @@ class RecordableObjectMixin(models.Model):
|
||||
Returns:
|
||||
|
||||
"""
|
||||
if not self.recorded:
|
||||
return None
|
||||
action = UserActionLogEntry.get_unrecorded_action(user)
|
||||
self.recorded = None
|
||||
self.save()
|
||||
@@ -218,26 +220,27 @@ class RecordableObjectMixin(models.Model):
|
||||
Returns:
|
||||
|
||||
"""
|
||||
if self.recorded:
|
||||
return None
|
||||
action = UserActionLogEntry.get_recorded_action(user)
|
||||
self.recorded = action
|
||||
self.save()
|
||||
self.log.add(action)
|
||||
return action
|
||||
|
||||
def toggle_recorded(self, user: User) -> UserActionLogEntry:
|
||||
""" Un/Record intervention
|
||||
def mark_as_edited(self, performing_user: User):
|
||||
""" In case the object or a related object changed, internal processes need to be started, such as
|
||||
unrecord and uncheck
|
||||
|
||||
Args:
|
||||
user (User): Performing user
|
||||
performing_user (User): The user which performed the editing action
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
if not self.recorded:
|
||||
ret_log_entry = self.set_recorded(user)
|
||||
else:
|
||||
ret_log_entry = self.set_unrecorded(user)
|
||||
return ret_log_entry
|
||||
|
||||
if self.recorded:
|
||||
self.set_unrecorded(performing_user)
|
||||
|
||||
|
||||
class CheckableObjectMixin(models.Model):
|
||||
@@ -262,6 +265,9 @@ class CheckableObjectMixin(models.Model):
|
||||
Returns:
|
||||
|
||||
"""
|
||||
if not self.checked:
|
||||
# Nothing to do
|
||||
return
|
||||
# Do not .delete() the checked attribute! Just set it to None, since a delete() would kill it out of the
|
||||
# log history, which is not what we want!
|
||||
self.checked = None
|
||||
@@ -277,27 +283,15 @@ class CheckableObjectMixin(models.Model):
|
||||
Returns:
|
||||
|
||||
"""
|
||||
if self.checked:
|
||||
# Nothing to do
|
||||
return
|
||||
action = UserActionLogEntry.get_checked_action(user)
|
||||
self.checked = action
|
||||
self.save()
|
||||
self.log.add(action)
|
||||
return action
|
||||
|
||||
def toggle_checked(self, user: User) -> UserActionLogEntry:
|
||||
""" Un/Record intervention
|
||||
|
||||
Args:
|
||||
user (User): Performing user
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
if not self.checked:
|
||||
ret_log_entry = self.set_checked(user)
|
||||
else:
|
||||
ret_log_entry = self.set_unchecked()
|
||||
return ret_log_entry
|
||||
|
||||
|
||||
class ShareableObjectMixin(models.Model):
|
||||
# Users having access on this object
|
||||
|
||||
Reference in New Issue
Block a user