aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/templates/packages/list.html8
-rw-r--r--app/views/packages/__init__.py14
2 files changed, 19 insertions, 3 deletions
diff --git a/app/templates/packages/list.html b/app/templates/packages/list.html
index 5e596fa..0ce5c90 100644
--- a/app/templates/packages/list.html
+++ b/app/templates/packages/list.html
@@ -11,7 +11,7 @@
<input type="submit" value="Search" />
<p>
- Found {{ packages | count }} packages.
+ Found {{ packages_count }} packages.
</p>
</form>
@@ -31,4 +31,10 @@
{% from "macros/packagegridtile.html" import render_pkggrid %}
{{ render_pkggrid(packages) }}
+
+ <ul class="buttonset linedbuttonset">
+ {% if prev_url %}<li><a href="{{ prev_url }}">Previous</a></li>{% endif %}
+ <li>{{ page }} / {{ page_max }}</li>
+ {% if next_url %}<li><a href="{{ next_url }}">Next</a></li> {% endif %}
+ </ul>
{% endblock %}
diff --git a/app/views/packages/__init__.py b/app/views/packages/__init__.py
index 30b1f90..8d201ce 100644
--- a/app/views/packages/__init__.py
+++ b/app/views/packages/__init__.py
@@ -58,9 +58,19 @@ def packages_page():
for package in query.all() if package.getDownloadRelease() is not None]
return jsonify(pkgs)
else:
+ page = int(request.args.get("page") or 1)
+ num = min(42, int(request.args.get("n") or 100))
+ query = query.paginate(page, num, True)
+
+ next_url = url_for("packages_page", type=type.toName(), q=search, page=query.next_num) \
+ if query.has_next else None
+ prev_url = url_for("packages_page", type=type.toName(), q=search, page=query.prev_num) \
+ if query.has_prev else None
+
tags = Tag.query.all()
- return render_template("packages/list.html", title=title, packages=query.all(), \
- query=search, tags=tags, type=None if type is None else type.toName())
+ return render_template("packages/list.html", title=title, packages=query.items, \
+ query=search, tags=tags, type=None if type is None else type.toName(), \
+ next_url=next_url, prev_url=prev_url, page=page, page_max=query.pages, packages_count=query.total)
def getReleases(package):