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
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from rest_framework import serializers
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)
10class MemberGroupMembershipSerializer(CleanedModelSerializer):
11 """API serializer for member group memberships."""
13 class Meta:
14 """Meta class for the serializer."""
16 model = MemberGroupMembership
17 fields = ("member", "chair", "since", "until", "role")
19 member = MemberSerializer(detailed=False)
20 since = serializers.SerializerMethodField("_since")
21 until = serializers.SerializerMethodField("_until")
23 def _since(self, instance):
24 return instance.initial_connected_membership.since
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