diff --git a/combo/data/models.py b/combo/data/models.py index b18f3d04..728f0faf 100644 --- a/combo/data/models.py +++ b/combo/data/models.py @@ -281,22 +281,22 @@ class Page(models.Model): tmpl.render(context, request) return placeholders - def get_next_page(self, user=None): + def get_next_page(self, user=None, check_visibility=True): pages = Page.get_as_reordered_flat_hierarchy(Page.objects.all()) this_page = [x for x in pages if x.id == self.id][0] pages = pages[pages.index(this_page)+1:] for page in pages: - if page.is_visible(user): + if not check_visibility or page.is_visible(user): return page return None - def get_previous_page(self, user=None): + def get_previous_page(self, user=None, check_visibility=True): pages = Page.get_as_reordered_flat_hierarchy(Page.objects.all()) pages.reverse() this_page = [x for x in pages if x.id == self.id][0] pages = pages[pages.index(this_page)+1:] for page in pages: - if page.is_visible(user): + if not check_visibility or page.is_visible(user): return page return None diff --git a/tests/test_pages.py b/tests/test_pages.py index b27db89c..aa701bd7 100644 --- a/tests/test_pages.py +++ b/tests/test_pages.py @@ -228,6 +228,11 @@ def test_next_previous(): page3.save() assert page.get_next_page(None) is None + assert page.get_next_page(check_visibility=False).id == page2.pk + assert page2.get_next_page(check_visibility=False).id == page3.pk + assert page3.get_previous_page(check_visibility=False).id == page2.pk + + def test_import_export_management_commands(): page = Page(title=u'foo', slug='foo', order=0) page.save()