diff --git a/aleksis/apps/alsijil/preferences.py b/aleksis/apps/alsijil/preferences.py index 9958d72d831b8978178301c8fa7123d0222e47e4..d5552c5e03a37d530d1355c99ef56706616e5380 100644 --- a/aleksis/apps/alsijil/preferences.py +++ b/aleksis/apps/alsijil/preferences.py @@ -24,6 +24,16 @@ class ViewOwnPersonalNotes(BooleanPreference): verbose_name = _("Allow users to view their own personal notes") +@site_preferences_registry.register +class RegisterAbsenceAsPrimaryGroupOwner(BooleanPreference): + section = alsijil + name = "register_absence_as_primary_group_owner" + default = True + verbose_name = _( + "Allow primary group owners to register future absences for students in their groups" + ) + + @site_preferences_registry.register class CarryOverDataToNextPeriods(BooleanPreference): section = alsijil diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py index 3e4ccd46162123dae4ef039d6657464a976494eb..0e30bebb51ff664dc1a8869d8528cb084e5731c3 100644 --- a/aleksis/apps/alsijil/rules.py +++ b/aleksis/apps/alsijil/rules.py @@ -129,7 +129,10 @@ register_absence_predicate = has_person & ( has_global_perm("alsijil.register_absence") | has_person_group_object_perm("core.register_absence_group") | has_object_perm("core.register_absence_person") - | is_person_primary_group_owner + | ( + is_person_primary_group_owner + & is_site_preference_set("alsijil", "register_absence_as_primary_group_owner") + ) ) add_perm("alsijil.register_absence", register_absence_predicate)