From 4cb30c335b32230eb56aabc671611866364568b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?= <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de> Date: Sat, 3 Dec 2022 23:06:57 +0100 Subject: [PATCH] Fix timezone-caused offset when directly creating a new slot in scheduler --- AKModel/serializers.py | 9 +++++++++ .../templates/admin/AKScheduling/scheduling.html | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/AKModel/serializers.py b/AKModel/serializers.py index 7993b622..8dbbb4ea 100644 --- a/AKModel/serializers.py +++ b/AKModel/serializers.py @@ -37,3 +37,12 @@ class AKSlotSerializer(serializers.ModelSerializer): class Meta: model = AKSlot fields = '__all__' + + treat_as_local = serializers.BooleanField(required=False, default=False, write_only=True) + + def create(self, validated_data:dict): + if validated_data['treat_as_local']: + validated_data['start'] = validated_data['start'].replace(tzinfo=None).astimezone( + validated_data['event'].timezone) + del validated_data['treat_as_local'] + return super().create(validated_data) diff --git a/AKScheduling/templates/admin/AKScheduling/scheduling.html b/AKScheduling/templates/admin/AKScheduling/scheduling.html index 5d15411c..05d37a38 100644 --- a/AKScheduling/templates/admin/AKScheduling/scheduling.html +++ b/AKScheduling/templates/admin/AKScheduling/scheduling.html @@ -261,7 +261,8 @@ duration: $('#id_duration').val(), room: $('#id_room').val(), ak: ak, - event: "{{ event.pk }}" + event: "{{ event.pk }}", + treat_as_local: true, }, success: function (response) { $('#newAKSlotModal').modal('hide'); -- GitLab