fix: add post header bar to market pages and show market name
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 36s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 36s
- Add post header row to market/index.html template chain - Fix OOB templates to include post header on HTMX navigation - Show market name instead of static coop_title in header - Restore trailing slash on POST /cart/ route; fix templates to include trailing slash in cart URLs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -25,7 +25,7 @@ def register(url_prefix, title):
|
|||||||
market = getattr(g, "market", None)
|
market = getattr(g, "market", None)
|
||||||
market_id = market.id if market else None
|
market_id = market.id if market else None
|
||||||
return {
|
return {
|
||||||
"coop_title": title,
|
"coop_title": market.name if market else title,
|
||||||
"categories": (await get_nav(g.s, market_id=market_id))["cats"],
|
"categories": (await get_nav(g.s, market_id=market_id))["cats"],
|
||||||
"qs": makeqs_factory()(),
|
"qs": makeqs_factory()(),
|
||||||
"market": market,
|
"market": market,
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ def register():
|
|||||||
from models.market import CartItem
|
from models.market import CartItem
|
||||||
from quart import request, url_for
|
from quart import request, url_for
|
||||||
|
|
||||||
@bp.post("/cart")
|
@bp.post("/cart/")
|
||||||
@clear_cache(tag="browse", tag_scope="user")
|
@clear_cache(tag="browse", tag_scope="user")
|
||||||
async def cart(slug: str):
|
async def cart(slug: str):
|
||||||
# make sure product exists (we *allow* deleted_at != None later if you want)
|
# make sure product exists (we *allow* deleted_at != None later if you want)
|
||||||
|
|||||||
Submodule shared_lib updated: 0c9b8d6aa2...37ceb37b82
@@ -11,9 +11,9 @@
|
|||||||
{% block oobs %}
|
{% block oobs %}
|
||||||
|
|
||||||
{% from '_types/root/_n/macros.html' import oob_header with context %}
|
{% from '_types/root/_n/macros.html' import oob_header with context %}
|
||||||
{{oob_header('root-header-child', 'market-header-child', '_types/market/header/_header.html')}}
|
{{oob_header('post-header-child', 'market-header-child', '_types/market/header/_header.html')}}
|
||||||
|
|
||||||
{% from '_types/root/header/_header.html' import header_row with context %}
|
{% from '_types/post/header/_header.html' import header_row with context %}
|
||||||
{{ header_row(oob=True) }}
|
{{ header_row(oob=True) }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -11,9 +11,9 @@
|
|||||||
{% block oobs %}
|
{% block oobs %}
|
||||||
|
|
||||||
{% from '_types/root/_n/macros.html' import oob_header with context %}
|
{% from '_types/root/_n/macros.html' import oob_header with context %}
|
||||||
{{oob_header('root-header-child', 'market-header-child', '_types/market/header/_header.html')}}
|
{{oob_header('post-header-child', 'market-header-child', '_types/market/header/_header.html')}}
|
||||||
|
|
||||||
{% from '_types/root/header/_header.html' import header_row with context %}
|
{% from '_types/post/header/_header.html' import header_row with context %}
|
||||||
{{ header_row(oob=True) }}
|
{{ header_row(oob=True) }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,11 @@
|
|||||||
|
|
||||||
{% block root_header_child %}
|
{% block root_header_child %}
|
||||||
{% from '_types/root/_n/macros.html' import index_row with context %}
|
{% from '_types/root/_n/macros.html' import index_row with context %}
|
||||||
{% call index_row('market-header-child', '_types/market/header/_header.html') %}
|
{% call index_row('post-header-child', '_types/post/header/_header.html') %}
|
||||||
{% block market_header_child %}
|
{% call index_row('market-header-child', '_types/market/header/_header.html') %}
|
||||||
{% endblock %}
|
{% block market_header_child %}
|
||||||
|
{% endblock %}
|
||||||
|
{% endcall %}
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
{% if not quantity %}
|
{% if not quantity %}
|
||||||
<form
|
<form
|
||||||
action="{{ market_url('/product/' + slug + '/cart') }}"
|
action="{{ market_url('/product/' + slug + '/cart/') }}"
|
||||||
method="post"
|
method="post"
|
||||||
hx-post="{{ market_url('/product/' + slug + '/cart') }}"
|
hx-post="{{ market_url('/product/' + slug + '/cart/') }}"
|
||||||
hx-target="#cart-mini"
|
hx-target="#cart-mini"
|
||||||
hx-swap="outerHTML"
|
hx-swap="outerHTML"
|
||||||
class="rounded flex items-center"
|
class="rounded flex items-center"
|
||||||
@@ -38,9 +38,9 @@
|
|||||||
<div class="rounded flex items-center gap-2">
|
<div class="rounded flex items-center gap-2">
|
||||||
<!-- minus -->
|
<!-- minus -->
|
||||||
<form
|
<form
|
||||||
action="{{ market_url('/product/' + slug + '/cart') }}"
|
action="{{ market_url('/product/' + slug + '/cart/') }}"
|
||||||
method="post"
|
method="post"
|
||||||
hx-post="{{ market_url('/product/' + slug + '/cart') }}"
|
hx-post="{{ market_url('/product/' + slug + '/cart/') }}"
|
||||||
hx-target="#cart-mini"
|
hx-target="#cart-mini"
|
||||||
hx-swap="outerHTML"
|
hx-swap="outerHTML"
|
||||||
>
|
>
|
||||||
@@ -80,9 +80,9 @@
|
|||||||
|
|
||||||
<!-- plus -->
|
<!-- plus -->
|
||||||
<form
|
<form
|
||||||
action="{{ market_url('/product/' + slug + '/cart') }}"
|
action="{{ market_url('/product/' + slug + '/cart/') }}"
|
||||||
method="post"
|
method="post"
|
||||||
hx-post="{{ market_url('/product/' + slug + '/cart') }}"
|
hx-post="{{ market_url('/product/' + slug + '/cart/') }}"
|
||||||
hx-target="#cart-mini"
|
hx-target="#cart-mini"
|
||||||
hx-swap="outerHTML"
|
hx-swap="outerHTML"
|
||||||
>
|
>
|
||||||
@@ -189,9 +189,9 @@
|
|||||||
<div class="flex items-center gap-2 text-xs sm:text-sm text-stone-700">
|
<div class="flex items-center gap-2 text-xs sm:text-sm text-stone-700">
|
||||||
<span class="text-[0.65rem] sm:text-xs uppercase tracking-wide text-stone-500">Quantity</span>
|
<span class="text-[0.65rem] sm:text-xs uppercase tracking-wide text-stone-500">Quantity</span>
|
||||||
<form
|
<form
|
||||||
action="{{ market_url('/product/' + p.slug + '/cart') }}"
|
action="{{ market_url('/product/' + p.slug + '/cart/') }}"
|
||||||
method="post"
|
method="post"
|
||||||
hx-post="{{ market_url('/product/' + p.slug + '/cart') }}"
|
hx-post="{{ market_url('/product/' + p.slug + '/cart/') }}"
|
||||||
hx-target="#cart-mini"
|
hx-target="#cart-mini"
|
||||||
hx-swap="outerHTML"
|
hx-swap="outerHTML"
|
||||||
>
|
>
|
||||||
@@ -212,9 +212,9 @@
|
|||||||
{{ item.quantity }}
|
{{ item.quantity }}
|
||||||
</span>
|
</span>
|
||||||
<form
|
<form
|
||||||
action="{{ market_url('/product/' + p.slug + '/cart') }}"
|
action="{{ market_url('/product/' + p.slug + '/cart/') }}"
|
||||||
method="post"
|
method="post"
|
||||||
hx-post="{{ market_url('/product/' + p.slug + '/cart') }}"
|
hx-post="{{ market_url('/product/' + p.slug + '/cart/') }}"
|
||||||
hx-target="#cart-mini"
|
hx-target="#cart-mini"
|
||||||
hx-swap="outerHTML"
|
hx-swap="outerHTML"
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user