Fix load_service_components path for sx, market, events

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 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 16:14:26 +00:00
parent 015469e401
commit 03d7b29745
3 changed files with 10 additions and 8 deletions

View File

@@ -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")

View File

@@ -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",

View File

@@ -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")