diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql b/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql index 130b5cabbfa80b59b053734dec055696a8be776d..a7028c74f0bb3f97c54326cae5242f70f3fdafdd 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql +++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql @@ -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( diff --git a/aleksis/apps/alsijil/schema/__init__.py b/aleksis/apps/alsijil/schema/__init__.py index 7803b612730bbf4aec6cd63968647bc2bc2b5907..1bab10d51701f47389797bb33813b91fcbc7cf0e 100644 --- a/aleksis/apps/alsijil/schema/__init__.py +++ b/aleksis/apps/alsijil/schema/__init__.py @@ -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()