Skip to content
Snippets Groups Projects
Commit b0855414 authored by magicfelix's avatar magicfelix
Browse files

Handle timezones

parent 52430089
No related branches found
No related tags found
1 merge request!7Resolve "Implement Absence model based on FreeBusy"
from datetime import datetime, timezone
from zoneinfo import ZoneInfo
from django.conf import settings
import graphene import graphene
from graphene_django import DjangoListField from graphene_django import DjangoListField
from graphene_django.types import DjangoObjectType from graphene_django.types import DjangoObjectType
...@@ -45,6 +50,21 @@ class AbsenceCreateMutation(DjangoCreateMutation): ...@@ -45,6 +50,21 @@ class AbsenceCreateMutation(DjangoCreateMutation):
optional_fields = ("comment", "reason") optional_fields = ("comment", "reason")
permissions = ("",) # FIXME permissions = ("",) # FIXME
@classmethod
def handle_datetime_start(cls, value, name, info) -> int:
value = value.replace(tzinfo=timezone.utc)
return value
@classmethod
def handle_datetime_end(cls, value, name, info) -> int:
value = value.replace(tzinfo=timezone.utc)
return value
@classmethod
def before_save(cls, root, info, input, obj):
obj.timezone = ZoneInfo(settings.TIME_ZONE) # FIXME Use TZ provided by client
return obj
class AbsenceBatchCreateMutation(DjangoBatchCreateMutation): class AbsenceBatchCreateMutation(DjangoBatchCreateMutation):
class Meta: class Meta:
...@@ -64,6 +84,21 @@ class AbsenceBatchPatchMutation(PermissionBatchPatchMixin, DjangoBatchPatchMutat ...@@ -64,6 +84,21 @@ class AbsenceBatchPatchMutation(PermissionBatchPatchMixin, DjangoBatchPatchMutat
fields = ("id", "person", "reason", "comment", "datetime_start", "datetime_end") fields = ("id", "person", "reason", "comment", "datetime_start", "datetime_end")
permissions = ("",) # FIXME permissions = ("",) # FIXME
@classmethod
def handle_datetime_start(cls, value, name, info) -> int:
value = value.replace(tzinfo=timezone.utc)
return value
@classmethod
def handle_datetime_end(cls, value, name, info) -> int:
value = value.replace(tzinfo=timezone.utc)
return value
@classmethod
def before_save(cls, root, info, input, obj):
obj.timezone = ZoneInfo(settings.TIME_ZONE) # FIXME Use TZ provided by client
return obj
class AbsenceReasonCreateMutation(DjangoCreateMutation): class AbsenceReasonCreateMutation(DjangoCreateMutation):
class Meta: class Meta:
......
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