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…
	
	Add table
		Add a link
		
	
		Reference in a new issue