Coverage for website/thaliawebsite/api/calendarjs/serializers.py: 94.59%
37 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1# ruff: noqa: N815
2from html import unescape
4from django.utils import timezone
5from django.utils.html import strip_tags
7from rest_framework import serializers
10class CalenderJSSerializer(serializers.ModelSerializer):
11 """Serializer using the right format for CalendarJS."""
13 class Meta:
14 fields = (
15 "start",
16 "end",
17 "allDay",
18 "isBirthday",
19 "url",
20 "title",
21 "description",
22 "classNames",
23 "blank",
24 "registration_info",
25 )
27 start = serializers.SerializerMethodField("_start")
28 end = serializers.SerializerMethodField("_end")
29 allDay = serializers.SerializerMethodField("_all_day")
30 isBirthday = serializers.SerializerMethodField("_is_birthday")
31 url = serializers.SerializerMethodField("_url")
32 title = serializers.SerializerMethodField("_title")
33 description = serializers.SerializerMethodField("_description")
34 classNames = serializers.SerializerMethodField("_class_names")
35 blank = serializers.SerializerMethodField("_target_blank")
36 registration_info = serializers.SerializerMethodField("_registration_info")
38 def _start(self, instance):
39 return timezone.localtime(instance.start)
41 def _end(self, instance):
42 return timezone.localtime(instance.end)
44 def _all_day(self, instance):
45 return False
47 def _is_birthday(self, instance):
48 return False
50 def _url(self, instance):
51 raise NotImplementedError
53 def _title(self, instance):
54 return instance.title
56 def _description(self, instance):
57 return unescape(strip_tags(instance.description))
59 def _class_names(self, instance):
60 pass
62 def _target_blank(self, instance):
63 return False
65 def _registration_info(self, instance):
66 return ""