Add global url_set_query Jinja template function
This commit is contained in:
parent
820c968f73
commit
f437850a50
|
@ -80,17 +80,12 @@ def list_all():
|
||||||
qb.show_discarded = True
|
qb.show_discarded = True
|
||||||
topics = qb.buildTopicQuery().all()
|
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()
|
tags = Tag.query.all()
|
||||||
return render_template("packages/list.html", \
|
return render_template("packages/list.html", \
|
||||||
title=title, packages=query.items, topics=topics, \
|
title=title, packages=query.items, topics=topics, \
|
||||||
query=search, tags=tags, type=type_name, \
|
query=search, tags=tags, type=type_name, \
|
||||||
authors=authors, packages_count=query.total, \
|
authors=authors, packages_count=query.total, \
|
||||||
pagination=query, url_builder=url_builder)
|
pagination=query)
|
||||||
|
|
||||||
|
|
||||||
def getReleases(package):
|
def getReleases(package):
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
from . import app
|
from . import app
|
||||||
from .utils import abs_url_for
|
from .utils import abs_url_for, url_set_query
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
@app.context_processor
|
@app.context_processor
|
||||||
def inject_debug():
|
def inject_debug():
|
||||||
return dict(debug=app.debug)
|
return dict(debug=app.debug)
|
||||||
|
|
||||||
|
|
||||||
@app.context_processor
|
@app.context_processor
|
||||||
def inject_functions():
|
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()
|
@app.template_filter()
|
||||||
def throw(err):
|
def throw(err):
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{% macro render_pagination(pagination, url_builder) %}
|
{% macro render_pagination(pagination, url_set_query) %}
|
||||||
<ul class="pagination mt-4">
|
<ul class="pagination mt-4">
|
||||||
{% set prev_url = url_builder(pagination.prev_num) if pagination.has_prev %}
|
{% set prev_url = url_set_query(page=pagination.prev_num) if pagination.has_prev %}
|
||||||
{% set next_url = url_builder(pagination.next_num) if pagination.has_next %}
|
{% set next_url = url_set_query(page=pagination.next_num) if pagination.has_next %}
|
||||||
|
|
||||||
<li class="page-item {% if not prev_url %}disabled{% endif %}">
|
<li class="page-item {% if not prev_url %}disabled{% endif %}">
|
||||||
<a class="page-link" {% if prev_url %}href="{{ prev_url }}"{% endif %}>«</a>
|
<a class="page-link" {% if prev_url %}href="{{ prev_url }}"{% endif %}>«</a>
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
{% if page %}
|
{% if page %}
|
||||||
<li class="page-item {% if page == pagination.page %}active{% endif %}">
|
<li class="page-item {% if page == pagination.page %}active{% endif %}">
|
||||||
<a class="page-link"
|
<a class="page-link"
|
||||||
href="{{ url_builder(page) }}">
|
href="{{ url_set_query(page=page) }}">
|
||||||
{{ page }}
|
{{ page }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
|
|
||||||
{% from "macros/pagination.html" import render_pagination %}
|
{% from "macros/pagination.html" import render_pagination %}
|
||||||
{{ render_pagination(pagination, url_builder) }}
|
{{ render_pagination(pagination, url_set_query) }}
|
||||||
|
|
||||||
|
|
||||||
{% if topics %}
|
{% if topics %}
|
||||||
|
|
|
@ -23,6 +23,8 @@ from . import app
|
||||||
import random, string, os, imghdr
|
import random, string, os, imghdr
|
||||||
from urllib.parse import urljoin
|
from urllib.parse import urljoin
|
||||||
|
|
||||||
|
# These are given to Jinja in template_filters.py
|
||||||
|
|
||||||
def abs_url_for(path, **kwargs):
|
def abs_url_for(path, **kwargs):
|
||||||
scheme = "https" if app.config["BASE_URL"][:5] == "https" else "http"
|
scheme = "https" if app.config["BASE_URL"][:5] == "https" else "http"
|
||||||
return url_for(path, _external=True, _scheme=scheme, **kwargs)
|
return url_for(path, _external=True, _scheme=scheme, **kwargs)
|
||||||
|
@ -30,6 +32,11 @@ def abs_url_for(path, **kwargs):
|
||||||
def abs_url(path):
|
def abs_url(path):
|
||||||
return urljoin(app.config["BASE_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):
|
def get_int_or_abort(v, default=None):
|
||||||
if v is None:
|
if v is None:
|
||||||
return default
|
return default
|
||||||
|
|
Loading…
Reference in New Issue