add schedule to search results

This commit is contained in:
Kuroshini 2019-10-17 14:45:33 +03:00
parent c59811e037
commit 97fc8dce15
2 changed files with 29 additions and 3 deletions

View File

@ -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):

View File

@ -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."""