From 515daca647fd34e6bc64cda89ba6ebacf6db027f Mon Sep 17 00:00:00 2001
From: magicfelix <felix@felix-zauberer.de>
Date: Sat, 6 Aug 2022 18:11:51 +0200
Subject: [PATCH] Automatically create LessonDocumentations for past periods

---
 aleksis/apps/alsijil/schema.py | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/aleksis/apps/alsijil/schema.py b/aleksis/apps/alsijil/schema.py
index 559169a5b..e265bdc57 100644
--- a/aleksis/apps/alsijil/schema.py
+++ b/aleksis/apps/alsijil/schema.py
@@ -1,11 +1,20 @@
 import graphene
+from datetime import datetime
 from graphene_django import DjangoObjectType
 from graphene_django.forms.mutation import DjangoModelFormMutation
 
-from aleksis.apps.chronos.models import LessonPeriod
-from aleksis.core.models import Person, Group
-from .forms import LessonDocumentationForm
-from .models import Event, ExcuseType, ExtraLesson, LessonDocumentation, LessonPeriod, PersonalNote, ExtraMark
+from aleksis.apps.chronos.models import Lesson
+from aleksis.core.models import Group, Person
+
+from .models import (
+    Event,
+    ExcuseType,
+    ExtraLesson,
+    ExtraMark,
+    LessonDocumentation,
+    LessonPeriod,
+    PersonalNote,
+)
 
 
 class ExcuseTypeType(DjangoObjectType):
@@ -199,7 +208,13 @@ class Query(graphene.ObjectType):
     def resolve_lesson_documentation_by_id(root, info, id, **kwargs):
         return LessonDocumentation.objects.get(id=id)
 
-    def resolve_lesson_documentations_by_lesson_id(root, info, id, **kwargs):
+    def resolve_lesson_documentations_by_lesson_id(root, info, id, **kwargs):  # noqa
+        lesson = Lesson.objects.get(id=id)
+        now = datetime.now()
+        for planned in lesson.planned_lessonperiods_datetimes:
+            if planned["datetime_start"] <= now:
+                LessonDocumentation.objects.get_or_create(week=planned["week"], year=planned["year"], lesson_period=planned["lesson_period"]) # FIXME: Queries shouldn't alter data
+
         return LessonDocumentation.objects.filter(
             lesson_period_id__in=LessonPeriod.objects.filter(
                 lesson_id=id
-- 
GitLab