Coverage for website/pizzas/api/v2/serializers/order.py: 100.00%
26 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 fields, serializers
2from rest_framework.validators import UniqueTogetherValidator
4from members.api.v2.serializers.member import MemberSerializer
5from payments.api.v2.serializers import PaymentSerializer
6from pizzas.api.v2.serializers.product import ProductSerializer
7from pizzas.models import FoodEvent, FoodOrder
8from thaliawebsite.api.v2.fields import (
9 CurrentMemberDefault,
10 CurrentRequestObjectDefault,
11)
14class FoodOrderSerializer(serializers.ModelSerializer):
15 class Meta:
16 model = FoodOrder
17 fields = ("pk", "payment", "product", "name", "member")
18 read_only_fields = ("pk", "payment", "name", "member")
20 product = ProductSerializer()
21 payment = PaymentSerializer()
22 member = MemberSerializer(detailed=False)
25class FoodOrderCreateSerializer(serializers.ModelSerializer):
26 class Meta:
27 model = FoodOrder
28 fields = ("product", "member", "food_event")
29 validators = [
30 UniqueTogetherValidator(
31 queryset=FoodOrder.objects.all(),
32 fields=["food_event", "member"],
33 )
34 ]
36 food_event = fields.HiddenField(
37 default=CurrentRequestObjectDefault(FoodEvent, url_field="pk")
38 )
39 member = fields.HiddenField(default=CurrentMemberDefault())
42class FoodOrderUpdateSerializer(serializers.ModelSerializer):
43 class Meta:
44 model = FoodOrder
45 fields = ("product",)