aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/views/api.py2
-rw-r--r--app/views/packages/__init__.py7
2 files changed, 6 insertions, 3 deletions
diff --git a/app/views/api.py b/app/views/api.py
index c4112b5..f6f7c64 100644
--- a/app/views/api.py
+++ b/app/views/api.py
@@ -24,7 +24,7 @@ from .packages import build_packages_query
@app.route("/api/packages/")
def api_packages_page():
- query = build_packages_query()
+ query, _ = build_packages_query()
pkgs = [package.getAsDictionaryShort(app.config["BASE_URL"]) \
for package in query.all() if package.getDownloadRelease() is not None]
return jsonify(pkgs)
diff --git a/app/views/packages/__init__.py b/app/views/packages/__init__.py
index 0b802af..6ef76ec 100644
--- a/app/views/packages/__init__.py
+++ b/app/views/packages/__init__.py
@@ -47,7 +47,7 @@ def build_packages_query():
if search is not None and search.strip() != "":
query = query.filter(Package.title.ilike('%' + search + '%'))
- return query
+ return query, title
@menu.register_menu(app, ".mods", "Mods", order=11, endpoint_arguments_constructor=lambda: { 'type': 'mod' })
@menu.register_menu(app, ".games", "Games", order=12, endpoint_arguments_constructor=lambda: { 'type': 'game' })
@@ -57,11 +57,14 @@ def packages_page():
if shouldReturnJson():
return redirect(url_for("api_packages_page"))
- query = build_packages_query()
+ query, title = build_packages_query()
page = int(request.args.get("page") or 1)
num = min(42, int(request.args.get("n") or 100))
query = query.paginate(page, num, True)
+ search = request.args.get("q")
+ type_name = request.args.get("type")
+
next_url = url_for("packages_page", type=type_name, q=search, page=query.next_num) \
if query.has_next else None
prev_url = url_for("packages_page", type=type_name, q=search, page=query.prev_num) \