Skip to content
Snippets Groups Projects
Commit 19794f00 authored by permcu's avatar permcu
Browse files

Implement lessons-for-persons query handler

parent 3b152a8a
No related branches found
No related tags found
1 merge request!362Resolve "Add personal note management dialog in course book"
......@@ -17,15 +17,16 @@ query lessonsForPersons(
end: $end
) {
id
fullname
lessons {
start
end
id
datetimeStart
datetimeEnd
course
subject
}
}
}
# TODO: course is missing in LessonEventType
# Use absencesInputType
mutation createAbsences(
......
......@@ -11,6 +11,7 @@ from aleksis.core.models import Group, Person
from aleksis.core.schema.base import FilterOrderList
from aleksis.core.schema.group import GroupType
from aleksis.core.util.core_helpers import has_person
from aleksis.apps.chronos.models import LessonEvent
from ..models import Documentation
from .documentation import (
......@@ -123,7 +124,8 @@ class Query(graphene.ObjectType):
| Q(groups__parent_groups__owners=person)
)
def lessons_for_persons(
@staticmethod
def resolve_lessons_for_persons(
root,
info,
persons,
......@@ -131,36 +133,28 @@ class Query(graphene.ObjectType):
end,
**kwargs,
):
# Do date like resolve_documentations_for_coursebook?
# Get all lesson events for person
# Make this reusable for mutation -> Einzeiler
# Pack into (id fullname lesson (start end course subject ...))
event_params = {
"type": "PARTICIPANT",
"obj_id": PERSON_ID,
}
# get_objects (lesson_events chronos models.py)
# adapt own -> person as param
# _put list of person IDs in event_params_
events = LessonEvent.get_single_events(
start,
end,
None,
event_params,
with_reference_object=True,
)
"""Resolve all lesson events for each person in timeframe start to end.
"""
lessons_for_person = []
for person in persons:
event_params = {
"type": "PARTICIPANT",
"obj_id": PERSON_ID,
}
lessons_for_person.append(
id=person,
lessons=LessonEvent.get_single_events(
datetime.combine(start, datetime.min.time()),
datetime.combine(date_end, datetime.max.time()),
None,
event_params,
with_reference_object=True,
)
)
return [id
get_single_events -> python object ical
# Use own graphene types (wrapper, & event
# then populate them here
return lessons_for_person
return
class Mutation(graphene.ObjectType):
create_or_update_documentations = DocumentationBatchCreateOrUpdateMutation.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