Created
December 6, 2014 18:12
-
-
Save sdfsdhgjkbmnmxc/14f01f97b536178d9626 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class LargePaginator(Paginator): | |
def _get_page(self, *args, **kwargs): | |
return LargePage(*args, **kwargs) | |
class LargePage(Page): | |
HELLIP = None | |
def pages_to_show(self): | |
pages_wanted = { | |
1, | |
2, | |
self.number - 2, | |
self.number - 1, | |
self.number, | |
self.number + 1, | |
self.number + 2, | |
self.paginator.num_pages - 1, | |
self.paginator.num_pages, | |
} | |
pages_to_show = set(self.paginator.page_range).intersection(pages_wanted) | |
pages_to_show = sorted(pages_to_show) | |
skip_pages = [ | |
x[1] | |
for x in zip(pages_to_show[:-1], pages_to_show[1:]) | |
if x[1] - x[0] != 1 | |
] | |
for i in skip_pages: | |
pages_to_show.insert(pages_to_show.index(i), self.HELLIP) | |
return pages_to_show | |
{% if page_obj.paginator.num_pages > 1 %} | |
<div class="hr-line-dashed"></div> | |
<div class="text-center"> | |
<div class="btn-group"> | |
{% if page_obj.has_previous %} | |
<a href="?page={{ page_obj.previous_page_number }}{{ additional }}" class="btn btn-white"><i class="fa fa-chevron-left"></i></a> | |
{% else %} | |
<button class="btn btn-white" type="button" disabled><i class="fa fa-chevron-left"></i> </button> | |
{% endif %} | |
{% with pages_to_show=page_obj.pages_to_show %} | |
{% if pages_to_show %} | |
{% for p in pages_to_show %} | |
{% if p %} | |
<a href="?page={{ p }}{{ additional }}" class="btn btn-white{% if p == page_obj.number %} active{% endif %}">{{ p }}</a> | |
{% else %} | |
<a class="btn btn-white" disabled href="#">…</a> | |
{% endif %} | |
{% endfor %} | |
{% else %} | |
{% for p in page_obj.paginator.page_range %} | |
<a href="?page={{ p }}{{ additional }}" class="btn btn-white{% if p == page_obj.number %} active{% endif %}">{{ p }}</a> | |
{% endfor %} | |
{% endif %} | |
{% endwith %} | |
{% if page_obj.has_next %} | |
<a href="?page={{ page_obj.next_page_number }}{{ additional }}" class="btn btn-white"><i class="fa fa-chevron-right"></i></a> | |
{% else %} | |
<button class="btn btn-white" type="button" disabled><i class="fa fa-chevron-right"></i> </button> | |
{% endif %} | |
</div> | |
</div> | |
{% endif %} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment