# -*- coding: utf-8 -*- from django.utils import translation from haystack import indexes from models import Country, Area from functions.search_mixin import ExpoSearchMixin class CountryIndex(indexes.SearchIndex, indexes.Indexable, ExpoSearchMixin): text = indexes.CharField(document=True, use_template=True) url = indexes.CharField() 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 'co' def prepare_catalog_name_en(self, obj): return u'Countries' def prepare_catalog_name_ru(self, obj): return u'Страны' def get_model(self): return Country def index_queryset(self, using=None): return self.get_model().objects.countries_for_search() def get_updated_field(self): return 'modified' class AreaIndex(indexes.SearchIndex, indexes.Indexable, ExpoSearchMixin): text = indexes.CharField(document=True, use_template=True) 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 'area' def prepare_catalog_name_en(self, obj): return u'Areas' def prepare_catalog_name_ru(self, obj): return u'Регионы' def get_model(self): return Area def index_queryset(self, using=None): return self.get_model().objects.filter()