diff --git a/browser/templates/_types/blog/_card.html b/browser/templates/_types/blog/_card.html index f075af1..89ce8e7 100644 --- a/browser/templates/_types/blog/_card.html +++ b/browser/templates/_types/blog/_card.html @@ -69,10 +69,11 @@ {% endif %} - {# Widget-driven card decorations #} - {% for w in widgets.container_cards %} - {% include w.template with context %} - {% endfor %} + {# Card decorations — via fragments #} + {% if card_widgets_html %} + {% set _card_html = card_widgets_html.get(post.id|string, "") %} + {% if _card_html %}{{ _card_html | safe }}{% endif %} + {% endif %} {% include '_types/blog/_card/at_bar.html' %} diff --git a/browser/templates/_types/day/_nav.html b/browser/templates/_types/day/_nav.html index cfb8aca..889e3ce 100644 --- a/browser/templates/_types/day/_nav.html +++ b/browser/templates/_types/day/_nav.html @@ -25,13 +25,9 @@ {% endcall %} -{# Container nav widgets (market links, etc.) #} -{% if container_nav_widgets %} - {% for wdata in container_nav_widgets %} - {% with ctx=wdata.ctx %} - {% include wdata.widget.template with context %} - {% endwith %} - {% endfor %} +{# Container nav (market links, etc.) — via fragments #} +{% if container_nav_html %} + {{ container_nav_html | safe }} {% endif %} {# Admin link #} diff --git a/browser/templates/_types/entry/_nav.html b/browser/templates/_types/entry/_nav.html index c2e772a..e77d573 100644 --- a/browser/templates/_types/entry/_nav.html +++ b/browser/templates/_types/entry/_nav.html @@ -22,12 +22,9 @@ {% endcall %} -{% if container_nav_widgets %} - {% for wdata in container_nav_widgets %} - {% with ctx=wdata.ctx %} - {% include wdata.widget.template with context %} - {% endwith %} - {% endfor %} +{# Container nav (market links, etc.) — via fragments #} +{% if container_nav_html %} + {{ container_nav_html | safe }} {% endif %} {# Admin link #} diff --git a/browser/templates/_types/post/_nav.html b/browser/templates/_types/post/_nav.html index db8cdc4..e4ed92e 100644 --- a/browser/templates/_types/post/_nav.html +++ b/browser/templates/_types/post/_nav.html @@ -1,8 +1,42 @@ {% import 'macros/links.html' as links %} - {# Widget-driven container nav — entries, calendars, markets #} - {% if container_nav_widgets %} + {# Container nav — entries, calendars, markets (via fragments) #} + {% if container_nav_html %}
{% endif %} diff --git a/browser/templates/_types/post/admin/_nav_entries_oob.html b/browser/templates/_types/post/admin/_nav_entries_oob.html index cc6d3b8..eecc3d5 100644 --- a/browser/templates/_types/post/admin/_nav_entries_oob.html +++ b/browser/templates/_types/post/admin/_nav_entries_oob.html @@ -6,7 +6,73 @@ {% else %} {# Empty placeholder to remove nav items when all are disassociated/deleted #} diff --git a/services/widgets/calendar_widgets.py b/services/widgets/calendar_widgets.py index 4c0939f..ee35c3d 100644 --- a/services/widgets/calendar_widgets.py +++ b/services/widgets/calendar_widgets.py @@ -1,44 +1,15 @@ -"""Calendar-domain widgets: entries nav, calendar links, card entries, account pages.""" +"""Calendar-domain widgets: account pages (tickets & bookings). + +Container nav and card widgets have been replaced by fragments +(events app serves them at /internal/fragments/). +""" from __future__ import annotations -from shared.contracts.widgets import NavWidget, CardWidget, AccountPageWidget +from shared.contracts.widgets import AccountPageWidget from shared.services.widget_registry import widgets from shared.services.registry import services -# -- container_nav: associated entries ---------------------------------------- - -async def _nav_entries_context( - session, *, container_type, container_id, post_slug, page=1, **kw, -): - entries, has_more = await services.calendar.associated_entries( - session, container_type, container_id, page, - ) - return { - "entries": entries, - "has_more": has_more, - "page": page, - "post_slug": post_slug, - } - - -# -- container_nav: calendar links ------------------------------------------- - -async def _nav_calendars_context( - session, *, container_type, container_id, post_slug, **kw, -): - calendars = await services.calendar.calendars_for_container( - session, container_type, container_id, - ) - return {"calendars": calendars, "post_slug": post_slug} - - -# -- container_card: confirmed entries for post listings ---------------------- - -async def _card_entries_batch(session, post_ids): - return await services.calendar.confirmed_entries_for_posts(session, post_ids) - - # -- account pages: tickets & bookings --------------------------------------- async def _tickets_context(session, *, user_id, **kw): @@ -54,25 +25,6 @@ async def _bookings_context(session, *, user_id, **kw): # -- registration entry point ------------------------------------------------ def register_calendar_widgets() -> None: - widgets.add_container_nav(NavWidget( - domain="calendar", - order=10, - context_fn=_nav_entries_context, - template="_widgets/container_nav/calendar_entries.html", - )) - widgets.add_container_nav(NavWidget( - domain="calendar_links", - order=20, - context_fn=_nav_calendars_context, - template="_widgets/container_nav/calendar_links.html", - )) - widgets.add_container_card(CardWidget( - domain="calendar", - order=10, - batch_fn=_card_entries_batch, - context_key="associated_entries", - template="_widgets/container_card/calendar_entries.html", - )) widgets.add_account_page(AccountPageWidget( domain="calendar", slug="tickets", diff --git a/services/widgets/market_widgets.py b/services/widgets/market_widgets.py index 8138391..480d42c 100644 --- a/services/widgets/market_widgets.py +++ b/services/widgets/market_widgets.py @@ -1,24 +1,10 @@ -"""Market-domain widgets: marketplace links on container pages.""" +"""Market-domain widgets. + +Container nav widgets have been replaced by fragments +(market app serves them at /internal/fragments/). +""" from __future__ import annotations -from shared.contracts.widgets import NavWidget -from shared.services.widget_registry import widgets -from shared.services.registry import services - - -async def _nav_markets_context( - session, *, container_type, container_id, post_slug, **kw, -): - markets = await services.market.marketplaces_for_container( - session, container_type, container_id, - ) - return {"markets": markets, "post_slug": post_slug} - def register_market_widgets() -> None: - widgets.add_container_nav(NavWidget( - domain="market", - order=30, - context_fn=_nav_markets_context, - template="_widgets/container_nav/market_links.html", - )) + pass