diff --git a/aleksis/apps/alsijil/preferences.py b/aleksis/apps/alsijil/preferences.py index 2fd34fa7fc4f802a52ead1d2d0291789be4fb9ce..756c27494e0fb19100ff1fcc904f75525231a4e5 100644 --- a/aleksis/apps/alsijil/preferences.py +++ b/aleksis/apps/alsijil/preferences.py @@ -80,6 +80,16 @@ class AllowCarryOverLessonDocumentationToCurrentWeek(BooleanPreference): ) +@site_preferences_registry.register +class DocumentLessonTopicsByWeek(BooleanPreference): + section = alsijil + name = "document_lesson_topics_by_week" + default = False + verbose_name = _( + "Document lesson topics per week instead of per lesson period" + ) + + @site_preferences_registry.register class CarryOverPersonalNotesToNextPeriods(BooleanPreference): section = alsijil diff --git a/aleksis/apps/alsijil/schema.py b/aleksis/apps/alsijil/schema.py index 7e88e69710cee4d60891f0bbd34bc8af13c4071e..04161e64c6fe4b8391264bead8b433aadc6417f1 100644 --- a/aleksis/apps/alsijil/schema.py +++ b/aleksis/apps/alsijil/schema.py @@ -5,6 +5,7 @@ from graphene_django import DjangoObjectType from aleksis.apps.chronos.models import Lesson from aleksis.core.models import Group, Person +from aleksis.core.util.core_helpers import get_site_preferences from .models import ( Event, @@ -112,6 +113,19 @@ class LessonDocumentationMutation(graphene.Mutation): lesson_documentation.save() + if ( + get_site_preferences()["alsijil__document_lesson_topics_by_week"] + and ( + lesson_documentation.topic + or lesson_documentation.homework + or lesson_documentation.group_note + ) + and lesson_documentation.lesson_period + ): + lesson_documentation.carry_over_data( + LessonPeriod.objects.filter(lesson=lesson_documentation.lesson_period.lesson) + ) + return LessonDocumentationMutation(lesson_documentation=lesson_documentation)