diff --git a/djangocms_blog/search_indexes.py b/djangocms_blog/search_indexes.py index 53df50d..01baee9 100644 --- a/djangocms_blog/search_indexes.py +++ b/djangocms_blog/search_indexes.py @@ -17,8 +17,6 @@ class PostIndex(get_index_base()): keywords = indexes.CharField(null=True) tags = indexes.CharField(null=True) post_text = indexes.CharField(null=True) - # category_ids = indexes.MultiValueField(null=True) - # category_titles = indexes.MultiValueField(null=True) def get_keywords(self, post): return ','.join(post.get_keywords()) @@ -54,7 +52,7 @@ class PostIndex(get_index_base()): text_bits = [post.get_title()] text_bits.append(strip_tags(abstract)) text_bits.append(post.get_description()) - # text_bits.append(' '.join(post.get_keywords())) + text_bits.append(' '.join(post.get_keywords())) for category in post.categories.all(): text_bits.append( force_text(category.safe_translation_getter('name'))) @@ -64,7 +62,7 @@ class PostIndex(get_index_base()): plugins = post.content.cmsplugin_set.filter(language=language) for base_plugin in plugins: content = get_plugin_index_data(base_plugin, request) - text_bits.append(content) + text_bits.append(' '.join(content)) for attribute in optional_attributes: value = force_text(getattr(post, attribute)) if value and value not in text_bits: diff --git a/tests/test_search.py b/tests/test_search.py index 2569f8b..cf30013 100644 --- a/tests/test_search.py +++ b/tests/test_search.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import, print_function, unicode_literals +from cms.api import add_plugin from haystack.constants import DEFAULT_ALIAS from haystack.query import SearchQuerySet @@ -10,6 +11,8 @@ from .base import BaseTest class BlogIndexingTests(BaseTest): + sample_text = ('First post First post first line This is the description keyword1 ' + 'keyword2 category 1 a tag test body') def setUp(self): self.get_pages() @@ -18,13 +21,17 @@ class BlogIndexingTests(BaseTest): """This tests the indexing path way used by update_index mgmt command""" post = self._get_post(self._post_data[0]['en']) post = self._get_post(self._post_data[0]['it'], post, 'it') + post.tags.add('a tag') + add_plugin(post.content, 'TextPlugin', language='en', body='test body') + index = self.get_post_index() index.index_queryset(DEFAULT_ALIAS) # initialises index._backend_alias indexed = index.prepare(post) + self.assertEqual(post.get_title(), indexed['title']) self.assertEqual(post.get_description(), indexed['description']) - self.assertEqual('First post First post first line This is the description category 1', indexed['text']) + self.assertEqual(self.sample_text, indexed['text']) self.assertEqual(post.get_absolute_url(), indexed['url']) #self.assertEqual(post.date_published.strftime("%Y-%m-%d %H:%M:%S"), indexed['pub_date']) @@ -32,13 +39,16 @@ class BlogIndexingTests(BaseTest): """This tests the indexing path way used by the RealTimeSignalProcessor""" post = self._get_post(self._post_data[0]['en']) post = self._get_post(self._post_data[0]['it'], post, 'it') + post.tags.add('a tag') + add_plugin(post.content, 'TextPlugin', language='en', body='test body') + index = self.get_post_index() index.update_object(post, using=DEFAULT_ALIAS) indexed = index.prepared_data self.assertEqual(post.get_title(), indexed['title']) self.assertEqual(post.get_description(), indexed['description']) - self.assertEqual('First post First post first line This is the description category 1', indexed['text']) + self.assertEqual(self.sample_text, indexed['text']) self.assertEqual(post.get_absolute_url(), indexed['url']) #self.assertEqual(post.date_published.strftime("%Y-%m-%d %H:%M:%S"), indexed['pub_date'])