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