41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
"""Establishment app documents."""
|
|
from django.conf import settings
|
|
from django_elasticsearch_dsl import Document, Index, fields
|
|
from search_indexes.utils import OBJECT_FIELD_PROPERTIES
|
|
from establishment import models
|
|
|
|
|
|
EstablishmentIndex = Index(settings.ELASTICSEARCH_INDEX_NAMES.get(__name__,
|
|
'establishment'))
|
|
EstablishmentIndex.settings(number_of_shards=1, number_of_replicas=1)
|
|
|
|
|
|
@EstablishmentIndex.doc_type
|
|
class EstablishmentDocument(Document):
|
|
"""Establishment document."""
|
|
|
|
description = fields.ObjectField(properties=OBJECT_FIELD_PROPERTIES)
|
|
tags = fields.ObjectField(
|
|
properties={
|
|
'id': fields.IntegerField(attr='id'),
|
|
'label': fields.ObjectField(attr='label')
|
|
},
|
|
multi=True)
|
|
|
|
class Django:
|
|
|
|
model = models.Establishment
|
|
fields = (
|
|
'id',
|
|
'name',
|
|
'public_mark',
|
|
'toque_number',
|
|
'price_level',
|
|
)
|
|
|
|
def prepare_description(self, instance):
|
|
return instance.description
|
|
|
|
def prepare_tags(self, instance):
|
|
return instance.tags_indexing
|