52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
from rest_framework import serializers
|
|
from .models import Element, InventoryItem, Partner
|
|
import logging
|
|
|
|
logger = logging.getLogger("root")
|
|
|
|
|
|
class PartnerSerializer(serializers.ModelSerializer):
|
|
total_inventory = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = Partner
|
|
fields = ["id", "external_id", "name", "total_inventory"]
|
|
|
|
def get_total_inventory(self, instance):
|
|
return InventoryItem.objects.filter(partner=instance).count()
|
|
|
|
|
|
class InventorySerializer(serializers.ModelSerializer):
|
|
partner_name = serializers.CharField(source="partner.name", read_only=True)
|
|
total_elements = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = InventoryItem
|
|
fields = [
|
|
"id",
|
|
"name",
|
|
"created_at",
|
|
"total_elements",
|
|
"partner",
|
|
"partner_name",
|
|
]
|
|
|
|
def get_total_elements(self, instance):
|
|
return Element.objects.filter(inventory=instance).count()
|
|
|
|
|
|
class ElementSerializer(serializers.ModelSerializer):
|
|
inventory_name = serializers.CharField(source="inventory.name", read_only=True)
|
|
|
|
class Meta:
|
|
model = Element
|
|
fields = [
|
|
"id",
|
|
"external_id",
|
|
"element_id",
|
|
"photo",
|
|
"additional_text",
|
|
"inventory",
|
|
"inventory_name",
|
|
]
|