From 89f95a22dc3f060470021f2fc3c13e4914f0871f Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Tue, 29 May 2018 16:52:53 +0100 Subject: [PATCH] Add pagination --- app/templates/packages/list.html | 8 +++++++- app/views/packages/__init__.py | 14 ++++++++++++-- 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 @@

- Found {{ packages | count }} packages. + Found {{ packages_count }} packages.

@@ -31,4 +31,10 @@ {% from "macros/packagegridtile.html" import render_pkggrid %} {{ render_pkggrid(packages) }} + + {% 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):