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

1from rest_framework.reverse import reverse 

2 

3from members.models import Member 

4from thaliawebsite.api.calendarjs.serializers import CalenderJSSerializer 

5 

6 

7class MemberBirthdaySerializer(CalenderJSSerializer): 

8 """Serializer that renders the member birthdays to the CalendarJS format.""" 

9 

10 class Meta(CalenderJSSerializer.Meta): 

11 model = Member 

12 

13 def _start(self, instance): 

14 return instance.profile.birthday 

15 

16 def _end(self, instance): 

17 pass 

18 

19 def _all_day(self, instance): 

20 return True 

21 

22 def _is_birthday(self, instance): 

23 return True 

24 

25 def _url(self, instance): 

26 return reverse("members:profile", kwargs={"pk": instance.pk}) 

27 

28 def _title(self, instance): 

29 return instance.profile.display_name() 

30 

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 "" 

36 

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