Coverage for website/events/api/v2/admin/serializers/event_registration.py: 69.57%
23 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 events.models import EventRegistration
4from members.api.v2.serializers.member import MemberSerializer
5from members.models import Member
6from payments.api.v2.serializers import PaymentSerializer
7from thaliawebsite.api.v2.serializers.cleaned_model_serializer import (
8 CleanedModelSerializer,
9)
12class EventRegistrationAdminSerializer(CleanedModelSerializer):
13 """Serializer for event registrations."""
15 class Meta:
16 model = EventRegistration
17 fields = (
18 "pk",
19 "present",
20 "queue_position",
21 "date",
22 "date_cancelled",
23 "payment",
24 "member",
25 "name",
26 "special_price",
27 "remarks",
28 "phone_number",
29 "email",
30 )
31 read_only_fields = ("payment",)
32 optional_fields = ["payment", "member", "name", "special_price", "remarks"]
34 payment = PaymentSerializer(required=False)
36 def create(self, validated_data):
37 event = self.context["event"]
38 validated_data.update({"event": event})
39 return super().create(validated_data)
41 def to_internal_value(self, data):
42 self.fields["member"] = serializers.PrimaryKeyRelatedField(
43 queryset=Member.objects.all(), required=False
44 )
45 return super().to_internal_value(data)
47 def to_representation(self, instance):
48 self.fields["member"] = MemberSerializer(
49 admin=True, detailed=False, read_only=True
50 )
51 return super().to_representation(instance)