From 1176f678d379d5ac46e25e3d7502f76f34005e83 Mon Sep 17 00:00:00 2001 From: Julian Leucker <leuckerj@gmail.com> Date: Wed, 20 Jul 2022 09:59:50 +0200 Subject: [PATCH] Create schema to create personal notes --- aleksis/apps/alsijil/schema.py | 54 ++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/aleksis/apps/alsijil/schema.py b/aleksis/apps/alsijil/schema.py index 1333d147f..c1048dbc4 100644 --- a/aleksis/apps/alsijil/schema.py +++ b/aleksis/apps/alsijil/schema.py @@ -65,8 +65,62 @@ class PersonalNoteMutation(DjangoModelFormMutation): form_class = PersonalNoteForm +class CreatePersonalNoteMutation(graphene.Mutation): + class Arguments: + person_id = graphene.ID(required=True) + lesson_period_id = graphene.ID(required=True) + week = graphene.Int(required=True) + year = graphene.Int(required=True) + + late = graphene.Int(required=False) + absent = graphene.Boolean(required=False) + excused = graphene.Boolean(required=False) + excuse_type = graphene.ID(required=False) + remarks = graphene.String(required=False) + extra_marks = graphene.List(graphene.ID, required=False) + + personal_note = graphene.Field(PersonalNoteType) + + @classmethod + def mutate( + cls, + root, + info, + person_id, + lesson_period_id, + week, + year, + late=0, + absent=False, + excused=False, + excuse_type=None, + remarks="", + extra_marks=None + ): + if extra_marks is None: + extra_marks = [] + person = Person.objects.get(pk=person_id) + lesson_period = LessonPeriod.objects.get(pk=lesson_period_id) + extra_marks = ExtraMark.objects.filter(pk__in=extra_marks) + personal_note = PersonalNote.objects.create( + person=person, + lesson_period=lesson_period, + late=late, + absent=absent, + excused=excused, + excuse_type=excuse_type, + remarks=remarks, + week=week, + year=year, + ) + personal_note.extra_marks.set(extra_marks) + personal_note.save() + return CreatePersonalNoteMutation(personal_note=personal_note) + + class Mutation(graphene.ObjectType): update_lesson_documentation = LessonDocumentationMutation.Field() + create_personal_note = CreatePersonalNoteMutation.Field() update_personal_note = PersonalNoteMutation.Field() -- GitLab