refactored serializers that retrieving phone numbers

This commit is contained in:
Anatoly 2020-02-03 14:13:45 +03:00
parent 6c7b7ff19e
commit 831b043a48
4 changed files with 12 additions and 23 deletions

View File

@ -51,7 +51,6 @@ class BackUserSerializer(UserSerializer):
) )
extra_kwargs = { extra_kwargs = {
'password': {'write_only': True}, 'password': {'write_only': True},
'phone': {'write_only': True},
} }
read_only_fields = ( read_only_fields = (
'old_password', 'old_password',

View File

@ -110,7 +110,6 @@ class UserSerializer(PhoneMixinSerializer, serializers.ModelSerializer):
'image_url': {'required': False, }, 'image_url': {'required': False, },
'cropped_image_url': {'required': False, }, 'cropped_image_url': {'required': False, },
'newsletter': {'required': False, }, 'newsletter': {'required': False, },
'phone': {'required': False, 'write_only': True, }
} }
def create(self, validated_data): def create(self, validated_data):

View File

@ -9,6 +9,7 @@ from account.serializers.common import UserShortSerializer
from collection.models import Guide from collection.models import Guide
from establishment import models, serializers as model_serializers from establishment import models, serializers as model_serializers
from establishment.models import ContactEmail, ContactPhone, EstablishmentEmployee from establishment.models import ContactEmail, ContactPhone, EstablishmentEmployee
from establishment.serializers.common import ContactPhonesSerializer
from gallery.models import Image from gallery.models import Image
from location.serializers import AddressDetailSerializer, TranslatedField from location.serializers import AddressDetailSerializer, TranslatedField
from main.models import Currency from main.models import Currency
@ -63,13 +64,14 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
read_only=True, read_only=True,
) )
tz = TimeZoneChoiceField() tz = TimeZoneChoiceField()
phones = serializers.ListField( contact_phones = serializers.ListField(
source='contact_phones',
allow_null=True, allow_null=True,
allow_empty=True, allow_empty=True,
child=serializers.CharField(max_length=128), child=serializers.CharField(max_length=128),
required=False, required=False,
write_only=True,
) )
phones = ContactPhonesSerializer(read_only=True, many=True)
emails = serializers.ListField( emails = serializers.ListField(
source='contact_emails', source='contact_emails',
allow_null=True, allow_null=True,
@ -78,8 +80,7 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
required=False, required=False,
) )
class Meta: class Meta(model_serializers.EstablishmentBaseSerializer.Meta):
model = models.Establishment
fields = [ fields = [
'id', 'id',
'name', 'name',
@ -87,6 +88,7 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
'index_name', 'index_name',
'website', 'website',
'phones', 'phones',
'contact_phones',
'emails', 'emails',
'price_level', 'price_level',
'toque_number', 'toque_number',
@ -137,17 +139,6 @@ class EstablishmentPositionListSerializer(model_serializers.EstablishmentBaseSer
] ]
class EstablishmentContactPhoneSerializer(PhoneMixinSerializer, serializers.ModelSerializer):
"""Establishment contact phone serializer."""
class Meta:
"""Meta class."""
model = models.ContactPhone
fields = [
'country_calling_code',
'national_calling_number',
]
class EstablishmentRUDSerializer(model_serializers.EstablishmentBaseSerializer): class EstablishmentRUDSerializer(model_serializers.EstablishmentBaseSerializer):
"""Establishment create serializer""" """Establishment create serializer"""
@ -168,7 +159,7 @@ class EstablishmentRUDSerializer(model_serializers.EstablishmentBaseSerializer):
subtypes = model_serializers.EstablishmentSubTypeBaseSerializer(source='establishment_subtypes', subtypes = model_serializers.EstablishmentSubTypeBaseSerializer(source='establishment_subtypes',
read_only=True, many=True) read_only=True, many=True)
type = model_serializers.EstablishmentTypeBaseSerializer(source='establishment_type', read_only=True) type = model_serializers.EstablishmentTypeBaseSerializer(source='establishment_type', read_only=True)
phones = EstablishmentContactPhoneSerializer(read_only=True, many=True) phones = ContactPhonesSerializer(read_only=True, many=True)
class Meta(model_serializers.EstablishmentBaseSerializer.Meta): class Meta(model_serializers.EstablishmentBaseSerializer.Meta):
fields = [ fields = [

View File

@ -21,19 +21,21 @@ from timetable.serialziers import ScheduleRUDSerializer
from utils import exceptions as utils_exceptions from utils import exceptions as utils_exceptions
from utils.serializers import ( from utils.serializers import (
CarouselCreateSerializer, FavoritesCreateSerializer, ImageBaseSerializer, CarouselCreateSerializer, FavoritesCreateSerializer, ImageBaseSerializer,
ProjectModelSerializer, TranslatedField, ProjectModelSerializer, TranslatedField, PhoneMixinSerializer
) )
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class ContactPhonesSerializer(serializers.ModelSerializer): class ContactPhonesSerializer(PhoneMixinSerializer, serializers.ModelSerializer):
"""Contact phone serializer""" """Contact phone serializer"""
class Meta: class Meta:
model = models.ContactPhone model = models.ContactPhone
fields = [ fields = [
'phone' 'phone',
'country_calling_code',
'national_calling_number',
] ]
@ -657,8 +659,6 @@ class CompanyBaseSerializer(serializers.ModelSerializer):
] ]
extra_kwargs = { extra_kwargs = {
'establishment': {'write_only': True}, 'establishment': {'write_only': True},
'phones': {'write_only': True},
'faxes': {'write_only': True},
'address': {'write_only': True} 'address': {'write_only': True}
} }