diff options
Diffstat (limited to 'apioforum/forum.py')
| -rw-r--r-- | apioforum/forum.py | 29 | 
1 files changed, 27 insertions, 2 deletions
| diff --git a/apioforum/forum.py b/apioforum/forum.py index 09d3166..e379350 100644 --- a/apioforum/forum.py +++ b/apioforum/forum.py @@ -11,14 +11,23 @@ from .mdrender import render  from sqlite3 import OperationalError -from sqlite3 import OperationalError -  bp = Blueprint("forum", __name__, url_prefix="/")  @bp.route("/")  def not_actual_index():      return redirect("/1") +def forum_path(forum_id): +    db = get_db() +    i = forum_id +    path = [] +    while i != None: +        forum = db.execute("SELECT * FROM forums WHERE id = ?",(i,)).fetchone() +        path.append(forum) +        i = forum['parent'] +    path.reverse() +    return path +  @bp.route("/<int:forum_id>")  def view_forum(forum_id):      db = get_db() @@ -46,8 +55,24 @@ def view_forum(forum_id):              """SELECT * FROM posts WHERE thread = ?              ORDER BY created DESC;              """,(thread['id'],)).fetchone() + +    subforums = db.execute(""" +            SELECT * FROM forums WHERE parent = ? ORDER BY name ASC +            """,(forum_id,)).fetchall() +     +    forum_last_activity = {} +    for subforum in subforums: +        result = db.execute( +                """SELECT updated FROM threads +                WHERE forum = ? +                ORDER BY updated DESC; +                """,(subforum['id'],)).fetchone() +        forum_last_activity[subforum['id']] = result[0] if result != None else None +      return render_template("view_forum.html",              forum=forum, +            subforums=subforums, +            forum_last_activity=forum_last_activity,              threads=threads,              thread_tags=thread_tags,              preview_post=preview_post | 
