Update index and settings
This commit is contained in:
parent
2d1eb62964
commit
a02a3d1c3c
4 changed files with 68 additions and 4 deletions
|
@ -89,7 +89,10 @@ HELPER_SETTINGS = dict(
|
|||
'easy_thumbnails.processors.filters',
|
||||
),
|
||||
FILE_UPLOAD_TEMP_DIR=mkdtemp(),
|
||||
SITE_ID=1
|
||||
SITE_ID=1,
|
||||
HAYSTACK_CONNECTIONS = {
|
||||
"default": {}
|
||||
}
|
||||
)
|
||||
|
||||
try:
|
||||
|
|
|
@ -4,6 +4,8 @@ from django.utils.encoding import force_text
|
|||
from aldryn_search.helpers import get_plugin_index_data
|
||||
from aldryn_search.utils import get_index_base, strip_tags
|
||||
|
||||
from haystack import indexes
|
||||
|
||||
from .models import Post
|
||||
from .settings import get_setting
|
||||
|
||||
|
@ -13,11 +15,21 @@ class PostIndex(get_index_base()):
|
|||
|
||||
index_title = True
|
||||
|
||||
author = indexes.CharField(indexed=True)
|
||||
#category_ids = indexes.MultiValueField(null=True)
|
||||
#category_titles = indexes.MultiValueField(null=True)
|
||||
|
||||
def get_author(self, post):
|
||||
return post.get_author()
|
||||
|
||||
def get_title(self, post):
|
||||
return post.safe_translation_getter('title')
|
||||
|
||||
def get_description(self, post):
|
||||
return post.safe_translation_getter('abstract')
|
||||
return post.get_description()
|
||||
|
||||
def prepare_pub_date(self, post):
|
||||
return post.date_published.strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
def index_queryset(self, using=None):
|
||||
self._get_backend(using)
|
||||
|
@ -36,8 +48,10 @@ class PostIndex(get_index_base()):
|
|||
return Post
|
||||
|
||||
def get_search_data(self, post, language, request):
|
||||
description = post.safe_translation_getter('abstract')
|
||||
text_bits = [strip_tags(description)]
|
||||
abstract = post.safe_translation_getter('abstract')
|
||||
text_bits = [strip_tags(abstract)]
|
||||
text_bits.append(post.get_description())
|
||||
text_bits.append(get_keywords)
|
||||
for category in post.categories.all():
|
||||
text_bits.append(
|
||||
force_text(category.safe_translation_getter('name')))
|
||||
|
|
|
@ -7,6 +7,8 @@ from cmsplugin_filer_image.models import ThumbnailOption
|
|||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.sites.models import Site
|
||||
from djangocms_helper.base_test import BaseTestCase
|
||||
from haystack import connections
|
||||
from haystack.constants import DEFAULT_ALIAS
|
||||
from parler.utils.context import smart_override
|
||||
|
||||
from djangocms_blog.cms_appconfig import BlogConfig
|
||||
|
@ -183,3 +185,9 @@ class BaseTest(BaseTestCase):
|
|||
post1.save()
|
||||
posts.append(post1)
|
||||
return posts
|
||||
|
||||
def get_post_index(self):
|
||||
search_conn = connections[DEFAULT_ALIAS]
|
||||
unified_index = search_conn.get_unified_index()
|
||||
index = unified_index.get_index(Post)
|
||||
return index
|
||||
|
|
39
tests/test_search.py
Normal file
39
tests/test_search.py
Normal file
|
@ -0,0 +1,39 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
|
||||
from djangocms_blog.search_indexes import PostIndex
|
||||
from . import BaseTest
|
||||
|
||||
from haystack.constants import DEFAULT_ALIAS
|
||||
|
||||
|
||||
class PluginIndexingTests(BaseTest):
|
||||
|
||||
def setUp(self):
|
||||
self.index = PostIndex()
|
||||
|
||||
def test_blog_post_is_indexed_using_prepare(self):
|
||||
"""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')
|
||||
index = self.get_post_index()
|
||||
index.index_queryset(DEFAULT_ALIAS) # initialises index._backend_alias
|
||||
indexed = index.prepare(post)
|
||||
print(indexed)
|
||||
self.assertEqual('First post', indexed['title'])
|
||||
self.assertEqual('This is the description', indexed['description'])
|
||||
self.assertEqual('First post first line This is the description category 1', indexed['text'])
|
||||
self.assertEqual('/en/page-two/2015/10/15/first-post/', indexed['url'])
|
||||
|
||||
def test_blog_post_is_indexed_using_update_object(self):
|
||||
"""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')
|
||||
index = self.get_post_index()
|
||||
index.update_object(post, using=DEFAULT_ALIAS)
|
||||
indexed = index.prepared_data
|
||||
self.assertEqual('First post', indexed['title'])
|
||||
self.assertEqual('This is the description', indexed['description'])
|
||||
self.assertEqual('First post first line This is the description category 1', indexed['text'])
|
||||
self.assertEqual('/en/page-two/2015/10/15/first-post/', indexed['url'])
|
||||
|
Loading…
Reference in a new issue