#36 Quality checks

* refactors toggling of recorded status into RecordableMixin
This commit is contained in:
2021-10-25 17:01:02 +02:00
parent 0e4113249f
commit f6f532effb
5 changed files with 38 additions and 24 deletions

View File

@@ -486,21 +486,5 @@ class RecordModalForm(BaseModalForm):
def save(self):
with transaction.atomic():
if self.cleaned_data["confirm"]:
if self.instance.recorded:
# unrecord!
unrecord_action = UserActionLogEntry.objects.create(
user=self.user,
action=UserAction.UNRECORDED
)
# Do not delete the old .recorded attribute, since it shall stay in the .log list!
self.instance.recorded = None
self.instance.log.add(unrecord_action)
else:
record_action = UserActionLogEntry.objects.create(
user=self.user,
action=UserAction.RECORDED
)
self.instance.recorded = record_action
self.instance.log.add(record_action)
self.instance.save()
self.instance.toggle_recorded(self.user)
return self.instance

View File

@@ -313,3 +313,34 @@ class Geometry(BaseResource):
"""
from konova.settings import DEFAULT_SRID
geom = MultiPolygonField(null=True, blank=True, srid=DEFAULT_SRID)
class RecordableMixin:
""" Mixin to be combined with BaseObject class
Provides functionality related to un/recording of data
"""
def toggle_recorded(self, user: User):
""" Un/Record intervention
Args:
user (User): Performing user
Returns:
"""
if not self.recorded:
action = UserActionLogEntry.objects.create(
user=user,
action=UserAction.RECORDED
)
self.recorded = action
else:
action = UserActionLogEntry.objects.create(
user=user,
action=UserAction.UNRECORDED
)
self.recorded = None
self.save()
self.log.add(action)