diff options
author | rubenwardy <rw@rubenwardy.com> | 2018-03-21 20:02:53 +0000 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2018-03-21 20:02:53 +0000 |
commit | 4e870bd641338f661ef4d317edead6509aad22db (patch) | |
tree | ce582e7da164e37e179544e1e139e716669c4062 | |
parent | 8a8b0e505bab6ea4d631e7c63dad9260ff7e8936 (diff) | |
download | cheatdb-4e870bd641338f661ef4d317edead6509aad22db.tar.xz |
Add basic search to package list
-rw-r--r-- | app/templates/packages.html | 5 | ||||
-rw-r--r-- | app/views/packages.py | 18 |
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 \ |