diff --git a/aleksis/apps/alsijil/schema.py b/aleksis/apps/alsijil/schema.py index 559169a5bb66371e077509c0aaeda5210f3bf909..e265bdc5705af9671372bcca8e160e470dc6bbf0 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