pages: add a param check_visibility to next/previous methods (#12437)

This commit is contained in:
Lauréline Guérin 2019-10-23 17:37:10 +02:00
parent fbfeb64a83
commit 45309fd524
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 9 additions and 4 deletions

View File

@ -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

View File

@ -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()