diff options
Diffstat (limited to 'apioforum/forum.py')
-rw-r--r-- | apioforum/forum.py | 20 |
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, |