mirror of
https://gitlab.crans.org/bde/nk20
synced 2024-12-24 00:12:23 +00:00
63 lines
1.9 KiB
Python
63 lines
1.9 KiB
Python
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
from rest_framework import serializers
|
|
from note.api.serializers import SpecialTransactionSerializer
|
|
|
|
from ..models import Invoice, Product, RemittanceType, Remittance
|
|
|
|
|
|
class ProductSerializer(serializers.ModelSerializer):
|
|
"""
|
|
REST API Serializer for Product types.
|
|
The djangorestframework plugin will analyse the model `Product` and parse all fields in the API.
|
|
"""
|
|
|
|
class Meta:
|
|
model = Product
|
|
fields = '__all__'
|
|
|
|
|
|
class InvoiceSerializer(serializers.ModelSerializer):
|
|
"""
|
|
REST API Serializer for Invoice types.
|
|
The djangorestframework plugin will analyse the model `Invoice` and parse all fields in the API.
|
|
"""
|
|
class Meta:
|
|
model = Invoice
|
|
fields = '__all__'
|
|
read_only_fields = ('bde',)
|
|
|
|
products = serializers.SerializerMethodField()
|
|
|
|
def get_products(self, obj):
|
|
return serializers.ListSerializer(child=ProductSerializer())\
|
|
.to_representation(Product.objects.filter(invoice=obj).all())
|
|
|
|
|
|
class RemittanceTypeSerializer(serializers.ModelSerializer):
|
|
"""
|
|
REST API Serializer for RemittanceType types.
|
|
The djangorestframework plugin will analyse the model `RemittanceType` and parse all fields in the API.
|
|
"""
|
|
|
|
class Meta:
|
|
model = RemittanceType
|
|
fields = '__all__'
|
|
|
|
|
|
class RemittanceSerializer(serializers.ModelSerializer):
|
|
"""
|
|
REST API Serializer for Remittance types.
|
|
The djangorestframework plugin will analyse the model `Remittance` and parse all fields in the API.
|
|
"""
|
|
|
|
transactions = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = Remittance
|
|
fields = '__all__'
|
|
|
|
def get_transactions(self, obj):
|
|
return serializers.ListSerializer(child=SpecialTransactionSerializer()).to_representation(obj.transactions)
|