Fetch nav-tree fragment from blog, drop local menu_items query
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m2s

Navigation is now rendered by blog as an HTML fragment. This app
fetches it with its own app_name and path for correct highlighting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
giles
2026-02-24 11:39:39 +00:00
parent 95af55da39
commit 1602b14c3c
2 changed files with 8 additions and 5 deletions

11
app.py
View File

@@ -3,7 +3,7 @@ from __future__ import annotations
import path_setup # noqa: F401 # adds shared/ to sys.path import path_setup # noqa: F401 # adds shared/ to sys.path
from pathlib import Path from pathlib import Path
from quart import g, abort from quart import g, abort, request
from jinja2 import FileSystemLoader, ChoiceLoader from jinja2 import FileSystemLoader, ChoiceLoader
from shared.infrastructure.factory import create_base_app from shared.infrastructure.factory import create_base_app
@@ -15,17 +15,20 @@ async def events_context() -> dict:
""" """
Events app context processor. Events app context processor.
- menu_items: via shared.services.navigation - nav_tree_html: fetched from blog as fragment
- cart_count/cart_total: via cart service (shared DB) - cart_count/cart_total: via cart service (shared DB)
""" """
from shared.infrastructure.context import base_context from shared.infrastructure.context import base_context
from shared.services.navigation import get_navigation_tree
from shared.services.registry import services from shared.services.registry import services
from shared.infrastructure.cart_identity import current_cart_identity from shared.infrastructure.cart_identity import current_cart_identity
from shared.infrastructure.fragments import fetch_fragment
ctx = await base_context() ctx = await base_context()
ctx["menu_items"] = await get_navigation_tree(g.s) ctx["nav_tree_html"] = await fetch_fragment(
"blog", "nav-tree",
params={"app_name": "events", "path": request.path},
)
# Cart data via service (replaces cross-app HTTP API) # Cart data via service (replaces cross-app HTTP API)
ident = current_cart_identity() ident = current_cart_identity()

2
shared

Submodule shared updated: 0d40dfaeca...7e650a0ee3