From 546bcab7bee70db72a2b217eff55de04f6aedc1b Mon Sep 17 00:00:00 2001
From: Hangzhi Yu <hangzhi@protonmail.com>
Date: Wed, 3 Apr 2024 22:40:50 +0200
Subject: [PATCH] Fix timezone handling

---
 aleksis/apps/alsijil/models.py               | 4 ++--
 aleksis/apps/alsijil/schema/documentation.py | 5 ++---
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index 789086cc1..b922c4658 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -574,8 +574,8 @@ class Documentation(CalendarEvent):
                     existing_documentations := (
                         event_reference_obj := event["REFERENCE_OBJECT"]
                     ).documentation.filter(
-                        datetime_start=event["DTSTART"].dt.replace(tzinfo=timezone.utc),
-                        datetime_end=event["DTEND"].dt.replace(tzinfo=timezone.utc),
+                        datetime_start=event["DTSTART"].dt,
+                        datetime_end=event["DTEND"].dt,
                     )
                 ).exists()
                 else cls(
diff --git a/aleksis/apps/alsijil/schema/documentation.py b/aleksis/apps/alsijil/schema/documentation.py
index d115b03eb..088ddca85 100644
--- a/aleksis/apps/alsijil/schema/documentation.py
+++ b/aleksis/apps/alsijil/schema/documentation.py
@@ -171,9 +171,8 @@ class DocumentationBatchCreateOrUpdateMutation(graphene.Mutation):
             # 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.
             obj = Documentation.objects.create(
-                datetime_start=datetime.fromisoformat(datetime_start).replace(tzinfo=timezone.utc),
-                datetime_end=datetime.fromisoformat(datetime_end).replace(tzinfo=timezone.utc),
-                timezone=lesson_event.timezone,
+                datetime_start=datetime.fromisoformat(datetime_start).astimezone(lesson_event.timezone),
+                datetime_end=datetime.fromisoformat(datetime_end).astimezone(lesson_event.timezone),
                 lesson_event=lesson_event,
                 course=lesson_event.course,
                 subject=lesson_event.subject,
-- 
GitLab