X-Git-Url: https://git.mdrn.pl/prawokultury.git/blobdiff_plain/999340c55d5402900dd013ab5ced2413cd4f22f8..97a6fccf2124739922f1f5e3e7fc472e2e402a2b:/migdal/search_indexes.py?ds=sidebyside diff --git a/migdal/search_indexes.py b/migdal/search_indexes.py index 333899f..27169f3 100644 --- a/migdal/search_indexes.py +++ b/migdal/search_indexes.py @@ -1,12 +1,11 @@ -from django.conf import settings import datetime +from django.conf import settings from haystack import indexes +from fnpdjango.utils.models.translation import add_translatable_index from migdal.models import Entry -from copy import copy - -class EntryIndex(indexes.SearchIndex, indexes.Indexable): +class EntryIndex(indexes.RealTimeSearchIndex, indexes.Indexable): date = indexes.DateTimeField(indexed=True, model_attr="date") author = indexes.CharField(model_attr="author") @@ -15,27 +14,13 @@ class EntryIndex(indexes.SearchIndex, indexes.Indexable): def index_queryset(self): """Used when the entire index for model is updated.""" - return self.get_model().objects.filter(date__lte=datetime.datetime.now()) - - -def add_translatable(index_class, fields, languages=None): - """Adds some translatable fields to a search index, and a getter.""" - if languages is None: - languages = settings.LANGUAGES - for name, field in fields.items(): - for lang_code, lang_name in languages: - new_field = copy(field) - fname = "%s_%s" % (name, lang_code) - new_field.index_fieldname = fname - new_field.model_attr = fname - setattr(index_class, fname, new_field) - index_class.fields[fname] = new_field - - -add_translatable(EntryIndex, { - 'title': indexes.CharField(indexed=True, document=False), - 'lead': indexes.CharField(indexed=True, document=False), - 'body': indexes.CharField(indexed=True, document=False) + return self.get_model().objects.all() # filter(date__lte=datetime.datetime.now()) + + +add_translatable_index(EntryIndex, { + 'title': indexes.CharField(null=True), + 'lead': indexes.CharField(null=True), + 'body': indexes.CharField(null=True) })