Skip to content
Snippets Groups Projects
Commit 692a0692 authored by Julian's avatar Julian
Browse files

Create an action to mark personal notes as unexcused

parent 5e992e27
No related branches found
No related tags found
1 merge request!111Resolve "[Person overview] Implement multiple selection for marking absences as excused or for deleting"
Pipeline #7094 failed
......@@ -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)
......
......@@ -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()
]
......
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