Source code for AKModel.availability.serializers

# This part of the code was adapted from pretalx (https://github.com/pretalx/pretalx)
# Copyright 2017-2019, Tobias Kunze
# Original Copyrights licensed under the Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0
# Documentation was mainly added by us, other changes are marked in the code
from django.utils import timezone
from rest_framework.fields import SerializerMethodField
from rest_framework.serializers import ModelSerializer

from AKModel.availability.models import Availability


[docs] class AvailabilitySerializer(ModelSerializer): """ REST Framework Serializer for Availability """ allDay = SerializerMethodField() start = SerializerMethodField() end = SerializerMethodField()
[docs] def get_allDay(self, obj): # pylint: disable=invalid-name """ Bridge between naming conventions of python and fullcalendar by providing the all_day field as allDay, too """ return obj.all_day
[docs] def get_start(self, obj): """ Get start timestamp Use already localized strings in serialized field (default would be UTC, but that would require heavy timezone calculation on client side) """ return timezone.localtime(obj.start, obj.event.timezone).strftime("%Y-%m-%dT%H:%M:%S")
[docs] def get_end(self, obj): """ Get end timestamp Use already localized strings in serialized field (default would be UTC, but that would require heavy timezone calculation on client side) """ return timezone.localtime(obj.end, obj.event.timezone).strftime("%Y-%m-%dT%H:%M:%S")
class Meta: model = Availability fields = ('id', 'start', 'end', 'allDay')