Merge branch 'bugfix/kuroshini' into develop
This commit is contained in:
commit
8a8986246f
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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."""
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user