# -*- coding: utf-8 -*- from django.utils import translation from haystack import indexes from models import Exposition from functions.search_mixin import ExpoSearchMixin class ExpositionIndex(indexes.SearchIndex, indexes.Indexable, ExpoSearchMixin): text = indexes.CharField(document=True, use_template=True) where = indexes.MultiValueField() url = indexes.CharField() data_begin = indexes.DateField(model_attr='data_begin') data_end = indexes.DateField(model_attr='data_end') theme = indexes.MultiValueField() tag = indexes.MultiValueField() country_id = indexes.IntegerField() city_id = indexes.IntegerField() area_id = indexes.IntegerField() content_auto = indexes.EdgeNgramField() form_name = indexes.CharField() # translated fields name_en = indexes.CharField() name_ru = indexes.CharField() catalog_name_en = indexes.CharField() catalog_name_ru = indexes.CharField() def prepare_form_name(self, obj): return None def prepare_catalog_name_en(self, obj): return u'Expos' def prepare_catalog_name_ru(self, obj): return u'Выставки' def get_model(self): return Exposition def index_queryset(self, using=None): return self.get_model().objects.filter(is_published=True) def get_name(self): return 123 lang = translation.get_language() if lang == 'ru': return self.name_ru elif lang=='en': return self.name_en else: return self.name_ru