From 03d7b297458a0ddb8a719ba9d962254bd984697f Mon Sep 17 00:00:00 2001 From: giles Date: Wed, 4 Mar 2026 16:14:26 +0000 Subject: [PATCH] Fix load_service_components path for sx, market, events MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The load_service_components call used dirname twice from sxc/pages/__init__.py, yielding {service}/sxc/ instead of {service}/. This meant {service}/sx/*.sx files (layouts, calendar components, etc.) were never loaded into the component env. - sx: ~sx-layout-full not found → Unknown component on client - events: ~events-calendar-grid not found → Unknown component - market: also fix url_for endpoint for defpage_market_admin (mounted on app, not blueprint — no prefix needed) Co-Authored-By: Claude Opus 4.6 --- events/sxc/pages/__init__.py | 5 +++-- market/sxc/pages/__init__.py | 7 ++++--- sx/sxc/pages/__init__.py | 6 +++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/events/sxc/pages/__init__.py b/events/sxc/pages/__init__.py index 8b85f33..5c38499 100644 --- a/events/sxc/pages/__init__.py +++ b/events/sxc/pages/__init__.py @@ -26,8 +26,9 @@ def _load_events_page_files() -> None: import os from shared.sx.pages import load_page_dir from shared.sx.jinja_bridge import load_service_components - base = os.path.dirname(os.path.dirname(__file__)) - load_service_components(base, service_name="events") + sxc_dir = os.path.dirname(os.path.dirname(__file__)) # events/sxc/ + service_root = os.path.dirname(sxc_dir) # events/ + load_service_components(service_root, service_name="events") load_page_dir(os.path.dirname(__file__), "events") diff --git a/market/sxc/pages/__init__.py b/market/sxc/pages/__init__.py index 20f3666..22ae39d 100644 --- a/market/sxc/pages/__init__.py +++ b/market/sxc/pages/__init__.py @@ -26,8 +26,9 @@ def _load_market_page_files() -> None: import os from shared.sx.pages import load_page_dir from shared.sx.jinja_bridge import load_service_components - base = os.path.dirname(os.path.dirname(__file__)) - load_service_components(base, service_name="market") + sxc_dir = os.path.dirname(os.path.dirname(__file__)) # market/sxc/ + service_root = os.path.dirname(sxc_dir) # market/ + load_service_components(service_root, service_name="market") load_page_dir(os.path.dirname(__file__), "market") @@ -163,7 +164,7 @@ async def _desktop_category_nav_sx(ctx: dict, categories: dict, qs: str, admin_sx = "" if rights and rights.get("admin"): - admin_href = prefix + url_for("market.admin.defpage_market_admin") + admin_href = prefix + url_for("defpage_market_admin") admin_sx = await render_to_sx("market-admin-link", href=admin_href, hx_select=hx_select) return await render_to_sx("market-desktop-category-nav", diff --git a/sx/sxc/pages/__init__.py b/sx/sxc/pages/__init__.py index 10f6256..4c8b2e0 100644 --- a/sx/sxc/pages/__init__.py +++ b/sx/sxc/pages/__init__.py @@ -22,9 +22,9 @@ def _load_sx_page_files() -> None: """Load defpage definitions from sx/sxc/pages/*.sx.""" from shared.sx.pages import load_page_dir from shared.sx.jinja_bridge import load_service_components - base = os.path.dirname(os.path.dirname(__file__)) - load_service_components(base, service_name="sx") - _sxc_dir = os.path.dirname(os.path.dirname(__file__)) + _sxc_dir = os.path.dirname(os.path.dirname(__file__)) # sx/sxc/ + service_root = os.path.dirname(_sxc_dir) # sx/ + load_service_components(service_root, service_name="sx") load_sx_dir(_sxc_dir) watch_sx_dir(_sxc_dir) load_page_dir(os.path.dirname(__file__), "sx")