From 3662751240e186eaf7e3828237c88018c29079ea Mon Sep 17 00:00:00 2001 From: Thomas NOEL Date: Tue, 25 Feb 2020 17:12:03 +0100 Subject: [PATCH] search: do not consider page with sub_slug (#40108) --- combo/apps/search/utils.py | 2 +- tests/test_search.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/combo/apps/search/utils.py b/combo/apps/search/utils.py index 93a85402..b688d59d 100644 --- a/combo/apps/search/utils.py +++ b/combo/apps/search/utils.py @@ -44,7 +44,7 @@ def index_site(): IndexedCell.objects.all().delete() external_urls = {} for klass in CellBase.get_cell_classes(): - for cell in klass.objects.filter(page__snapshot__isnull=True).exclude(placeholder__startswith='_'): + for cell in klass.objects.filter(page__snapshot__isnull=True, page__sub_slug='').exclude(placeholder__startswith='_'): cell_type = ContentType.objects.get_for_model(cell) indexed_cell = IndexedCell(cell_type=cell_type, cell_pk=cell.id) try: diff --git a/tests/test_search.py b/tests/test_search.py index 65feffcb..d65b711b 100644 --- a/tests/test_search.py +++ b/tests/test_search.py @@ -510,3 +510,21 @@ def test_restricted_search(app): assert len(hits) == 0 hits = search_site(request, 'barfoo') assert len(hits) == 1 + + +def test_no_sub_slug_search(app): + page = Page(title='example page', slug='example-page') + page.save() + TextCell(page=page, text='

foobar

', order=0, public=True).save() + page = Page(title='example page with sub_slug', slug='sub-slugged-page', + sub_slug='(?P\d+)') + page.save() + TextCell(page=page, text='

barfoo

', order=0, public=True).save() + + request = RequestFactory().get('/') + request.user = AnonymousUser() + index_site() + hits = search_site(request, 'foobar') + assert len(hits) == 1 + hits = search_site(request, 'barfoo') + assert len(hits) == 0