diff --git a/app/routers/dashboard.py b/app/routers/dashboard.py
index 789683b..c0d0a6c 100644
--- a/app/routers/dashboard.py
+++ b/app/routers/dashboard.py
@@ -1554,15 +1554,16 @@ async def sidebar_workspace_tree(request: Request):
'No pages yet'
)
- # Render the tree using the same Jinja2 macro as base.html
+ # Render the tree using the extracted macro
env = Environment(loader=FileSystemLoader("app/templates"))
template = env.from_string(
- "{% from 'base.html' import render_workspace_tree %}"
+ "{% from '_workspace_tree_macro.html' import render_workspace_tree %}"
"{{ render_workspace_tree(pages) }}"
)
html = template.render(pages=pages)
return HTMLResponse(html)
- except (ValueError, Exception):
+ except (ValueError, Exception) as e:
+ logger.error(f"sidebar_workspace_tree failed: {e}", exc_info=True)
return HTMLResponse(
'
'
diff --git a/app/templates/_workspace_tree_macro.html b/app/templates/_workspace_tree_macro.html
new file mode 100644
index 0000000..59e81dc
--- /dev/null
+++ b/app/templates/_workspace_tree_macro.html
@@ -0,0 +1,44 @@
+{% macro render_workspace_tree(pages, depth=0) %}
+ {% for page in pages %}
+
+ {% if page.children %}
+
+
+ {{ render_workspace_tree(page.children, depth + 1) }}
+
+
+ {% endif %}
+ {% endfor %}
+{% endmacro %}
diff --git a/app/templates/base.html b/app/templates/base.html
index 5c1d9f1..0e23428 100644
--- a/app/templates/base.html
+++ b/app/templates/base.html
@@ -128,50 +128,7 @@
-{% macro render_workspace_tree(pages, depth=0) %}
- {% for page in pages %}
-
- {% if page.children %}
-
-
- {{ render_workspace_tree(page.children, depth + 1) }}
-
-
- {% endif %}
- {% endfor %}
-{% endmacro %}
+{% from '_workspace_tree_macro.html' import render_workspace_tree %}