Skip to content
Snippets Groups Projects
Commit df2222f9 authored by Hangzhi Yu's avatar Hangzhi Yu
Browse files

Add query for retrieving teachers with lesson quota

parent 678ee61e
No related branches found
No related tags found
1 merge request!2Resolve "Frontend for Models"
......@@ -6,11 +6,11 @@ query gqlPersons {
}
query gqlTeachers {
persons: teachers {
persons: lesroosterExtendedTeachers {
id
fullName
shortName
lessonQuota
}
}
......
......@@ -4,9 +4,11 @@ import graphene
from guardian.shortcuts import get_objects_for_user
from aleksis.apps.cursus.models import Course, Subject
from aleksis.core.models import Group
from aleksis.apps.cursus.schema import Query as CursusSchemaQuery
from aleksis.core.models import Group, Person
from aleksis.core.schema.base import FilterOrderList
from aleksis.core.schema.group import GroupType
from aleksis.core.schema.person import PersonType, PERSON_TYPE_FIELDS
from ..models import Slot
from .break_type import (
......@@ -46,6 +48,12 @@ from .validity_range import (
from ..models import Slot, ValidityRange
class LesroosterExtendedPersonType(PersonType):
class Meta:
model = Person
fields = PERSON_TYPE_FIELDS + ["lesson_quota"]
class Query(graphene.ObjectType):
break_slots = FilterOrderList(BreakSlotType)
slots = FilterOrderList(SlotType)
......@@ -60,6 +68,8 @@ class Query(graphene.ObjectType):
classes_by_grade = graphene.List(GroupType, grade=graphene.ID())
lesrooster_extended_teachers = FilterOrderList(LesroosterExtendedPersonType)
@staticmethod
def resolve_slots(root, info):
# Note: This does also return `Break` objects (but with type set to Slot). This is intended
......@@ -91,6 +101,10 @@ class Query(graphene.ObjectType):
grade_group = Group.objects.prefetch_related("child_groups").get(id=grade)
return get_objects_for_user(info.context.user, "core.view_group", grade_group.child_groups.filter(group_type__name="School class"))
@staticmethod
def resolve_lesrooster_extended_teachers(root, info):
return CursusSchemaQuery.resolve_teachers(root, info)
class Mutation(graphene.ObjectType):
create_break_slot = BreakSlotCreateMutation.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