pages: add a param check_visibility to next/previous methods (#12437)
This commit is contained in:
parent
fbfeb64a83
commit
45309fd524
|
@ -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
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue