86 lines
3.1 KiB
Python
86 lines
3.1 KiB
Python
"""Back account serializers"""
|
|
from rest_framework import serializers
|
|
from partner.models import Partner, PartnerToEstablishment
|
|
from establishment.serializers import EstablishmentShortSerializer
|
|
from location.serializers import CountrySimpleSerializer
|
|
from location.models import Country
|
|
from django.shortcuts import get_object_or_404
|
|
from establishment.models import Establishment
|
|
|
|
|
|
class BackPartnerSerializer(serializers.ModelSerializer):
|
|
# establishments = EstablishmentShortSerializer(many=True, read_only=True, source='establishment')
|
|
country = CountrySimpleSerializer(read_only=True)
|
|
type_display = serializers.CharField(read_only=True)
|
|
country_id = serializers.PrimaryKeyRelatedField(
|
|
queryset=Country.objects.all(),
|
|
required=False,
|
|
write_only=True,
|
|
source='country'
|
|
)
|
|
|
|
class Meta:
|
|
model = Partner
|
|
fields = (
|
|
'id',
|
|
'name',
|
|
'images',
|
|
'type',
|
|
'type_display',
|
|
'starting_date',
|
|
'expiry_date',
|
|
'price_per_month',
|
|
'country',
|
|
'country_id',
|
|
# 'establishments',
|
|
)
|
|
extra_kwargs = {
|
|
'type': {'write_only': True},
|
|
}
|
|
|
|
|
|
class PartnersForEstablishmentSerializer(serializers.ModelSerializer):
|
|
id = serializers.IntegerField(source='partner.pk', read_only=True)
|
|
name = serializers.CharField(source='partner.name', read_only=True)
|
|
type = serializers.IntegerField(source='partner.type', read_only=True)
|
|
type_display = serializers.CharField(source='partner.type_display', read_only=True)
|
|
starting_date = serializers.DateField(source='partner.starting_date', read_only=True)
|
|
expiry_date = serializers.DateField(source='partner.expiry_date', read_only=True)
|
|
price_per_month = serializers.DecimalField(source='partner.price_per_month', max_digits=10, decimal_places=2,
|
|
read_only=True)
|
|
country = CountrySimpleSerializer(read_only=True, source='partner.country')
|
|
|
|
class Meta:
|
|
model = PartnerToEstablishment
|
|
fields = (
|
|
'id',
|
|
'name',
|
|
'type',
|
|
'type_display',
|
|
'starting_date',
|
|
'expiry_date',
|
|
'price_per_month',
|
|
'country',
|
|
'url', # own field
|
|
'image', # own field
|
|
)
|
|
|
|
def create(self, validated_data):
|
|
establishment_id = self.context['view'].kwargs['establishment_id']
|
|
partner_id = self.context['view'].kwargs['partner_id']
|
|
establishment = get_object_or_404(Establishment, pk=establishment_id)
|
|
partner = get_object_or_404(Partner, pk=partner_id)
|
|
instance = PartnerToEstablishment.objects.create(**validated_data,
|
|
establishment=establishment,
|
|
partner=partner)
|
|
return instance
|
|
|
|
|
|
class PartnerPicturesSerializer(serializers.ModelSerializer):
|
|
|
|
class Meta:
|
|
model = Partner
|
|
fields = (
|
|
'images',
|
|
)
|