Added DocumentQuerySet with search method

pull/1478/head
Karl Hobley 2015-07-06 16:32:10 +01:00
rodzic 7a1a1d19e1
commit 9d0c19d50f
2 zmienionych plików z 22 dodań i 0 usunięć

Wyświetl plik

@ -16,6 +16,16 @@ from django.utils.encoding import python_2_unicode_compatible
from wagtail.wagtailadmin.taggable import TagSearchable
from wagtail.wagtailadmin.utils import get_object_usage
from wagtail.wagtailsearch import index
from wagtail.wagtailsearch.backends import get_search_backend
class DocumentQuerySet(models.QuerySet):
def search(self, query_string, fields=None, backend='default'):
"""
This runs a search query on all the documents in the QuerySet
"""
search_backend = get_search_backend(backend)
return search_backend.search(query_string, self, fields=fields)
@python_2_unicode_compatible
@ -27,6 +37,8 @@ class Document(models.Model, TagSearchable):
tags = TaggableManager(help_text=None, blank=True, verbose_name=_('Tags'))
objects = DocumentQuerySet.as_manager()
search_fields = TagSearchable.search_fields + (
index.FilterField('uploaded_by_user'),
)

Wyświetl plik

@ -25,6 +25,16 @@ from wagtail.wagtaildocs import models
from wagtail.wagtaildocs.rich_text import DocumentLinkHandler
class TestImageQuerySet(TestCase):
def test_search_method(self):
# Make a test document
document = models.Document.objects.create(title="Test document")
# Search for it
results = models.Document.objects.search("Test")
self.assertEqual(list(results), [document])
class TestDocumentPermissions(TestCase):
def setUp(self):
# Create some user accounts for testing permissions