From 45d8d9d65bf6caa11a66d6b7c5c8028541faa41d Mon Sep 17 00:00:00 2001 From: Hangzhi Yu <hangzhi@protonmail.com> Date: Tue, 13 Feb 2024 18:12:25 +0100 Subject: [PATCH] Fix timezone handling when creating documentations --- aleksis/apps/alsijil/schema/documentation.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/aleksis/apps/alsijil/schema/documentation.py b/aleksis/apps/alsijil/schema/documentation.py index 4e8f51ba5..4f6bfe431 100644 --- a/aleksis/apps/alsijil/schema/documentation.py +++ b/aleksis/apps/alsijil/schema/documentation.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, timezone import graphene from graphene_django.types import DjangoObjectType from graphene_django_cud.mutations import ( @@ -149,16 +149,18 @@ class DocumentationBatchCreateOrUpdateMutation(graphene.Mutation): ): raise PermissionDenied() + # Timezone removal is necessary due to ISO style offsets are no valid timezones. Instead, we take the timezone from the lesson_event and save it in a dedicated field. return Documentation.objects.create( - datetime_start=datetime.fromisoformat(datetime_start), - datetime_end=datetime.fromisoformat(datetime_end), + datetime_start=datetime.fromisoformat(datetime_start).replace(tzinfo=timezone.utc), + datetime_end=datetime.fromisoformat(datetime_end).replace(tzinfo=timezone.utc), + timezone=lesson_event.timezone, lesson_event=lesson_event, course=lesson_event.course, subject=lesson_event.subject, topic=doc.topic or "", homework=doc.homework or "", group_note=doc.group_note or "", - ) # TODO: Add course & subject + ) else: obj = Documentation.objects.get(id=id) -- GitLab