You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.7 KiB
62 lines
1.7 KiB
# -*- 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() |