From 4b1e0a9cfe6fbde4e2d2c6b7c05980babaa6a76d Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Wed, 12 Aug 2020 16:55:47 +0200
Subject: [PATCH] Support triple, quadruple, ... periods in carry_over_data,
 too

---
 aleksis/apps/alsijil/models.py | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index a7f6485c9..f74454704 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -111,13 +111,13 @@ class LessonDocumentation(ExtensibleModel):
 
         Can be deactivated using site preference ``alsijil__carry_over``.
         """
-        try:
-            second_period = LessonPeriod.objects.get(
-                lesson=self.lesson_period.lesson,
-                period__weekday=self.lesson_period.period.weekday,
-                period__period=self.lesson_period.period.period + 1,
-            )
-            lesson_documentation = second_period.get_or_create_lesson_documentation(
+        following_periods = LessonPeriod.objects.filter(
+            lesson=self.lesson_period.lesson,
+            period__weekday=self.lesson_period.period.weekday,
+            period__period__gt=self.lesson_period.period.period,
+        )
+        for period in following_periods:
+            lesson_documentation = period.get_or_create_lesson_documentation(
                 CalendarWeek(
                     week=self.week, year=self.lesson_period.lesson.get_year(self.week),
                 )
@@ -139,9 +139,6 @@ class LessonDocumentation(ExtensibleModel):
 
             if changed:
                 lesson_documentation.save()
-        except LessonPeriod.DoesNotExist:
-            # Do nothing if it's a single period
-            pass
 
     def save(self, *args, **kwargs):
         if get_site_preferences()["alsijil__carry_over"] and (
-- 
GitLab