def segment_pages(page):
page.paginator.left = []
page.paginator.right = []
page.paginator.middle = []
segment = 4
adjacents = 3
p = 1
if page.paginator.num_pages > 1:
if page.paginator.num_pages < 7 + (adjacents * 2):
page.paginator.left = range(1, page.paginator.num_pages + 1)
if page.paginator.num_pages >= 7 + (adjacents * 2):
if page.number < 1 + (adjacents * 3):
page.paginator.left = range(1, 5 + (adjacents * 2))
page.paginator.right = range(page.paginator.num_pages - adjacents, page.paginator.num_pages + 1)
elif page.paginator.num_pages - (adjacents * 2) > page.number and page.number > (adjacents * 2):
page.paginator.left = range(1, 1 + adjacents)
page.paginator.middle = range(page.number - adjacents, page.number + (adjacents+1))
page.paginator.right = range(page.paginator.num_pages - adjacents, page.paginator.num_pages + 1)
else:
page.paginator.left = range(1, adjacents)
page.paginator.right = range(page.paginator.num_pages - (1 + adjacents * 3), page.paginator.num_pages + 1)
return page
Refactorings
No refactoring yet !
Really quickly ported some PHP code to Python to support digg style pagination. only problem is it is pretty awful. Can anyone give a quick hint to make this look better