Coverage for website/pizzas/api/v2/serializers/food_event.py: 63.64%
22 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.api.v2.serializers.event import EventSerializer
4from pizzas.api.v2.serializers.order import FoodOrderSerializer
5from pizzas.models import FoodEvent, FoodOrder
6from pizzas.services import can_change_order
9class FoodEventSerializer(serializers.ModelSerializer):
10 class Meta:
11 model = FoodEvent
12 fields = (
13 "pk",
14 "start",
15 "end",
16 "event",
17 "title",
18 "can_manage",
19 "order",
20 )
22 event = EventSerializer()
23 can_manage = serializers.SerializerMethodField("_can_manage")
24 order = serializers.SerializerMethodField("_member_order")
26 def _member_order(self, instance):
27 try:
28 order = instance.orders.get(member=self.context["request"].member)
29 return FoodOrderSerializer(
30 order,
31 context=self.context,
32 ).data
33 except FoodOrder.DoesNotExist:
34 pass
35 return None
37 def _can_manage(self, instance):
38 member = self.context["request"].member
39 return can_change_order(member, instance)