From 395d40c7f735c8196f5715f0fece80bc267bb6f9 Mon Sep 17 00:00:00 2001 From: giles Date: Tue, 24 Feb 2026 13:33:31 +0000 Subject: [PATCH] Phase 4: add container-nav fragment handler for market links Market app serves marketplace links as a fragment at /internal/fragments/container-nav for consumption by blog and events. Co-Authored-By: Claude Opus 4.6 --- bp/fragments/routes.py | 22 ++++++++++++++++++- shared | 2 +- .../fragments/container_nav_markets.html | 9 ++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 templates/fragments/container_nav_markets.html diff --git a/bp/fragments/routes.py b/bp/fragments/routes.py index 0ee8243..bd2bdde 100644 --- a/bp/fragments/routes.py +++ b/bp/fragments/routes.py @@ -6,9 +6,10 @@ by other coop apps via the fragment client. from __future__ import annotations -from quart import Blueprint, Response, request +from quart import Blueprint, Response, g, render_template, request from shared.infrastructure.fragments import FRAGMENT_HEADER +from shared.services.registry import services def register(): @@ -29,6 +30,25 @@ def register(): html = await handler() return Response(html, status=200, content_type="text/html") + # --- container-nav fragment: market links -------------------------------- + + async def _container_nav_handler(): + container_type = request.args.get("container_type", "page") + container_id = int(request.args.get("container_id", 0)) + post_slug = request.args.get("post_slug", "") + + markets = await services.market.marketplaces_for_container( + g.s, container_type, container_id, + ) + if not markets: + return "" + return await render_template( + "fragments/container_nav_markets.html", + markets=markets, post_slug=post_slug, + ) + + _handlers["container-nav"] = _container_nav_handler + bp._fragment_handlers = _handlers return bp diff --git a/shared b/shared index ab674ad..d2e07e0 160000 --- a/shared +++ b/shared @@ -1 +1 @@ -Subproject commit ab674ada31f09edb1a4333e520d482e13e0c90da +Subproject commit d2e07e047eb161dc7cffbc215b728d5556dae82b diff --git a/templates/fragments/container_nav_markets.html b/templates/fragments/container_nav_markets.html new file mode 100644 index 0000000..3c8814d --- /dev/null +++ b/templates/fragments/container_nav_markets.html @@ -0,0 +1,9 @@ +{# Market links nav — served as fragment from market app #} +{% for m in markets %} + + +
{{m.name}}
+
+{% endfor %}