Add request argument to paginate_jinja and paginate_htmx

This commit is contained in:
2026-03-28 23:13:42 +01:00
parent 71bfdf68b7
commit a213bc058d
7 changed files with 27 additions and 38 deletions

View File

@@ -10,7 +10,7 @@
{% extends "core/base.jinja" %} {% extends "core/base.jinja" %}
{% endif %} {% endif %}
{% from "core/macros.jinja" import paginate_htmx with context %} {% from "core/macros.jinja" import paginate_htmx %}
{% block title %} {% block title %}
{% trans %}File moderation{% endtrans %} {% trans %}File moderation{% endtrans %}
@@ -48,6 +48,6 @@
>{% trans %}Delete{% endtrans %}</button></p> >{% trans %}Delete{% endtrans %}</button></p>
</div> </div>
{% endfor %} {% endfor %}
{{ paginate_htmx(page_obj, paginator) }} {{ paginate_htmx(request, page_obj, paginator) }}
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -118,26 +118,21 @@
</nav> </nav>
{% endmacro %} {% endmacro %}
{% macro paginate_jinja(current_page, paginator) %} {% macro paginate_jinja(request, current_page, paginator) %}
{# Add pagination buttons for pages without Alpine. {# Add pagination buttons for pages without Alpine.
This must be coupled with a view that handles pagination This must be coupled with a view that handles pagination
with the Django Paginator object. with the Django Paginator object.
Warnings:
This macro must be imported with context :
```jinja
{% from "core/macros.jinja" import paginate_jinja with context %}
```
Parameters: Parameters:
request (django.http.request.HttpRequest): the current django request
current_page (django.core.paginator.Page): the current page object current_page (django.core.paginator.Page): the current page object
paginator (django.core.paginator.Paginator): the paginator object paginator (django.core.paginator.Paginator): the paginator object
#} #}
{{ paginate_server_side(current_page, paginator, False) }} {{ paginate_server_side(request, current_page, paginator, False) }}
{% endmacro %} {% endmacro %}
{% macro paginate_htmx(current_page, paginator) %} {% macro paginate_htmx(request, current_page, paginator) %}
{# Add pagination buttons for pages without Alpine but supporting fragments. {# Add pagination buttons for pages without Alpine but supporting fragments.
This must be coupled with a view that handles pagination This must be coupled with a view that handles pagination
@@ -145,31 +140,26 @@
The replaced fragment will be #content so make sure you are calling this macro inside your content block. The replaced fragment will be #content so make sure you are calling this macro inside your content block.
Warnings:
This macro must be imported with context :
```jinja
{% from "core/macros.jinja" import paginate_jinja with context %}
```
Parameters: Parameters:
request (django.http.request.HttpRequest): the current django request
current_page (django.core.paginator.Page): the current page object current_page (django.core.paginator.Page): the current page object
paginator (django.core.paginator.Paginator): the paginator object paginator (django.core.paginator.Paginator): the paginator object
#} #}
{{ paginate_server_side(current_page, paginator, True) }} {{ paginate_server_side(request, current_page, paginator, True) }}
{% endmacro %} {% endmacro %}
{% macro paginate_server_side(current_page, paginator, use_htmx) %} {% macro paginate_server_side(request, current_page, paginator, use_htmx) %}
<nav class="pagination"> <nav class="pagination">
{% if current_page.has_previous() %} {% if current_page.has_previous() %}
<a <a
{% if use_htmx -%} {% if use_htmx -%}
hx-get="?{{ querystring(page=current_page.previous_page_number()) }}" hx-get="?{{ querystring(request, page=current_page.previous_page_number()) }}"
hx-swap="innerHTML" hx-swap="innerHTML"
hx-target="#content" hx-target="#content"
hx-push-url="true" hx-push-url="true"
hx-trigger="click, keyup[key=='ArrowLeft'] from:body" hx-trigger="click, keyup[key=='ArrowLeft'] from:body"
{%- else -%} {%- else -%}
href="?{{ querystring(page=current_page.previous_page_number()) }}" href="?{{ querystring(request, page=current_page.previous_page_number()) }}"
{%- endif -%} {%- endif -%}
> >
<button> <button>
@@ -187,12 +177,12 @@
{% else %} {% else %}
<a <a
{% if use_htmx -%} {% if use_htmx -%}
hx-get="?{{ querystring(page=i) }}" hx-get="?{{ querystring(request, page=i) }}"
hx-swap="innerHTML" hx-swap="innerHTML"
hx-target="#content" hx-target="#content"
hx-push-url="true" hx-push-url="true"
{%- else -%} {%- else -%}
href="?{{ querystring(page=i) }}" href="?{{ querystring(request, page=i) }}"
{%- endif -%} {%- endif -%}
> >
<button>{{ i }}</button> <button>{{ i }}</button>
@@ -202,13 +192,13 @@
{% if current_page.has_next() %} {% if current_page.has_next() %}
<a <a
{% if use_htmx -%} {% if use_htmx -%}
hx-get="?{{querystring(page=current_page.next_page_number())}}" hx-get="?{{querystring(request, page=current_page.next_page_number())}}"
hx-swap="innerHTML" hx-swap="innerHTML"
hx-target="#content" hx-target="#content"
hx-push-url="true" hx-push-url="true"
hx-trigger="click, keyup[key=='ArrowRight'] from:body" hx-trigger="click, keyup[key=='ArrowRight'] from:body"
{%- else -%} {%- else -%}
href="?{{querystring(page=current_page.next_page_number())}}" href="?{{querystring(request, page=current_page.next_page_number())}}"
{%- endif -%} {%- endif -%}
><button> ><button>
<i class="fa fa-caret-right"></i> <i class="fa fa-caret-right"></i>
@@ -259,7 +249,7 @@
{% endmacro %} {% endmacro %}
{% macro querystring() %} {% macro querystring(request) %}
{%- set qs = request.GET.copy() -%} {%- set qs = request.GET.copy() -%}
{%- do qs.update(kwargs) -%} {%- do qs.update(kwargs) -%}
{{- qs | urlencode -}} {{- qs | urlencode -}}

View File

@@ -1,6 +1,5 @@
{% extends "core/base.jinja" %} {% extends "core/base.jinja" %}
{% from 'core/macros.jinja' import user_profile_link %} {% from 'core/macros.jinja' import user_profile_link, paginate_jinja %}
{% from 'core/macros.jinja' import paginate_jinja with context %}
{% block title %} {% block title %}
{% trans %}Cash register summary list{% endtrans %} {% trans %}Cash register summary list{% endtrans %}
@@ -58,7 +57,7 @@
</table> </table>
<br> <br>
{% if is_paginated %} {% if is_paginated %}
{{ paginate_jinja(page_obj, paginator) }} {{ paginate_jinja(request, page_obj, paginator) }}
{% endif %} {% endif %}
{% else %} {% else %}
{% trans %}There is no cash register summary in this website.{% endtrans %} {% trans %}There is no cash register summary in this website.{% endtrans %}

View File

@@ -1,5 +1,5 @@
{% extends "core/base.jinja" %} {% extends "core/base.jinja" %}
{% from "core/macros.jinja" import paginate_jinja with context %} {% from "core/macros.jinja" import paginate_jinja %}
{% block title %} {% block title %}
{%- trans %}Reloads list{% endtrans %} -- {{ counter.name }} {%- trans %}Reloads list{% endtrans %} -- {{ counter.name }}
@@ -28,7 +28,7 @@
{%- endfor %} {%- endfor %}
</table> </table>
{% if is_paginated %} {% if is_paginated %}
{{ paginate_jinja(page_obj, paginator) }} {{ paginate_jinja(request, page_obj, paginator) }}
{% endif %} {% endif %}
{%- endblock %} {%- endblock %}

View File

@@ -1,5 +1,5 @@
{% extends "core/base.jinja" %} {% extends "core/base.jinja" %}
{% from "core/macros.jinja" import paginate_jinja with context %} {% from "core/macros.jinja" import paginate_jinja %}
{% block title %} {% block title %}
{%- trans %}Election list{% endtrans %} {%- trans %}Election list{% endtrans %}
@@ -46,7 +46,7 @@
</section> </section>
{%- endfor %} {%- endfor %}
{% if is_paginated %} {% if is_paginated %}
{{ paginate_jinja(page_obj, paginator) }} {{ paginate_jinja(request, page_obj, paginator) }}
{% endif %} {% endif %}
{%- endblock %} {%- endblock %}

View File

@@ -1,7 +1,7 @@
{% extends "core/base.jinja" %} {% extends "core/base.jinja" %}
{% from 'core/macros.jinja' import user_profile_link %} {% from 'core/macros.jinja' import user_profile_link %}
{% from 'forum/macros.jinja' import display_message, display_breadcrumb, display_search_bar %} {% from 'forum/macros.jinja' import display_message, display_breadcrumb, display_search_bar %}
{% from 'core/macros.jinja' import paginate_jinja with context %} {% from 'core/macros.jinja' import paginate_jinja %}
{% block title %} {% block title %}
{{ topic }} {{ topic }}
@@ -27,7 +27,7 @@
</p> </p>
{{ display_search_bar(request) }} {{ display_search_bar(request) }}
{{ paginate_jinja(msgs, msgs.paginator) }} {{ paginate_jinja(request, msgs, msgs.paginator) }}
<main class="message-list"> <main class="message-list">
{% for m in msgs %} {% for m in msgs %}
@@ -45,7 +45,7 @@
<p><a class="ib button" href="{{ url('forum:new_message', topic_id=topic.id) }}">{% trans %}Reply{% endtrans %}</a></p> <p><a class="ib button" href="{{ url('forum:new_message', topic_id=topic.id) }}">{% trans %}Reply{% endtrans %}</a></p>
{% if is_paginated %} {% if is_paginated %}
{{ paginate_jinja(msgs, msgs.paginator) }} {{ paginate_jinja(request, msgs, msgs.paginator) }}
{% endif %} {% endif %}
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -1,5 +1,5 @@
{% extends "core/base.jinja" %} {% extends "core/base.jinja" %}
{% from "core/macros.jinja" import paginate_jinja with context %} {% from "core/macros.jinja" import paginate_jinja %}
{% block title %} {% block title %}
{% trans %}Operation logs{% endtrans %} {% trans %}Operation logs{% endtrans %}
@@ -29,6 +29,6 @@
<br> <br>
{% if is_paginated %} {% if is_paginated %}
{{ paginate_jinja(page_obj, paginator) }} {{ paginate_jinja(request, page_obj, paginator) }}
{% endif %} {% endif %}
{% endblock content %} {% endblock content %}