diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2016-06-19 14:13:29 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2016-06-19 14:13:29 +0200 |
| commit | fa9fdb70b3c7b32f457a71859ad2647860166d24 (patch) | |
| tree | 0591008637bcd3198783f88db608c1cbfcdada09 /app.py | |
| parent | 60e3ab8f5edd4513581d674e2b18acdf2d32af10 (diff) | |
| download | jokevote-fa9fdb70b3c7b32f457a71859ad2647860166d24.tar.gz jokevote-fa9fdb70b3c7b32f457a71859ad2647860166d24.zip | |
expose sort options
Diffstat (limited to 'app.py')
| -rw-r--r-- | app.py | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -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/<int:num>') 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, |
