From 692a0692cdf354f3e009d1d39f1ee50a354196b5 Mon Sep 17 00:00:00 2001 From: Julian Leucker <leuckerj@gmail.com> Date: Fri, 16 Apr 2021 01:19:17 +0200 Subject: [PATCH] Create an action to mark personal notes as unexcused --- aleksis/apps/alsijil/actions.py | 7 +++++++ aleksis/apps/alsijil/forms.py | 11 +++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/aleksis/apps/alsijil/actions.py b/aleksis/apps/alsijil/actions.py index 04681948e..698c61670 100644 --- a/aleksis/apps/alsijil/actions.py +++ b/aleksis/apps/alsijil/actions.py @@ -19,6 +19,13 @@ def mark_as_excused(modeladmin, request, queryset): mark_as_excused.short_description = _("Mark as excused") +def mark_as_unexcused(modeladmin, request, queryset): + queryset.update(excused=False, excuse_type=None) + + +mark_as_unexcused.short_description = _("Mark as unexcused") + + def mark_as_excuse_type_generator(excuse_type) -> Callable: def mark_as_excuse_type(modeladmin, request, queryset): queryset.update(excused=True, excuse_type=excuse_type) diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py index 190a9a444..67e906e27 100644 --- a/aleksis/apps/alsijil/forms.py +++ b/aleksis/apps/alsijil/forms.py @@ -20,7 +20,14 @@ from aleksis.apps.chronos.models import TimePeriod from aleksis.core.util.core_helpers import get_site_preferences from aleksis.core.util.predicates import check_global_permission -from .actions import delete_personal_note, mark_as_excuse_type_generator, mark_as_excused, send_request_to_check_entry +from .actions import ( + delete_personal_note, + mark_as_excuse_type_generator, + mark_as_excused, + mark_as_unexcused, + send_request_to_check_entry, +) + from .models import ( ExcuseType, ExtraMark, @@ -178,7 +185,7 @@ class ExcuseTypeForm(forms.ModelForm): class PersonOverviewForm(ActionForm): def get_actions(self): - return [mark_as_excused, delete_personal_note] + [ + return [mark_as_excused, mark_as_unexcused, delete_personal_note] + [ mark_as_excuse_type_generator(excuse_type) for excuse_type in ExcuseType.objects.all() ] -- GitLab