From 6b9dd1f83890f0b0ee819c7e7f2498a039f88c14 Mon Sep 17 00:00:00 2001 From: Mathis Dedial Date: Fri, 2 Mar 2018 22:38:56 +0100 Subject: [PATCH] Implement sorting by newest and top rated --- app/static/images/burger.png | Bin 0 -> 863 bytes app/templates/vote.html | 23 +++++++++++++++++++---- app/views.py | 15 ++++++++++++--- 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 app/static/images/burger.png diff --git a/app/static/images/burger.png b/app/static/images/burger.png new file mode 100644 index 0000000000000000000000000000000000000000..44bddabf77ac207a379174c9dadfdf1d5571ba4a GIT binary patch literal 863 zcmV-l1EBngP)Sg700004b3#c}2nYxW zd8&*d3^WX?};^38A~(1kAk9Ju)G&|#L$mP5DkeH%&$h@DR5rPzWC7P z@?tMXUC=_hE1F}#i{J>_yjFQPKz|!2z-LNyB>Tm+>s@ezDuwhN+lNrtgq^GhU8ANU zT(dNhox1j}zyg@d=T3uP12X>~+9R__;M46>g(VY(?s(Wi1Y33oE+CB6^5T|IUl<;@eb#n#q!3LB z*kSyQ?SV)v8H$eH>d4o&A2bvj#8R~HZ$8JUP0^7;ljC!-f8b@!<MMlrVsQPYxdbYA^Gp4&Z?4EH~}_4BJ&HJeXA3h4ESR}|y;_Dj>> z0?h1B46yW>ynF_D9!cQI?8WkNfoJyRo(RDggdYH%(Of=V z1U9vbtI-?{(q7BsGD9tY1u?Ivx1u~LGy)!IooF@MSES^V5d9wVW`hK^UN}G%kzfWp zzW@UPYBqzYd*NYjA?kFmk6It-1o&;xQWpuToq4rwao1|?sH(L914t(YFk5(h@|5eTZ+RYd>F>

Burger Gallery


+ + +

{% for burger in burger_list %}
- -

- {{ loop.index }}. -

+ + {% if sort == 'top' %} +

+ {{ loop.index }}. +

+ {% else %} + Burger + {% endif %}
diff --git a/app/views.py b/app/views.py index a620644..c3b0496 100644 --- a/app/views.py +++ b/app/views.py @@ -14,6 +14,14 @@ def index(): ''' Front page. Shows a list of all burgers ''' + + # Sort + sort = request.args.get('sort') + if sort == 'top': + order_by = 'vote_count DESC, timestamp' + else: + order_by = 'timestamp DESC' + # Fetch list of burgers with corresponding vote info # Could probably also be done with SQLAlchemy but too lazy to look up how querystring = text('SELECT burger.id AS id, name, description, burger.nethz AS nethz, timestamp, ' @@ -22,20 +30,21 @@ def index(): 'LEFT JOIN vote AS vote_1 ON vote_1.burger_id=burger.id ' 'LEFT JOIN vote AS vote_2 ON vote_2.burger_id=burger.id AND vote_2.nethz= :nethz ' 'GROUP BY burger.id ' - 'ORDER BY vote_count DESC, timestamp') + 'ORDER BY {}'.format(order_by)) # Display, which burgers have already been liked if 'user' in session: burger_list = db.engine.execute(querystring, nethz=session['user']).fetchall() else: burger_list = db.engine.execute(querystring, nethz='').fetchall() - + return render_template('vote.html', burger_list=burger_list, bread=BREAD, patty=PATTY, toppings=TOPPINGS, - side=SIDE) + side=SIDE, + sort=sort) @app.route('/vote', methods=['POST']) -- GitLab