aboutsummaryrefslogtreecommitdiffhomepage
path: root/apioforum/forum.py
diff options
context:
space:
mode:
Diffstat (limited to 'apioforum/forum.py')
-rw-r--r--apioforum/forum.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/apioforum/forum.py b/apioforum/forum.py
index 305cb51..bf9610d 100644
--- a/apioforum/forum.py
+++ b/apioforum/forum.py
@@ -96,8 +96,16 @@ def view_forum(forum,page=1):
if page < 1:
abort(400)
db = get_db()
+
+ sortby = request.args.get("sortby","ad")
+ try:
+ sortby_dir = {'d':'DESC','a':'ASC'}[sortby[1]]
+ sortby_by = {'a':'threads.updated','c':'threads.created'}[sortby[0]]
+ except KeyError:
+ return redirect(url_for('forum.view_forum',forum_id=forum_id))
+
threads = db.execute(
- """SELECT
+ f"""SELECT
threads.id, threads.title, threads.creator, threads.created,
threads.updated, threads.poll, number_of_posts.num_replies,
most_recent_posts.created as mrp_created,
@@ -109,7 +117,7 @@ def view_forum(forum,page=1):
INNER JOIN most_recent_posts ON most_recent_posts.thread = threads.id
INNER JOIN number_of_posts ON number_of_posts.thread = threads.id
WHERE threads.forum = ?
- ORDER BY threads.updated DESC
+ ORDER BY {sortby_by} {sortby_dir}
LIMIT ? OFFSET ?;
""",(
forum['id'],
@@ -190,6 +198,7 @@ def view_forum(forum,page=1):
avail_tags=avail_tags,
max_pageno=max_pageno,
page=page,
+ current_sortby=sortby
)
@forum_route("create_thread",methods=("GET","POST"))