diff --git a/shared/templates/styleguide/2.3.x/pagination.html b/shared/templates/styleguide/2.3.x/pagination.html index c6da34ae77e583161f097b7ea8e87cb1477bdde3..3839395367520003c0a47ee468298ebf9eb69894 100644 --- a/shared/templates/styleguide/2.3.x/pagination.html +++ b/shared/templates/styleguide/2.3.x/pagination.html @@ -1,4 +1,4 @@ -{% load wagtailcore_tags %} +{% load wagtailcore_tags shared_tags %} <div class="pagination-container"> <nav class="pagination space-x-1"> @@ -6,15 +6,15 @@ {% if paginator.has_previous %} <a href="{% pageurl page %}?page={{ paginator.previous_page_number }}{{ extra_query }}" class="btn btn--icon btn--grey-125 btn--hoveractive btn--to-black btn--condensed btn--inverted-icon"> <div class="btn__body-wrap"> - <div class="btn__body ">předchozí</div> + <div class="btn__body ">Předchozí</div> <div class="btn__icon "> <i class="ico--chevron-left"></i> </div> </div> </a> {% endif %} - - {% for i in paginator.paginator.page_range %} + {% get_pagination_range paginator.number paginator.paginator.page_range as pagination_range %} + {% for i in pagination_range %} {% if i == paginator.number %} <a href="{% pageurl page %}?page={{ i }}{{ extra_query }}" class="btn btn--grey-500 btn--condensed hidden md:inline-block"> {% else %} @@ -27,7 +27,7 @@ {% if paginator.has_next %} <a href="{% pageurl page %}?page={{ paginator.next_page_number }}{{ extra_query }}" class="btn btn--icon btn--grey-125 btn--hoveractive btn--to-black btn--condensed"> <div class="btn__body-wrap"> - <div class="btn__body ">další</div> + <div class="btn__body ">Další</div> <div class="btn__icon "> <i class="ico--chevron-right"></i> </div> diff --git a/shared/templatetags/shared_tags.py b/shared/templatetags/shared_tags.py new file mode 100644 index 0000000000000000000000000000000000000000..a96e7f1b1414cda9abe21d0f0b8efe2c3bcf60ae --- /dev/null +++ b/shared/templatetags/shared_tags.py @@ -0,0 +1,20 @@ +from django import template + +register = template.Library() + + +@register.simple_tag +def get_pagination_range(current_page: int, all_page_range: range): + surrounding_count = 2 + if current_page > surrounding_count: + if current_page + surrounding_count <= all_page_range[-1]: + return range( + current_page - surrounding_count, current_page + surrounding_count + 1 + ) + else: + return range(current_page - surrounding_count, all_page_range[-1] + 1) + else: + if current_page + surrounding_count <= all_page_range[-1]: + return range(all_page_range[0], current_page + surrounding_count + 1) + else: + return range(all_page_range[0], all_page_range[-1] + 1)