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) EstablishmentTypeBaseSerializer)
from main.models import Currency from main.models import Currency
from utils.decorators import with_base_attributes from utils.decorators import with_base_attributes
from utils.serializers import TimeZoneChoiceField
class EstablishmentListCreateSerializer(EstablishmentBaseSerializer): class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
@ -19,8 +20,8 @@ class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
phones = ContactPhonesSerializer(read_only=True, many=True, ) phones = ContactPhonesSerializer(read_only=True, many=True, )
emails = ContactEmailsSerializer(read_only=True, many=True, ) emails = ContactEmailsSerializer(read_only=True, many=True, )
socials = SocialNetworkRelatedSerializers(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) type = EstablishmentTypeBaseSerializer(source='establishment_type', read_only=True)
tz = TimeZoneChoiceField()
class Meta: class Meta:
model = models.Establishment model = models.Establishment

View File

@ -159,7 +159,6 @@ class EstablishmentBaseSerializer(ProjectModelSerializer):
"""Base serializer for Establishment model.""" """Base serializer for Establishment model."""
preview_image = serializers.URLField(source='preview_image_url') preview_image = serializers.URLField(source='preview_image_url')
slug = serializers.SlugField(allow_blank=False, required=True, max_length=50)
address = AddressBaseSerializer() address = AddressBaseSerializer()
in_favorites = serializers.BooleanField(allow_null=True) in_favorites = serializers.BooleanField(allow_null=True)
tags = TagBaseSerializer(read_only=True, many=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 advertisement.serializers.web import AdvertisementSerializer
from location.serializers import CountrySerializer from location.serializers import CountrySerializer
from main import models from main import models
from utils.serializers import ProjectModelSerializer from utils.serializers import ProjectModelSerializer, TranslatedField
class FeatureSerializer(serializers.ModelSerializer): class FeatureSerializer(serializers.ModelSerializer):
@ -41,7 +41,9 @@ class SiteFeatureSerializer(serializers.ModelSerializer):
class CurrencySerializer(ProjectModelSerializer): class CurrencySerializer(ProjectModelSerializer):
"""Currency serializer""" """Currency serializer."""
name_translated = TranslatedField()
class Meta: class Meta:
model = models.Currency model = models.Currency

View File

@ -102,28 +102,3 @@ class EstablishmentDocumentSerializer(DocumentSerializer):
# 'establishment_type', # 'establishment_type',
# 'establishment_subtypes', # '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.""" """Utils app serializer."""
import pytz
from django.core import exceptions from django.core import exceptions
from rest_framework import serializers from rest_framework import serializers
from utils import models from utils import models
@ -48,6 +49,21 @@ class TJSONField(serializers.JSONField):
validators = [validate_tjson] 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): class ProjectModelSerializer(serializers.ModelSerializer):
"""Overrided ModelSerializer.""" """Overrided ModelSerializer."""