Skip to content
Snippets Groups Projects
Verified Commit 7630e713 authored by magicfelix's avatar magicfelix
Browse files

Make LessonDocumentation able to update or create

parent bac66eca
No related branches found
No related tags found
No related merge requests found
Pipeline #81359 failed
......@@ -32,6 +32,17 @@ query CourseBook($lessonId: ID!) {
topic
homework
groupNote
year
week
lessonPeriod {
id
}
event {
id
}
extraLesson {
id
}
period
date
personalNotes {
......
......@@ -28,6 +28,11 @@
<lesson-documentation
v-bind:key="item.id"
:id="item.id"
:year="item.year"
:week="item.week"
:lessonPeriod="item.lessonPeriod"
:event="item.event"
:extraLesson="item.extraLesson"
:groups="data.lesson.groups"
:excuse-types="data.excuseTypes"
:extra-marks="data.extraMarks"
......
......@@ -6,6 +6,11 @@ export default {
},
props: [
"id",
"year",
"week",
"lessonPeriod",
"event",
"extraLesson",
"date",
"period",
"topic",
......
......@@ -5,7 +5,7 @@ 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 ExcuseType, LessonDocumentation, PersonalNote, ExtraMark
from .models import Event, ExcuseType, ExtraLesson, LessonDocumentation, LessonPeriod, PersonalNote, ExtraMark
class ExcuseTypeType(DjangoObjectType):
......@@ -51,11 +51,61 @@ class ExtraMarkType(DjangoObjectType):
model = ExtraMark
class LessonDocumentationMutation(DjangoModelFormMutation):
class LessonDocumentationMutation(graphene.Mutation):
class Arguments:
year = graphene.Int(required=True)
week = graphene.Int(required=True)
lesson_period_id = graphene.ID(required=False)
event_id = graphene.ID(required=False)
extra_lesson_id = graphene.ID(required=False)
lesson_documentation_id = graphene.ID(required=False)
topic = graphene.String(required=False)
homework = graphene.String(required=False)
group_note = graphene.String(required=False)
lesson_documentation = graphene.Field(LessonDocumentationType)
class Meta:
form_class = LessonDocumentationForm
@classmethod
def mutate(
cls,
root,
info,
year,
week,
lesson_period_id=None,
event_id=None,
extra_lesson_id=None,
lesson_documentation_id=None,
topic=None,
homework=None,
group_note=None
):
lesson_period = LessonPeriod.objects.filter(pk=lesson_period_id).first()
event = Event.objects.filter(pk=event_id).first()
extra_lesson = ExtraLesson.objects.filter(pk=extra_lesson_id).first()
lesson_documentation, created = LessonDocumentation.objects.get_or_create(
year=year,
week=week,
lesson_period=lesson_period,
event=event,
extra_lesson=extra_lesson
)
if topic:
lesson_documentation.topic = topic
if homework:
lesson_documentation.homework = homework
if group_note:
lesson_documentation.group_note = group_note
lesson_documentation.save()
return LessonDocumentationMutation(lesson_documentation=lesson_documentation)
class PersonalNoteMutation(graphene.Mutation):
......@@ -124,7 +174,7 @@ class PersonalNoteMutation(graphene.Mutation):
class Mutation(graphene.ObjectType):
update_lesson_documentation = LessonDocumentationMutation.Field()
update_or_create_lesson_documentation = LessonDocumentationMutation.Field()
update_or_create_personal_note = PersonalNoteMutation.Field()
# update_personal_note = PersonalNoteMutation.Field()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment