diff --git a/apps/search_indexes/documents/establishment.py b/apps/search_indexes/documents/establishment.py index f3f9505c..f79b6427 100644 --- a/apps/search_indexes/documents/establishment.py +++ b/apps/search_indexes/documents/establishment.py @@ -45,6 +45,19 @@ class EstablishmentDocument(Document): properties=OBJECT_FIELD_PROPERTIES), }, multi=True) + schedule = fields.ListField(fields.ObjectField( + properties={ + 'id': fields.IntegerField(attr='id'), + 'weekday': fields.IntegerField(attr='weekday'), + 'weekday_display': fields.KeywordField(attr='weekday_display'), + 'opening_at': fields.KeywordField(attr='opening_at'), + 'closed_at': fields.KeywordField(attr='closed_at'), + 'lunch_start': fields.KeywordField(attr='lunch_start'), + 'lunch_end': fields.KeywordField(attr='lunch_end'), + 'dinner_end': fields.KeywordField(attr='dinner_end'), + 'dinner_start': fields.KeywordField(attr='dinner_start'), + } + )) address = fields.ObjectField( properties={ 'id': fields.IntegerField(), @@ -94,7 +107,6 @@ class EstablishmentDocument(Document): 'toque_number', 'public_mark', 'slug', - 'schedule', ) def get_queryset(self): diff --git a/apps/search_indexes/serializers.py b/apps/search_indexes/serializers.py index d4b834ca..8194504d 100644 --- a/apps/search_indexes/serializers.py +++ b/apps/search_indexes/serializers.py @@ -4,7 +4,6 @@ from django_elasticsearch_dsl_drf.serializers import DocumentSerializer from news.serializers import NewsTypeSerializer from search_indexes.documents import EstablishmentDocument, NewsDocument from search_indexes.utils import get_translated_value -from timetable.serialziers import ScheduleRUDSerializer class TagsDocumentSerializer(serializers.Serializer): @@ -31,6 +30,21 @@ class AddressDocumentSerializer(serializers.Serializer): geo_lat = serializers.FloatField(allow_null=True, source='coordinates.lat') +class ScheduleDocumentSerializer(serializers.Serializer): + """Schedule serializer for ES Document""" + + id = serializers.IntegerField() + weekday = serializers.IntegerField() + weekday_display = serializers.CharField() + opening_at = serializers.CharField() + closed_at = serializers.CharField() + lunch_start = serializers.CharField() + lunch_end = serializers.CharField() + dinner_end = serializers.CharField() + dinner_start = serializers.CharField() + + + class NewsDocumentSerializer(DocumentSerializer): """News document serializer.""" @@ -69,7 +83,7 @@ class EstablishmentDocumentSerializer(DocumentSerializer): address = AddressDocumentSerializer() tags = TagsDocumentSerializer(many=True) - schedule = ScheduleRUDSerializer(many=True, allow_null=True) + schedule = ScheduleDocumentSerializer(many=True, allow_null=True) class Meta: """Meta class."""