From e5b02f1c4484a70c0373e2688b2aa976cb6211e6 Mon Sep 17 00:00:00 2001 From: giles Date: Tue, 24 Feb 2026 11:49:20 +0000 Subject: [PATCH] Restore menu_items fallback, fix app slug URLs in nav fragment Keep get_navigation_tree() as fallback when nav-tree fragment fetch fails. Also map all app slugs (market, events, federation, account) to their proper cross-app URLs in the nav fragment template. Co-Authored-By: Claude Opus 4.6 --- app.py | 4 ++++ shared | 2 +- templates/fragments/nav_tree.html | 8 +++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app.py b/app.py index 7824d71..a3e14f1 100644 --- a/app.py +++ b/app.py @@ -27,12 +27,16 @@ async def blog_context() -> dict: - cart_mini_html / auth_menu_html / nav_tree_html: pre-fetched fragments """ from shared.infrastructure.context import base_context + from shared.services.navigation import get_navigation_tree from shared.services.registry import services from shared.infrastructure.cart_identity import current_cart_identity from shared.infrastructure.fragments import fetch_fragments ctx = await base_context() + # Fallback for _nav.html when nav-tree fragment fetch fails + ctx["menu_items"] = await get_navigation_tree(g.s) + # Cart data via service (replaces cross-app HTTP API) ident = current_cart_identity() summary = await services.cart.cart_summary( diff --git a/shared b/shared index 7e650a0..ab674ad 160000 --- a/shared +++ b/shared @@ -1 +1 @@ -Subproject commit 7e650a0ee3a61d56525cc9e298ed0c4194e780a4 +Subproject commit ab674ada31f09edb1a4333e520d482e13e0c90da diff --git a/templates/fragments/nav_tree.html b/templates/fragments/nav_tree.html index 4818289..df41dc8 100644 --- a/templates/fragments/nav_tree.html +++ b/templates/fragments/nav_tree.html @@ -2,7 +2,13 @@ Uses frag_app_name / frag_first_seg instead of request.path / app_name so the consuming app's context is reflected correctly. No hx-boost — cross-app nav links are full page navigations. #} -{% set _app_slugs = {'cart': cart_url('/')} %} +{% set _app_slugs = { + 'cart': cart_url('/'), + 'market': market_url('/'), + 'events': events_url('/'), + 'federation': federation_url('/'), + 'account': account_url('/'), +} %}