Merge branch 'bugfix/kuroshini' into develop

This commit is contained in:
evgeniy-st 2019-10-24 16:19:10 +03:00
commit 8a8986246f
5 changed files with 22 additions and 29 deletions

View File

@ -7,6 +7,7 @@ from establishment.serializers import (
EstablishmentTypeBaseSerializer)
from main.models import Currency
from utils.decorators import with_base_attributes
from utils.serializers import TimeZoneChoiceField
class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
@ -19,8 +20,8 @@ class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
phones = ContactPhonesSerializer(read_only=True, many=True, )
emails = ContactEmailsSerializer(read_only=True, many=True, )
socials = SocialNetworkRelatedSerializers(read_only=True, many=True, )
slug = serializers.SlugField(required=True, allow_blank=False, max_length=50)
type = EstablishmentTypeBaseSerializer(source='establishment_type', read_only=True)
tz = TimeZoneChoiceField()
class Meta:
model = models.Establishment

View File

@ -159,7 +159,6 @@ class EstablishmentBaseSerializer(ProjectModelSerializer):
"""Base serializer for Establishment model."""
preview_image = serializers.URLField(source='preview_image_url')
slug = serializers.SlugField(allow_blank=False, required=True, max_length=50)
address = AddressBaseSerializer()
in_favorites = serializers.BooleanField(allow_null=True)
tags = TagBaseSerializer(read_only=True, many=True)

View File

@ -4,7 +4,7 @@ from rest_framework import serializers
from advertisement.serializers.web import AdvertisementSerializer
from location.serializers import CountrySerializer
from main import models
from utils.serializers import ProjectModelSerializer
from utils.serializers import ProjectModelSerializer, TranslatedField
class FeatureSerializer(serializers.ModelSerializer):
@ -41,7 +41,9 @@ class SiteFeatureSerializer(serializers.ModelSerializer):
class CurrencySerializer(ProjectModelSerializer):
"""Currency serializer"""
"""Currency serializer."""
name_translated = TranslatedField()
class Meta:
model = models.Currency

View File

@ -102,28 +102,3 @@ class EstablishmentDocumentSerializer(DocumentSerializer):
# 'establishment_type',
# 'establishment_subtypes',
)
# def to_representation(self, instance):
# ret = super().to_representation(instance)
# dict_merge = lambda a, b: a.update(b) or a
#
# ret['tags'] = map(lambda tag: dict_merge(tag, {'label_translated': get_translated_value(tag.pop('label'))}),
# ret['tags'])
# ret['establishment_subtypes'] = map(
# lambda subtype: dict_merge(subtype, {'name_translated': get_translated_value(subtype.pop('name'))}),
# ret['establishment_subtypes'])
# if ret.get('establishment_type'):
# ret['establishment_type']['name_translated'] = get_translated_value(ret['establishment_type'].pop('name'))
# if ret.get('address'):
# ret['address']['city']['country']['name_translated'] = get_translated_value(
# ret['address']['city']['country'].pop('name'))
# location = ret['address'].pop('location')
# if location:
# ret['address']['geo_lon'] = location['lon']
# ret['address']['geo_lat'] = location['lat']
#
# ret['type'] = ret.pop('establishment_type')
# ret['subtypes'] = ret.pop('establishment_subtypes')
#
# return ret

View File

@ -1,4 +1,5 @@
"""Utils app serializer."""
import pytz
from django.core import exceptions
from rest_framework import serializers
from utils import models
@ -48,6 +49,21 @@ class TJSONField(serializers.JSONField):
validators = [validate_tjson]
class TimeZoneChoiceField(serializers.ChoiceField):
"""Take the timezone object and make it JSON serializable."""
def __init__(self, choices=None, **kwargs):
if choices is None:
choices = pytz.all_timezones
super().__init__(choices=choices, **kwargs)
def to_representation(self, value):
return value.zone
def to_internal_value(self, data):
return pytz.timezone(data)
class ProjectModelSerializer(serializers.ModelSerializer):
"""Overrided ModelSerializer."""