diff --git a/aleksis/apps/alsijil/preferences.py b/aleksis/apps/alsijil/preferences.py index 010c1a6961053e2c5510bf83182a0e8cc30f5a09..fb831301e4bae0138026271ecff80581d72cfb81 100644 --- a/aleksis/apps/alsijil/preferences.py +++ b/aleksis/apps/alsijil/preferences.py @@ -46,6 +46,14 @@ class CarryOverDataToNextPeriods(BooleanPreference): help_text = _("This will carry over data only if the data in the following periods are empty.") +@site_preferences_registry.register +class CarryOverPersonalNotesToNextPeriods(BooleanPreference): + section = alsijil + name = "carry_over_personal_notes" + default = True + verbose_name = _("Carry over personal notes to all following lesson periods on the same day.") + + @site_preferences_registry.register class AllowOpenPeriodsOnSameDay(BooleanPreference): section = alsijil diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html b/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html index 0f55e11eaeffe87ca49564074b10cbbae1acc398..021f227eb261ed757200b485660ee0cd9f23b5c5 100644 --- a/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html +++ b/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html @@ -75,7 +75,7 @@ <div class="col s12" id="week-overview"> {% regroup lesson_periods by period.get_weekday_display as periods_by_day %} {% for weekday, periods in periods_by_day %} - {% with weekdays|get_dict:forloop.counter0 as advanced_weekday %} + {% with weekdays|get_dict:periods.0.period.weekday as advanced_weekday %} {% weekday_to_date week periods.0.period.weekday as current_date %} {% if advanced_weekday.holiday and not request.site.preferences.alsijil__allow_entries_in_holidays %} diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index 24da1a73817d4fcf1d49bbb9360497a2decadb47..6519310b0657924e08aa94ab971acc7f5373d91a 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -169,17 +169,19 @@ def lesson( reversion.set_user(request.user) instances = personal_note_formset.save() - # Iterate over personal notes and carry changed absences to following lessons - with reversion.create_revision(): - reversion.set_user(request.user) - for instance in instances: - instance.person.mark_absent( - wanted_week[lesson_period.period.weekday], - lesson_period.period.period + 1, - instance.absent, - instance.excused, - instance.excuse_type, - ) + if get_site_preferences()["alsijil__carry_over_personal_notes"]: + # Iterate over personal notes + # and carry changed absences to following lessons + with reversion.create_revision(): + reversion.set_user(request.user) + for instance in instances: + instance.person.mark_absent( + wanted_week[lesson_period.period.weekday], + lesson_period.period.period + 1, + instance.absent, + instance.excused, + instance.excuse_type, + ) messages.success(request, _("The personal notes have been saved."))