feat: add page_cart_url helper and update shared cart templates for Phase 4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,7 @@ from suma_browser.app.csrf import generate_csrf_token
|
||||
from suma_browser.app.authz import has_access
|
||||
from suma_browser.app.filters import register as register_filters
|
||||
|
||||
from .urls import coop_url, market_url, cart_url, events_url, login_url
|
||||
from .urls import coop_url, market_url, cart_url, events_url, login_url, page_cart_url
|
||||
|
||||
|
||||
def setup_jinja(app: Quart) -> None:
|
||||
@@ -93,6 +93,7 @@ def setup_jinja(app: Quart) -> None:
|
||||
app.jinja_env.globals["cart_url"] = cart_url
|
||||
app.jinja_env.globals["events_url"] = events_url
|
||||
app.jinja_env.globals["login_url"] = login_url
|
||||
app.jinja_env.globals["page_cart_url"] = page_cart_url
|
||||
|
||||
# register jinja filters
|
||||
register_filters(app)
|
||||
|
||||
@@ -37,10 +37,10 @@ def events_url(path: str = "/") -> str:
|
||||
return app_url("events", path)
|
||||
|
||||
|
||||
def market_url_for(post_slug: str, market_slug: str, path: str = "/") -> str:
|
||||
def page_cart_url(page_slug: str, path: str = "/") -> str:
|
||||
if not path.startswith("/"):
|
||||
path = "/" + path
|
||||
return market_url(f"/{post_slug}/{market_slug}{path}")
|
||||
return cart_url(f"/{page_slug}{path}")
|
||||
|
||||
|
||||
def login_url(next_url: str = "") -> str:
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
{% if g.user %}
|
||||
<form
|
||||
method="post"
|
||||
action="{{ url_for('cart.checkout')|host }}"
|
||||
action="{{ url_for('page_cart.page_checkout')|host if page_post is defined and page_post else url_for('cart_global.checkout')|host }}"
|
||||
class="w-full"
|
||||
>
|
||||
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
<div>
|
||||
<a
|
||||
href="{{ url_for('cart.view_cart')|host }}"
|
||||
href="{{ cart_url('/') }}"
|
||||
class="inline-flex items-center px-3 py-2 text-xs sm:text-sm rounded-full border border-stone-300 bg-white hover:bg-stone-50 transition"
|
||||
>
|
||||
<i class="fa fa-shopping-cart mr-2" aria-hidden="true"></i>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% import 'macros/links.html' as links %}
|
||||
{% macro header_row(oob=False) %}
|
||||
{% call links.menu_row(id='cart-row', oob=oob) %}
|
||||
{% call links.link(url_for('cart.view_cart'), hx_select_search ) %}
|
||||
{% call links.link(cart_url('/'), hx_select_search ) %}
|
||||
<i class="fa fa-shopping-cart"></i>
|
||||
<h2 class="text-xl font-bold">cart</h2>
|
||||
{% endcall %}
|
||||
|
||||
Reference in New Issue
Block a user