diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py index 6571acc5d1084c77561c70d8a3e409215af489d5..ea951fd97a4a7676d775070440a77e8b1b68783e 100644 --- a/aleksis/apps/alsijil/models.py +++ b/aleksis/apps/alsijil/models.py @@ -2,7 +2,6 @@ from django.db import models from django.utils.formats import date_format from django.utils.translation import gettext_lazy as _ -import reversion from calendarweek import CalendarWeek from aleksis.apps.chronos.mixins import WeekRelatedMixin @@ -84,22 +83,21 @@ class PersonalNote(ExtensibleModel, WeekRelatedMixin): self.excuse_type = None super().save(*args, **kwargs) - def reset(self): + def reset_values(self): """Reset all saved data to default values. - This will create revisions internally. + .. warning :: + + This won't save the data, please execute ``save`` extra. """ defaults = PersonalNote() - with reversion.create_revision(): - self.save() - with reversion.create_revision(): - self.absent = defaults.absent - self.late = defaults.late - self.excused = defaults.excused - self.excuse_type = defaults.excuse_type - self.remarks = defaults.remarks - self.extra_marks.clear() - self.save() + + self.absent = defaults.absent + self.late = defaults.late + self.excused = defaults.excused + self.excuse_type = defaults.excuse_type + self.remarks = defaults.remarks + self.extra_marks.clear() def __str__(self): return f"{date_format(self.date)}, {self.lesson_period}, {self.person}" diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index f936e19aac0a8bbefb1221ad5a2261b1f63926df..bb47663efc608389e0b7aaed4bbbecff25d1f6a8 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -9,6 +9,7 @@ from django.urls import reverse, reverse_lazy from django.utils.translation import ugettext as _ from django.views.generic import DetailView +import reversion from calendarweek import CalendarWeek from django_tables2 import SingleTableView from reversion.views import RevisionMixin @@ -645,7 +646,10 @@ class DeletePersonalNoteView(DetailView): def post(self, request, *args, **kwargs): note = self.get_object() - note.reset() + with reversion.create_revision(): + self.save() + with reversion.create_revision(): + note.reset_values() messages.success(request, _("The personal note has been deleted.")) return redirect("overview_person", note.person.pk)