Skip to content
Snippets Groups Projects
Commit 4e214ee6 authored by Julian's avatar Julian
Browse files

Update schema for lesson documentations and personal notes

parent c49ce798
No related branches found
No related tags found
No related merge requests found
......@@ -2,25 +2,48 @@ import graphene
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 ExcuseType, LessonDocumentation, PersonalNote, ExtraMark
# print([ExcuseType, LessonDocumentation, PersonalNote, ExtraMark])
class ExcuseTypeType(DjangoObjectType):
class Meta:
model = ExcuseType
class PersonalNoteType(DjangoObjectType):
class Meta:
model = PersonalNote
class LessonDocumentationType(DjangoObjectType):
class Meta:
model = LessonDocumentation
personal_notes = graphene.List(PersonalNoteType)
date = graphene.Field(graphene.Date)
period = graphene.Field(graphene.Int)
class PersonalNoteType(DjangoObjectType):
class Meta:
model = PersonalNote
def resolve_personal_notes(root: LessonDocumentation, info, **kwargs):
persons = Person.objects.filter(
member_of__in=Group.objects.filter(
pk__in=root.register_object.get_groups().all()
)
)
return PersonalNote.objects.filter(
week=root.week,
year=root.year,
lesson_period=root.lesson_period,
person__in=persons,
)
def resolve_period(root: LessonDocumentation, info, **kwargs):
return root.period.period
def resolve_date(root: LessonDocumentation, info, **kwargs):
return root.date
class ExtraMarkType(DjangoObjectType):
......@@ -38,17 +61,30 @@ class LessonDocumentationMutation(DjangoModelFormMutation):
class Query(graphene.ObjectType):
excuse_types = graphene.List(ExcuseTypeType)
lesson_documentations = graphene.List(LessonDocumentationType)
lesson_documentations_by_lesson_id = graphene.List(LessonDocumentationType, id=graphene.ID())
personal_notes = graphene.List(PersonalNoteType)
extra_marks = graphene.List(ExtraMarkType)
def resolve_excuse_types(root, info, **kwargs):
# FIXME do permission stuff
print(ExcuseType.objects.all())
return ExcuseType.objects.all()
def resolve_lesson_documentations(root, info, **kwargs):
# FIXME do permission stuff
return LessonDocumentation.objects.all()
return LessonDocumentation.objects.all().order_by("-year", "-week", "-lesson_period__period__weekday",
"-lesson_period__period__period")
def resolve_lesson_documentations_by_lesson_id(root, info, id, **kwargs):
return LessonDocumentation.objects.filter(
lesson_period_id__in=LessonPeriod.objects.filter(
lesson_id=id
).values_list("id", flat=True)
).order_by(
"-year",
"-week",
"-lesson_period__period__weekday",
"-lesson_period__period__period"
)
def resolve_personal_notes(root, info, **kwargs):
# FIXME do permission stuff
......@@ -56,6 +92,3 @@ class Query(graphene.ObjectType):
def resolve_extra_marks(root, info, **kwargs):
return ExtraMark.objects.all()
# print("Hello2")
# schema = graphene.Schema(query=Query)
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