aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorcitrons <citrons>2021-06-23 08:47:09 +0000
committercitrons <citrons>2021-06-23 08:47:09 +0000
commit2cba6d4d88266aa3626d4606f2a17460c7437270 (patch)
tree19634de811b0a18d195384571c01b699211accf3
parent47f78d820a3b31929c146a9952136c4ca9f39ce2 (diff)
make breadcrumb work
-rw-r--r--apioforum/__init__.py2
-rw-r--r--apioforum/db.py2
-rw-r--r--apioforum/forum.py13
-rw-r--r--apioforum/templates/common.html27
-rw-r--r--apioforum/templates/view_thread.html11
5 files changed, 43 insertions, 12 deletions
diff --git a/apioforum/__init__.py b/apioforum/__init__.py
index 9d49f36..30dd813 100644
--- a/apioforum/__init__.py
+++ b/apioforum/__init__.py
@@ -47,6 +47,8 @@ def create_app():
p += "?" + request.query_string.decode("utf-8")
return dict(path_for_next=p)
+ app.jinja_env.globals.update(forum_path=forum.forum_path)
+
from .mdrender import render
@app.template_filter('md')
def md_render(s):
diff --git a/apioforum/db.py b/apioforum/db.py
index 76aacc2..84f268d 100644
--- a/apioforum/db.py
+++ b/apioforum/db.py
@@ -91,7 +91,7 @@ CREATE TABLE forums (
parent INTEGER REFERENCES forums(id),
description TEXT
);
-INSERT INTO forums (name,parent,description) values ('root',null,'the default root forum');
+INSERT INTO forums (name,parent,description) values ('apioforum',null,'the default root forum');
PRAGMA foreign_keys = off;
BEGIN TRANSACTION;
diff --git a/apioforum/forum.py b/apioforum/forum.py
index 09d3166..dadc8b3 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()
diff --git a/apioforum/templates/common.html b/apioforum/templates/common.html
index 9301a49..b0bf713 100644
--- a/apioforum/templates/common.html
+++ b/apioforum/templates/common.html
@@ -39,3 +39,30 @@
{% macro tag(the_tag) -%}
<span class="tag" style="color: {{the_tag.text_colour}}; background-color: {{the_tag.bg_colour}}">{{the_tag.name}}</span>
{%- endmacro %}
+
+{% macro breadcrumb() %}
+<nav aria-label="Breadcrumb">
+<ol class="breadcrumbs">
+ {{- caller() -}}
+</ol>
+</nav>
+{% endmacro %}
+
+{% macro forum_bc_entries(forum_id) -%}
+ {%- for f in forum_path(forum_id) -%}
+ <li><a href="{{url_for('forum.view_forum',forum_id=f.id)}}">{{ f.name }}</a></li>
+ {%- endfor %}
+{%- endmacro %}
+
+{% macro forum_breadcrumb(forum) %}
+ {%- call breadcrumb() %}
+ {{ forum_bc_entries(forum.id) }}
+ {% endcall -%}
+{% endmacro %}
+
+{% macro thread_breadcrumb(thread) %}
+ {%- call breadcrumb() %}
+ {{ forum_bc_entries(thread.forum) }}
+ <li>{{ thread.title }}</li>
+ {% endcall -%}
+{% endmacro %}
diff --git a/apioforum/templates/view_thread.html b/apioforum/templates/view_thread.html
index ded2d52..dd41d87 100644
--- a/apioforum/templates/view_thread.html
+++ b/apioforum/templates/view_thread.html
@@ -1,15 +1,8 @@
-{% from 'common.html' import disp_post,tag %}
+{% from 'common.html' import disp_post,tag,thread_breadcrumb %}
{% extends 'base.html' %}
{% block header %}
<h1>{%block title %}{{thread.title}}{% endblock %}</h1>
-<nav aria-label="Breadcrumb">
-<ol class="breadcrumbs">
- <li><a href="{{url_for('index')}}">apioforum</a></li>
- <li><a href="#">the</a></li>
- <li>the</li>
-</ol>
-</nav>
-
+{{ thread_breadcrumb(thread) }}
{% endblock %}
{%block content%}