From fa9fdb70b3c7b32f457a71859ad2647860166d24 Mon Sep 17 00:00:00 2001 From: schneefux Date: Sun, 19 Jun 2016 14:13:29 +0200 Subject: expose sort options --- app.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'app.py') diff --git a/app.py b/app.py index 8944a49..52cb4fa 100644 --- a/app.py +++ b/app.py @@ -302,10 +302,13 @@ class DBProxy(object): ret_jokes.append(ret_joke) def sorter(j): - if sortby == 'rank': - return (j['score']+1)/pow(j['freshness']+1, 2) + if sortby == 'unread': + return -j['freshness'] if j['upvoted'] or j['downvoted'] else j['freshness'] + if sortby == 'age': + return 1-j['freshness'] if sortby == 'score': return j['score'] + return (j['score']+1)/pow(j['freshness']+1, 2) # 'rank' or invalid ret_jokes = sorted(ret_jokes, key=sorter, reverse=True) return ret_jokes @@ -444,12 +447,13 @@ def root(): @app.route('/page/') def page(num): search = request.args.get('filter') + sortmethod = str(request.args.get('sort')) or 'rank' if search: # TODO find a cleaner way search = re.sub(r"^" + Markup.tagmark, "#", search) search = search.split(Markup.spacemark) perpage = abs(int(request.args.get('perpage') or 10)) - jokes = db().get_jokes(user=userid(), search=search) + jokes = db().get_jokes(user=userid(), search=search, sortby=sortmethod) user = {'loggedin': False} if 'userlogin' in session: user['loggedin'] = True @@ -459,6 +463,7 @@ def page(num): 'index.html', currentpage=num, query=str(request.query_string, 'utf-8'), + selected_sort=sortmethod, tags=search, perpage=perpage, jokes=jokes, -- cgit v1.3.1