diff --git a/wagtail/contrib/wagtailsearchpicks/templatetags/__init__.py b/wagtail/contrib/wagtailsearchpicks/templatetags/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/contrib/wagtailsearchpicks/templatetags/wagtailsearchpicks_tags.py b/wagtail/contrib/wagtailsearchpicks/templatetags/wagtailsearchpicks_tags.py new file mode 100644 index 000000000..5cee68f90 --- /dev/null +++ b/wagtail/contrib/wagtailsearchpicks/templatetags/wagtailsearchpicks_tags.py @@ -0,0 +1,11 @@ +from django import template + +from wagtail.wagtailsearch.models import Query + + +register = template.Library() + + +@register.assignment_tag() +def get_search_picks(search_query): + return Query.get(search_query).editors_picks.all() diff --git a/wagtail/contrib/wagtailsearchpicks/tests.py b/wagtail/contrib/wagtailsearchpicks/tests.py index 573f15215..8c78cc3d2 100644 --- a/wagtail/contrib/wagtailsearchpicks/tests.py +++ b/wagtail/contrib/wagtailsearchpicks/tests.py @@ -4,6 +4,7 @@ from django.core.urlresolvers import reverse from wagtail.tests.utils import WagtailTestUtils from wagtail.wagtailsearch.models import Query from wagtail.contrib.wagtailsearchpicks.models import SearchPick +from wagtail.contrib.wagtailsearchpicks.templatetags.wagtailsearchpicks_tags import get_search_picks class TestSearchPicks(TestCase): @@ -48,6 +49,29 @@ class TestSearchPicks(TestCase): self.assertEqual(Query.get("root page").editors_picks.last().description, "Last search pick") +class TestGetSearchPicksTemplateTag(TestCase): + def test_get_search_picks_template_tag(self): + # Create a search pick to the root page + pick = SearchPick.objects.create( + query=Query.get("root page"), + page_id=1, + sort_order=0, + description="First search pick", + ) + + # Create another search pick against a different query + SearchPick.objects.create( + query=Query.get("root page again"), + page_id=1, + sort_order=0, + description="Second search pick", + ) + + # Check + search_picks = list(get_search_picks("root page")) + self.assertEqual(search_picks, [pick]) + + class TestSearchPicksIndexView(TestCase, WagtailTestUtils): def setUp(self): self.login()