2013-03-19 03:49:52 +00:00
|
|
|
from django.core.paginator import Paginator as DefaultPaginator
|
|
|
|
|
2013-04-11 09:30:55 +00:00
|
|
|
def get_page_range(current_page, num_pages):
|
|
|
|
first_page = 1
|
|
|
|
if num_pages <= 10:
|
|
|
|
last_page = num_pages
|
|
|
|
else:
|
|
|
|
if current_page < 6:
|
|
|
|
last_page = 10
|
|
|
|
else:
|
|
|
|
first_page = current_page - 5
|
|
|
|
last_page = current_page + 4 if current_page + 4 < num_pages else num_pages
|
|
|
|
return range(first_page, last_page + 1)
|
|
|
|
|
2013-03-19 03:49:52 +00:00
|
|
|
class Paginator(DefaultPaginator):
|
|
|
|
def get_page_range(self, current_page=1):
|
|
|
|
"""
|
|
|
|
Returns custom range of pages.
|
|
|
|
"""
|
2013-04-11 09:30:55 +00:00
|
|
|
return get_page_range(current_page, self.num_pages)
|