aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/blueprints/packages/packages.py7
-rw-r--r--app/template_filters.py5
-rw-r--r--app/templates/macros/pagination.html8
-rw-r--r--app/templates/packages/list.html2
-rw-r--r--app/utils.py7
5 files changed, 15 insertions, 14 deletions
diff --git a/app/blueprints/packages/packages.py b/app/blueprints/packages/packages.py
index ed1518d..53bd3b0 100644
--- a/app/blueprints/packages/packages.py
+++ b/app/blueprints/packages/packages.py
@@ -80,17 +80,12 @@ def list_all():
qb.show_discarded = True
topics = qb.buildTopicQuery().all()
- def url_builder(page):
- args = dict(request.args)
- args["page"] = page
- return url_for("packages.list_all", **args)
-
tags = Tag.query.all()
return render_template("packages/list.html", \
title=title, packages=query.items, topics=topics, \
query=search, tags=tags, type=type_name, \
authors=authors, packages_count=query.total, \
- pagination=query, url_builder=url_builder)
+ pagination=query)
def getReleases(package):
diff --git a/app/template_filters.py b/app/template_filters.py
index 7d21c09..14a10c6 100644
--- a/app/template_filters.py
+++ b/app/template_filters.py
@@ -1,15 +1,14 @@
from . import app
-from .utils import abs_url_for
+from .utils import abs_url_for, url_set_query
from urllib.parse import urlparse
@app.context_processor
def inject_debug():
return dict(debug=app.debug)
-
@app.context_processor
def inject_functions():
- return dict(abs_url_for=abs_url_for)
+ return dict(abs_url_for=abs_url_for, url_set_query=url_set_query)
@app.template_filter()
def throw(err):
diff --git a/app/templates/macros/pagination.html b/app/templates/macros/pagination.html
index 2ea0eb2..5e1cbdd 100644
--- a/app/templates/macros/pagination.html
+++ b/app/templates/macros/pagination.html
@@ -1,7 +1,7 @@
-{% macro render_pagination(pagination, url_builder) %}
+{% macro render_pagination(pagination, url_set_query) %}
<ul class="pagination mt-4">
- {% set prev_url = url_builder(pagination.prev_num) if pagination.has_prev %}
- {% set next_url = url_builder(pagination.next_num) if pagination.has_next %}
+ {% set prev_url = url_set_query(page=pagination.prev_num) if pagination.has_prev %}
+ {% set next_url = url_set_query(page=pagination.next_num) if pagination.has_next %}
<li class="page-item {% if not prev_url %}disabled{% endif %}">
<a class="page-link" {% if prev_url %}href="{{ prev_url }}"{% endif %}>&laquo;</a>
@@ -11,7 +11,7 @@
{% if page %}
<li class="page-item {% if page == pagination.page %}active{% endif %}">
<a class="page-link"
- href="{{ url_builder(page) }}">
+ href="{{ url_set_query(page=page) }}">
{{ page }}
</a>
</li>
diff --git a/app/templates/packages/list.html b/app/templates/packages/list.html
index 8f3a595..da0d80c 100644
--- a/app/templates/packages/list.html
+++ b/app/templates/packages/list.html
@@ -25,7 +25,7 @@
{% from "macros/pagination.html" import render_pagination %}
- {{ render_pagination(pagination, url_builder) }}
+ {{ render_pagination(pagination, url_set_query) }}
{% if topics %}
diff --git a/app/utils.py b/app/utils.py
index 5960fa6..cc338b4 100644
--- a/app/utils.py
+++ b/app/utils.py
@@ -23,6 +23,8 @@ from . import app
import random, string, os, imghdr
from urllib.parse import urljoin
+# These are given to Jinja in template_filters.py
+
def abs_url_for(path, **kwargs):
scheme = "https" if app.config["BASE_URL"][:5] == "https" else "http"
return url_for(path, _external=True, _scheme=scheme, **kwargs)
@@ -30,6 +32,11 @@ def abs_url_for(path, **kwargs):
def abs_url(path):
return urljoin(app.config["BASE_URL"], path)
+def url_set_query(**kwargs):
+ args = dict(request.args)
+ args.update(kwargs)
+ return url_for(request.endpoint, **args)
+
def get_int_or_abort(v, default=None):
if v is None:
return default