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 %}