From 3c99004ae87a9f5b6a3f1eba6627fc1293de7dab Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Sat, 26 Dec 2020 19:38:29 +0100 Subject: [PATCH] Add missing reset solve option for data checks --- aleksis/apps/alsijil/data_checks.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/aleksis/apps/alsijil/data_checks.py b/aleksis/apps/alsijil/data_checks.py index b256343ec..2b9834a3c 100644 --- a/aleksis/apps/alsijil/data_checks.py +++ b/aleksis/apps/alsijil/data_checks.py @@ -32,6 +32,18 @@ class SetGroupsWithCurrentGroupsSolveOption(SolveOption): check_result.delete() +class ResetPersonalNoteSolveOption(SolveOption): + name = "reset_personal_note" + verbose_name = _("Reset personal note to defaults") + + @classmethod + def solve(cls, check_result: "DataCheckResult"): + note = check_result.related_object + note.reset_values() + note.save() + check_result.delete() + + @DATA_CHECK_REGISTRY.register class NoPersonalNotesInCancelledLessonsDataCheck(DataCheck): name = "no_personal_notes_in_cancelled_lessons" @@ -175,8 +187,7 @@ class ExcusesWithoutAbsences(DataCheck): verbose_name = _("Ensure that there are no excused personal notes without an absence") problem_name = _("The personal note is marked as excused, but not as absent.") solve_options = { - DeleteRelatedObjectSolveOption.name: DeleteRelatedObjectSolveOption, - # FIXME OPTION + ResetPersonalNoteSolveOption.name: ResetPersonalNoteSolveOption, IgnoreSolveOption.name: IgnoreSolveOption, } @@ -188,8 +199,7 @@ class ExcusesWithoutAbsences(DataCheck): ct = ContentType.objects.get_for_model(PersonalNote) - personal_notes = PersonalNote.objects.filter(excused=True, - absent=False) + personal_notes = PersonalNote.objects.filter(excused=True, absent=False) for note in personal_notes: logging.info(f"Check personal note {note}") -- GitLab