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 = {
'password': {'write_only': True},
'phone': {'write_only': True},
}
read_only_fields = (
'old_password',

View File

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

View File

@ -9,6 +9,7 @@ from account.serializers.common import UserShortSerializer
from collection.models import Guide
from establishment import models, serializers as model_serializers
from establishment.models import ContactEmail, ContactPhone, EstablishmentEmployee
from establishment.serializers.common import ContactPhonesSerializer
from gallery.models import Image
from location.serializers import AddressDetailSerializer, TranslatedField
from main.models import Currency
@ -63,13 +64,14 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
read_only=True,
)
tz = TimeZoneChoiceField()
phones = serializers.ListField(
source='contact_phones',
contact_phones = serializers.ListField(
allow_null=True,
allow_empty=True,
child=serializers.CharField(max_length=128),
required=False,
write_only=True,
)
phones = ContactPhonesSerializer(read_only=True, many=True)
emails = serializers.ListField(
source='contact_emails',
allow_null=True,
@ -78,8 +80,7 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
required=False,
)
class Meta:
model = models.Establishment
class Meta(model_serializers.EstablishmentBaseSerializer.Meta):
fields = [
'id',
'name',
@ -87,6 +88,7 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
'index_name',
'website',
'phones',
'contact_phones',
'emails',
'price_level',
'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):
"""Establishment create serializer"""
@ -168,7 +159,7 @@ class EstablishmentRUDSerializer(model_serializers.EstablishmentBaseSerializer):
subtypes = model_serializers.EstablishmentSubTypeBaseSerializer(source='establishment_subtypes',
read_only=True, many=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):
fields = [

View File

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