website/activemembers/api/v2/serializers/member_group_membership.py
from rest_framework import serializers
from activemembers.models import MemberGroupMembership
from members.api.v2.serializers.member import MemberSerializer
from thaliawebsite.api.v2.serializers.cleaned_model_serializer import (
CleanedModelSerializer,
)
class MemberGroupMembershipSerializer(CleanedModelSerializer):
"""API serializer for member group memberships."""
class Meta:
"""Meta class for the serializer."""
model = MemberGroupMembership
fields = ("member", "chair", "since", "until", "role")
member = MemberSerializer(detailed=False)
since = serializers.SerializerMethodField("_since")
until = serializers.SerializerMethodField("_until")
def _since(self, instance):
return instance.initial_connected_membership.since
def _until(self, instance):
if instance.latest_connected_membership.until == instance.group.until:
return None
return instance.latest_connected_membership.until