aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-03-21 20:02:53 +0000
committerrubenwardy <rw@rubenwardy.com>2018-03-21 20:02:53 +0000
commit4e870bd641338f661ef4d317edead6509aad22db (patch)
treece582e7da164e37e179544e1e139e716669c4062
parent8a8b0e505bab6ea4d631e7c63dad9260ff7e8936 (diff)
downloadcheatdb-4e870bd641338f661ef4d317edead6509aad22db.tar.xz
Add basic search to package list
-rw-r--r--app/templates/packages.html5
-rw-r--r--app/views/packages.py18
2 files changed, 17 insertions, 6 deletions
diff --git a/app/templates/packages.html b/app/templates/packages.html
index 6ac01d8..1c40cfa 100644
--- a/app/templates/packages.html
+++ b/app/templates/packages.html
@@ -5,6 +5,11 @@
{% endblock %}
{% block content %}
+ <form method="get" action="">
+ <input type="text" name="q" value="{{ query or ''}}" />
+ <input type="submit" value="Search" />
+ </form>
+
<ul>
{% for p in packages %}
<li><a href="{{ p.getDetailsURL() }}">
diff --git a/app/views/packages.py b/app/views/packages.py
index a294ee8..c3de421 100644
--- a/app/views/packages.py
+++ b/app/views/packages.py
@@ -12,23 +12,29 @@ from wtforms.validators import *
# TODO: the following could be made into one route, except I'm not sure how
# to do the menu
+def doPackageList(type):
+ packagesQ = Package.query.filter_by(type=type, approved=True)
+
+ query = request.args.get("q")
+ if query is not None:
+ packagesQ = packagesQ.filter(Package.title.contains(query))
+
+ return render_template('packages.html', title=type.value + "s", packages=packagesQ.all(), query=query)
+
@app.route('/mods/')
@menu.register_menu(app, '.mods', 'Mods', order=10)
def mods_page():
- packages = Package.query.filter_by(type=PackageType.MOD, approved=True).all()
- return render_template('packages.html', title="Mods", packages=packages)
+ return doPackageList(PackageType.MOD)
@app.route('/games/')
@menu.register_menu(app, '.games', 'Games', order=11)
def games_page():
- packages = Package.query.filter_by(type=PackageType.GAME, approved=True).all()
- return render_template('packages.html', title="Games", packages=packages)
+ return doPackageList(PackageType.GAME)
@app.route('/texturepacks/')
@menu.register_menu(app, '.txp', 'Texture Packs', order=12)
def txp_page():
- packages = Package.query.filter_by(type=PackageType.TXP, approved=True).all()
- return render_template('packages.html', title="Texture Packs", packages=packages)
+ return doPackageList(PackageType.TXP)
def canSeeWorkQueue():
return Permission.APPROVE_NEW.check(current_user) or \