Some checks failed
Build and Push to Docker Hub / build-test-push (push) Failing after 1m55s
78 lines
2.0 KiB
Python
78 lines
2.0 KiB
Python
"""
|
|
Group serializer
|
|
"""
|
|
|
|
from rest_framework import serializers
|
|
|
|
from core.apps.eggs import models
|
|
from core.apps.eggs.serializers import product
|
|
|
|
|
|
class GroupUserSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = models.User
|
|
fields = (
|
|
"id",
|
|
"first_name",
|
|
"last_name",
|
|
"phone",
|
|
)
|
|
|
|
|
|
class GroupPartySerializer(serializers.ModelSerializer):
|
|
user = GroupUserSerializer(read_only=True, many=False, source="user_id")
|
|
|
|
class Meta:
|
|
model = models.Party
|
|
fields = (
|
|
"id",
|
|
"user",
|
|
"count",
|
|
"sold_count",
|
|
"remaining_count",
|
|
"benefit",
|
|
"cost",
|
|
"total_cost",
|
|
)
|
|
|
|
|
|
class GroupSerializer(serializers.ModelSerializer):
|
|
party = GroupPartySerializer(read_only=True, many=False, source="party_id")
|
|
product = product.ProductSerializer(
|
|
read_only=True, many=False, source="product_id"
|
|
)
|
|
|
|
class Meta:
|
|
model = models.Group
|
|
fields = (
|
|
"id",
|
|
"name",
|
|
"date",
|
|
"entry_price",
|
|
"unit_price",
|
|
"wholesale_price",
|
|
"quantity",
|
|
"broken_eggs",
|
|
"product",
|
|
"party",
|
|
)
|
|
|
|
def update(self, instance, validated_data):
|
|
instance.name = validated_data.get("name", instance.name)
|
|
instance.date = validated_data.get("date", instance.date)
|
|
instance.entry_price = validated_data.get(
|
|
"entry_price", instance.entry_price
|
|
)
|
|
instance.unit_price = validated_data.get(
|
|
"unit_price", instance.unit_price
|
|
)
|
|
instance.wholesale_price = validated_data.get(
|
|
"wholesale_price", instance.wholesale_price
|
|
)
|
|
instance.quantity = validated_data.get("quantity", instance.quantity)
|
|
instance.broken_eggs = validated_data.get(
|
|
"broken_eggs", instance.broken_eggs
|
|
)
|
|
instance.save()
|
|
return instance
|