diff --git a/aleksis/apps/alsijil/model_extensions.py b/aleksis/apps/alsijil/model_extensions.py index 8b5a17af9086e65b12abbb2cc734cf033a7a4a89..e72e347b3fa8d868e070b7265057f94daabe17fe 100644 --- a/aleksis/apps/alsijil/model_extensions.py +++ b/aleksis/apps/alsijil/model_extensions.py @@ -89,20 +89,18 @@ def mark_absent( # Create and update all personal notes for the discovered lesson periods if not dry_run: for register_object in list(lesson_periods) + list(extra_lessons): - sub = ( - register_object.get_substitution() - if isinstance(register_object, LessonPeriod) - else None - ) + if isinstance(register_object, LessonPeriod): + sub = register_object.get_substitution() + q_attrs = dict( + week=wanted_week.week, year=wanted_week.year, lesson_period=register_object + ) + else: + sub = None + q_attrs = dict(extra_lesson=register_object) + if sub and sub.cancelled: continue - q_attrs = ( - dict(week=wanted_week.week, year=wanted_week.year, lesson_period=register_object) - if isinstance(register_object, LessonPeriod) - else dict(extra_lesson=register_object) - ) - personal_note, created = ( PersonalNote.objects.select_related(None) .prefetch_related(None) diff --git a/aleksis/apps/alsijil/util/alsijil_helpers.py b/aleksis/apps/alsijil/util/alsijil_helpers.py index 34d9ff4a3b37b09fadf6e01813b2f43cde4742d7..31c97fbbeeaf58cf5820b9720c8283b9d9b02d27 100644 --- a/aleksis/apps/alsijil/util/alsijil_helpers.py +++ b/aleksis/apps/alsijil/util/alsijil_helpers.py @@ -72,7 +72,7 @@ def annotate_documentations( if klass == LessonPeriod: instances = instances.annotate_week(wanted_week) - if klass in (LessonPeriod, ExtraLesson): + elif klass in (LessonPeriod, ExtraLesson): instances = instances.order_by("period__weekday", "period__period") else: instances = instances.order_by("period_from__weekday", "period_from__period") diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index 07be23841ea0e2cf83cbf673d65b19aadcc56452..53ca6aaa13bfdce0450431b4bc0f6664bdf23192 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -224,10 +224,9 @@ def register_object( reversion.set_user(request.user) instances = personal_note_formset.save() - if ( - not isinstance(register_object, Event) - and get_site_preferences()["alsijil__carry_over_personal_notes"] - ): + if (not isinstance(register_object, Event)) and get_site_preferences()[ + "alsijil__carry_over_personal_notes" + ]: # Iterate over personal notes # and carry changed absences to following lessons with reversion.create_revision():