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.
 
 
 
 
 
 

52 lines
1.7 KiB

# -*- coding: utf-8 -*-
from haystack import indexes
from models import Conference
from functions.search_mixin import ExpoSearchMixin
class ConferenceIndex(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()
# fields for filter easy
members_choice = indexes.IntegerField()
visitors_choice = indexes.IntegerField()
price_choice = indexes.IntegerField()
price_choice_eur = indexes.IntegerField(model_attr='price_choice_eur', null=True)
expohit = indexes.BooleanField(model_attr='expohit')
rating = indexes.MultiValueField()
subscribers = indexes.IntegerField()
def prepare_form_name(self, obj):
return None
def prepare_catalog_name_en(self, obj):
return u'Conferences'
def prepare_catalog_name_ru(self, obj):
return u'Конференции'
def get_model(self):
return Conference
def index_queryset(self, using=None):
return self.get_model().objects.filter(is_published=True)
def get_updated_field(self):
return "modified"