Skip to content
Snippets Groups Projects
Verified Commit e4f94f12 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Move save and revision logic from model method to view

parent f4d8e0b2
No related branches found
No related tags found
1 merge request!86Resolve "Add option to reset personal note ("delete") at students view for class teachers"
Pipeline #3554 passed
......@@ -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}"
......
......@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment