Coverage for website/members/api/calendarjs/serializers.py: 42.42%
29 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
1from rest_framework.reverse import reverse
3from members.models import Member
4from thaliawebsite.api.calendarjs.serializers import CalenderJSSerializer
7class MemberBirthdaySerializer(CalenderJSSerializer):
8 """Serializer that renders the member birthdays to the CalendarJS format."""
10 class Meta(CalenderJSSerializer.Meta):
11 model = Member
13 def _start(self, instance):
14 return instance.profile.birthday
16 def _end(self, instance):
17 pass
19 def _all_day(self, instance):
20 return True
22 def _is_birthday(self, instance):
23 return True
25 def _url(self, instance):
26 return reverse("members:profile", kwargs={"pk": instance.pk})
28 def _title(self, instance):
29 return instance.profile.display_name()
31 def _description(self, instance):
32 membership = instance.current_membership
33 if membership and membership.type == "honorary":
34 return membership.get_type_display()
35 return ""
37 def _class_names(self, instance):
38 class_names = ["birthday-event"]
39 membership = instance.current_membership
40 if membership and membership.type == "honorary":
41 class_names.append("honorary")
42 return class_names