Update index
This commit is contained in:
parent
a02a3d1c3c
commit
129708b274
1 changed files with 22 additions and 5 deletions
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from django.utils.encoding import force_text
|
from django.utils.encoding import force_text
|
||||||
|
from django.utils.text import force_unicode
|
||||||
from aldryn_search.helpers import get_plugin_index_data
|
from aldryn_search.helpers import get_plugin_index_data
|
||||||
from aldryn_search.utils import get_index_base, strip_tags
|
from aldryn_search.utils import get_index_base, strip_tags
|
||||||
|
|
||||||
|
@ -15,12 +15,16 @@ class PostIndex(get_index_base()):
|
||||||
|
|
||||||
index_title = True
|
index_title = True
|
||||||
|
|
||||||
author = indexes.CharField(indexed=True)
|
author = indexes.CharField(indexed=True, model_attr='get_author')
|
||||||
|
keywords = indexes.CharField(null=True)
|
||||||
|
tags = indexes.CharField(null=True)
|
||||||
|
post_text = indexes.CharField(null=True)
|
||||||
#category_ids = indexes.MultiValueField(null=True)
|
#category_ids = indexes.MultiValueField(null=True)
|
||||||
#category_titles = indexes.MultiValueField(null=True)
|
#category_titles = indexes.MultiValueField(null=True)
|
||||||
|
|
||||||
def get_author(self, post):
|
|
||||||
return post.get_author()
|
def get_keywords(self, post):
|
||||||
|
return ','.join(post.get_keywords())
|
||||||
|
|
||||||
def get_title(self, post):
|
def get_title(self, post):
|
||||||
return post.safe_translation_getter('title')
|
return post.safe_translation_getter('title')
|
||||||
|
@ -48,10 +52,11 @@ class PostIndex(get_index_base()):
|
||||||
return Post
|
return Post
|
||||||
|
|
||||||
def get_search_data(self, post, language, request):
|
def get_search_data(self, post, language, request):
|
||||||
|
optional_attributes = []
|
||||||
abstract = post.safe_translation_getter('abstract')
|
abstract = post.safe_translation_getter('abstract')
|
||||||
text_bits = [strip_tags(abstract)]
|
text_bits = [strip_tags(abstract)]
|
||||||
text_bits.append(post.get_description())
|
text_bits.append(post.get_description())
|
||||||
text_bits.append(get_keywords)
|
#text_bits.append(' '.join(post.get_keywords()))
|
||||||
for category in post.categories.all():
|
for category in post.categories.all():
|
||||||
text_bits.append(
|
text_bits.append(
|
||||||
force_text(category.safe_translation_getter('name')))
|
force_text(category.safe_translation_getter('name')))
|
||||||
|
@ -62,4 +67,16 @@ class PostIndex(get_index_base()):
|
||||||
for base_plugin in plugins:
|
for base_plugin in plugins:
|
||||||
content = get_plugin_index_data(base_plugin, request)
|
content = get_plugin_index_data(base_plugin, request)
|
||||||
text_bits.append(content)
|
text_bits.append(content)
|
||||||
|
for attribute in optional_attributes:
|
||||||
|
value = force_unicode(getattr(post, attribute))
|
||||||
|
if value and value not in text_bits:
|
||||||
|
text_bits.append(value)
|
||||||
return ' '.join(text_bits)
|
return ' '.join(text_bits)
|
||||||
|
|
||||||
|
def prepare_fields(self, post, language, request):
|
||||||
|
super(PostIndex, self).prepare_fields(post, language, request)
|
||||||
|
data = [self.prepared_data['text']]
|
||||||
|
self.prepared_data['keywords'] = ' '.join(post.get_keywords())
|
||||||
|
self.prepared_data['tags'] = ' '.join(post.get_tags())
|
||||||
|
self.prepared_data['post_text'] = ' '.join(post.safe_translation_getter('post_text'))
|
||||||
|
self.prepared_data['text'] = ' '.join(data)
|
||||||
|
|
Loading…
Reference in a new issue