Add city name field to establishment api representations

This commit is contained in:
Kuroshini 2019-10-16 14:11:07 +03:00
parent 995d55302a
commit 521d7f19f3
4 changed files with 23 additions and 3 deletions

View File

@ -5,7 +5,7 @@ from rest_framework import serializers
from comment import models as comment_models
from comment.serializers import common as comment_serializers
from establishment import models
from location.serializers import AddressBaseSerializer, CitySerializer
from location.serializers import AddressBaseSerializer, CitySerializer, AddressDetailSerializer
from main.serializers import AwardSerializer, CurrencySerializer
from tag.serializers import TagBaseSerializer
from timetable.serialziers import ScheduleRUDSerializer
@ -225,6 +225,16 @@ class EstablishmentBaseSerializer(ProjectModelSerializer):
'currency'
]
class EstablishmentAddressExtendedSerializer(EstablishmentBaseSerializer):
"""Establishment with city serializer."""
address = AddressDetailSerializer()
class Meta(EstablishmentBaseSerializer.Meta):
"""Meta class."""
fields = EstablishmentBaseSerializer.Meta.fields
class EstablishmentGeoSerializer(EstablishmentBaseSerializer):
"""Serializer for Geo view."""
@ -260,6 +270,8 @@ class EstablishmentDetailSerializer(EstablishmentBaseSerializer):
review = ReviewShortSerializer(source='last_published_review', allow_null=True)
employees = EstablishmentEmployeeSerializer(source='actual_establishment_employees',
many=True)
address = AddressDetailSerializer(read_only=True)
menu = MenuSerializers(source='menu_set', many=True, read_only=True)
best_price_menu = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True)
best_price_carte = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True)

View File

@ -32,7 +32,7 @@ class EstablishmentListView(EstablishmentMixinView, generics.ListAPIView):
"""Resource for getting a list of establishments."""
filter_class = filters.EstablishmentFilter
serializer_class = serializers.EstablishmentBaseSerializer
serializer_class = serializers.EstablishmentAddressExtendedSerializer
class EstablishmentRetrieveView(EstablishmentMixinView, generics.RetrieveAPIView):

View File

@ -65,7 +65,6 @@ class EstablishmentDocument(Document):
'number': fields.IntegerField(),
'postal_code': fields.KeywordField(),
'coordinates': fields.GeoPointField(attr='location_field_indexing'),
# todo: remove if not used
'city': fields.ObjectField(
properties={
'id': fields.IntegerField(),

View File

@ -19,10 +19,19 @@ class TagsDocumentSerializer(serializers.Serializer):
return get_translated_value(obj.label)
class CityDocumentShortSerializer(serializers.Serializer):
"""City serializer for ES Document,"""
id = serializers.IntegerField()
code = serializers.CharField(allow_null=True)
name = serializers.CharField()
class AddressDocumentSerializer(serializers.Serializer):
"""Address serializer for ES Document."""
id = serializers.IntegerField()
city = CityDocumentShortSerializer()
street_name_1 = serializers.CharField()
street_name_2 = serializers.CharField()
number = serializers.IntegerField()