diff --git a/aleksis/apps/alsijil/preferences.py b/aleksis/apps/alsijil/preferences.py new file mode 100644 index 0000000000000000000000000000000000000000..e2a55de885f3e415d9b4e461ab3192f899af2398 --- /dev/null +++ b/aleksis/apps/alsijil/preferences.py @@ -0,0 +1,16 @@ +from django.utils.translation import gettext as _ + +from dynamic_preferences.preferences import Section +from dynamic_preferences.types import BooleanPreference + +from aleksis.core.registries import site_preferences_registry + +alsijil = Section("alsijil", verbose_name=_("Class register")) + + +@site_preferences_registry.register +class BlockPersonalNotesForCancelled(BooleanPreference): + section = alsijil + name = "block_personal_notes_for_cancelled" + default = True + verbose_name = _("Block adding personal notes for cancelled lessons") diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html index 6c3fe8815a34397c7158d6a7bc340693ef4a9883..9fca5de56fc8bd6316a4db3728ae449cd3882cbb 100644 --- a/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html +++ b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html @@ -59,7 +59,7 @@ <li class="tab"> <a href="#lesson-documentation">{% trans "Lesson documentation" %}</a> </li> - {% if not lesson_period.get_substitution.cancelled %} + {% if not lesson_period.get_substitution.cancelled or not request.site.preferences.alsijil__block_personal_notes_for_cancelled %} <li class="tab"> <a href="#personal-notes">{% trans "Personal notes" %}</a> </li> @@ -148,7 +148,7 @@ </div> </div> - {% if not lesson_period.get_substitution.cancelled %} + {% if not lesson_period.get_substitution.cancelled or not request.site.preferences.alsijil__block_personal_notes_for_cancelled %} <div class="col s12" id="personal-notes"> <div class="card"> <div class="card-content"> diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index ed86040791aa2aaafaf84d24eaf95f305765719c..c5213e5f23aeade67cc70c7dde5471eb32b21696 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -20,6 +20,7 @@ from aleksis.apps.chronos.util.date import week_weekday_to_date from aleksis.core.mixins import AdvancedCreateView, AdvancedDeleteView, AdvancedEditView from aleksis.core.models import Group, Person, SchoolTerm from aleksis.core.util import messages +from aleksis.core.util.core_helpers import get_site_preferences from .forms import ( ExcuseTypeForm, @@ -115,7 +116,10 @@ def lesson( messages.success(request, _("The lesson documentation has been saved.")) substitution = lesson_period.get_substitution() - if not getattr(substitution, "cancelled", False): + if ( + not getattr(substitution, "cancelled", False) + or not get_site_preferences()["alsijil__block_personal_notes_for_cancelled"] + ): if personal_note_formset.is_valid(): instances = personal_note_formset.save()