- if sort:
- url_builder = lambda n: mark_safe("%s%s%s=%s&%s=%s" % (base_path, url_joiner, labels.SORT, sort, labels.PAGE, n))
- else:
- url_builder = lambda n: mark_safe("%s%s%s=%s" % (base_path, url_joiner, labels.PAGE, n))
-
- if range_start > (context.outside_page_range + 1):
- page_numbers.append([(n, url_builder(n)) for n in range(1, context.outside_page_range + 1)])
- page_numbers.append(None)
- elif range_start > 1:
- page_numbers.append([(n, url_builder(n)) for n in range(1, range_start)])
-
- page_numbers.append([(n, url_builder(n)) for n in range(range_start, range_end + 1)])
-
- if range_end < (total_pages - context.outside_page_range):
- page_numbers.append(None)
- page_numbers.append([(n, url_builder(n)) for n in range(total_pages - context.outside_page_range + 1, total_pages + 1)])
- elif range_end < total_pages:
- page_numbers.append([(n, url_builder(n)) for n in range(range_end + 1, total_pages + 1)])
-
- return page_numbers_template.render(template.Context({
- 'has_previous': has_previous,
- 'previous_url': has_previous and url_builder(page - 1) or None,
- 'has_next': has_next,
- 'next_url': has_next and url_builder(page + 1) or None,
- 'current': page,
- 'page_numbers': page_numbers
- }))
- objects.page_numbers = page_nums
+ if range_start > (context.outside_page_range + 1):
+ page_numbers.append([(n, url_builder(n)) for n in range(1, context.outside_page_range + 1)])
+ page_numbers.append(None)
+ elif range_start > 1:
+ page_numbers.append([(n, url_builder(n)) for n in range(1, range_start)])
+
+ page_numbers.append([(n, url_builder(n)) for n in range(range_start, range_end + 1)])
+
+ if range_end < (total_pages - context.outside_page_range):
+ page_numbers.append(None)
+ page_numbers.append([(n, url_builder(n)) for n in range(total_pages - context.outside_page_range + 1, total_pages + 1)])
+ elif range_end < total_pages:
+ page_numbers.append([(n, url_builder(n)) for n in range(range_end + 1, total_pages + 1)])
+
+ page_numbers_context = {
+ 'has_previous': has_previous,
+ 'previous_url': has_previous and url_builder(page - 1) or None,
+ 'has_next': has_next,
+ 'next_url': has_next and url_builder(page + 1) or None,
+ 'current': page,
+ 'page_numbers': page_numbers
+ }
+
+ paginator.page_numbers_context = page_numbers_context
+
+ def page_nums():
+ return page_numbers_template.render(template.Context(page_numbers_context))
+
+ paginator.page_numbers = page_nums