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

Make LessonDocumentation able to update or create

parent e61de88c
No related branches found
No related tags found
1 merge request!284Draft: Redesign entering of lesson documentation
......@@ -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