aboutsummaryrefslogtreecommitdiffhomepage
path: root/apioforum/forum.py
diff options
context:
space:
mode:
Diffstat (limited to 'apioforum/forum.py')
-rw-r--r--apioforum/forum.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/apioforum/forum.py b/apioforum/forum.py
index ce90853..c0c0ba4 100644
--- a/apioforum/forum.py
+++ b/apioforum/forum.py
@@ -216,16 +216,27 @@ def view_forum(forum,page=1):
LEFT OUTER JOIN threads ON threads.forum=forums.id
WHERE parent = ? AND unlisted = 0
GROUP BY forums.id
- ORDER BY name ASC
+ ORDER BY forums.updated DESC
""",(forum['id'],)).fetchall()
- subforums = []
+ unread_subforums = []
+ read_subforums = []
for s in subforums_rows:
a={}
a.update(s)
if a['updated'] is not None:
a['updated'] = datetime.datetime.fromisoformat(a['updated'])
if has_permission(a['id'],g.user,"p_view_forum",login_required=False):
- subforums.append(a)
+ if not read.is_read('forum', a['id']):
+ unread_subforums.append(a)
+ else:
+ read_subforums.append(a)
+
+ shown_subforums = unread_subforums[:4]
+ if len(shown_subforums) > 0:
+ hidden_subforums = unread_subforums[4:] + read_subforums
+ else:
+ shown_subforums = read_subforums[:1]
+ hidden_subforums = read_subforums[1:]
bureaucrats = db.execute("""
SELECT user FROM role_assignments
@@ -242,7 +253,8 @@ def view_forum(forum,page=1):
return render_template("view_forum.html",
forum=forum,
- subforums=subforums,
+ shown_subforums=shown_subforums,
+ hidden_subforums=hidden_subforums,
threads=threads,
thread_tags=thread_tags,
bureaucrats=bureaucrats,