|
@@ -385,13 +385,20 @@
|
|
|
|
|
|
{# Generates a some kind of pagination for the posts in topic in the forum view. #}
|
|
|
{%- macro topic_pages(topic_obj, per_page=10) -%}
|
|
|
-{% set topic_pages = (topic_obj.post_count / per_page)|round|int %}
|
|
|
-{%- if topic_pages > 1 -%}
|
|
|
-[
|
|
|
- {%- for page in range(0, topic_pages) -%}
|
|
|
- <a href="{{ url_for('forum.view_topic', topic_id=topic_obj.id) }}?page={{ page+1 }}">{{ page+1 }}</a>{% if not loop.last %} {% endif %}
|
|
|
+{% set pages = (topic_obj.post_count / per_page)|round(method='ceil')|int %}
|
|
|
+{% set max_pages = 4 %}
|
|
|
+{% set page_count = pages if pages <= max_pages else max_pages %}
|
|
|
+
|
|
|
+{%- if pages > 0 -%}
|
|
|
+ {%- for page in range(1, page_count+1) -%}
|
|
|
+ {% if pages > max_pages and page == max_pages-1 %}
|
|
|
+ <a href="{{ url_for('forum.view_topic', topic_id=topic_obj.id) }}?page={{ page }}">{{ page }}</a> ...
|
|
|
+ {% elif pages > max_pages and loop.last %}
|
|
|
+ <a href="{{ url_for('forum.view_topic', topic_id=topic_obj.id) }}?page={{ pages }}">{{ pages }}</a>
|
|
|
+ {% else %}
|
|
|
+ <a href="{{ url_for('forum.view_topic', topic_id=topic_obj.id) }}?page={{ page }}">{{ page }}</a>
|
|
|
+ {% endif %}
|
|
|
{%- endfor -%}
|
|
|
-]
|
|
|
{%- endif -%}
|
|
|
{%- endmacro -%}
|
|
|
|