From 6626fac4520bfb162e7eba8738dd4f3f83792b4e Mon Sep 17 00:00:00 2001 From: hzhang Date: Thu, 20 Mar 2025 18:37:13 +0000 Subject: [PATCH] improve: add setting button to pathnode --- api/tree.py | 19 +++++++------------ db/models/Markdown.py | 4 ++-- db/models/MarkdownSetting.py | 2 +- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/api/tree.py b/api/tree.py index d9b0ab4..b75e243 100644 --- a/api/tree.py +++ b/api/tree.py @@ -15,24 +15,18 @@ tree_bp = Blueprint('tree', __name__, url_prefix='/api/tree') def build_tree(db: Session, parent_id: int = None): path_nodes = db.query(Path).filter(Path.parent_id == parent_id).all() - md_nodes = db.query(Markdown.id, Markdown.title, Markdown.order, Markdown.shortcut).filter(Markdown.path_id == parent_id).all() + md_nodes = db.query(Markdown.id, Markdown.title, Markdown.order, Markdown.shortcut, Markdown.setting_id).filter(Markdown.path_id == parent_id).all() t0 = [ { - "type": "markdown", "id": node.id, "title": node.title, "order": node.order, - "shortcut": node.shortcut + "setting_id": node.setting_id, + "type": "markdown" } for node in md_nodes ] t1 = [ - { - "type": "path", - "id": node.id, - "name": node.name, - "order": node.order, - "children": build_tree(db, node.id) - } for node in path_nodes + {**node.to_dict(), "type": "path", "children": build_tree(db, node.id)} for node in path_nodes ] for node in t1: for child in node["children"]: @@ -47,11 +41,12 @@ def build_tree(db: Session, parent_id: int = None): def get_tree(): with get_db() as session: children = build_tree(session, 1) + root = session.query(Path).get(1) + return jsonify( { + **root.to_dict(), "type": "path", - "id": 1, - "name": "Root", "index": any("title" in child.keys() and child["title"] == "index" for child in children), "children": children } diff --git a/db/models/Markdown.py b/db/models/Markdown.py index 7900acb..df32525 100644 --- a/db/models/Markdown.py +++ b/db/models/Markdown.py @@ -13,7 +13,7 @@ class Markdown(Base): path_id = Column(Integer, ForeignKey('path.id'), nullable=False) order = Column(String(36), default=lambda: str(uuid.uuid4())) shortcut = Column(String(36), default="") - template_id = Column(Integer, ForeignKey("markdown_template.id"), nullable=True) + setting_id = Column(Integer, ForeignKey("markdown_setting.id"), nullable=True) __table_args__ = (UniqueConstraint('path_id', 'title', name="unique_path_id_title"),) def to_dict(self): return { @@ -24,7 +24,7 @@ class Markdown(Base): 'path_id': self.path_id, 'order': self.order, 'shortcut': self.shortcut, - 'template_id': self.template_id, + 'setting_id': self.setting_id, } __payload__ = { 'dev': [ diff --git a/db/models/MarkdownSetting.py b/db/models/MarkdownSetting.py index dbbf3fe..31614d0 100644 --- a/db/models/MarkdownSetting.py +++ b/db/models/MarkdownSetting.py @@ -4,7 +4,7 @@ from db.models import Base class MarkdownSetting(Base): - __tablename__ = 'markdown_settings' + __tablename__ = 'markdown_setting' id = Column(Integer, primary_key=True, autoincrement=True) template_setting_id = Column(Integer, ForeignKey('markdown_template.id'), nullable=True)