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