Coverage for website/activemembers/api/v2/serializers/member_group_membership.py: 68.42%

17 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2025-08-14 10:31 +0000

1from rest_framework import serializers 

2 

3from activemembers.models import MemberGroupMembership 

4from members.api.v2.serializers.member import MemberSerializer 

5from thaliawebsite.api.v2.serializers.cleaned_model_serializer import ( 

6 CleanedModelSerializer, 

7) 

8 

9 

10class MemberGroupMembershipSerializer(CleanedModelSerializer): 

11 """API serializer for member group memberships.""" 

12 

13 class Meta: 

14 """Meta class for the serializer.""" 

15 

16 model = MemberGroupMembership 

17 fields = ("member", "chair", "since", "until", "role") 

18 

19 member = MemberSerializer(detailed=False) 

20 since = serializers.SerializerMethodField("_since") 

21 until = serializers.SerializerMethodField("_until") 

22 

23 def _since(self, instance): 

24 return instance.initial_connected_membership.since 

25 

26 def _until(self, instance): 

27 if instance.latest_connected_membership.until == instance.group.until: 

28 return None 

29 return instance.latest_connected_membership.until