diff --git a/bp/page/routes.py b/bp/page/routes.py index 8f49367..cbcee8d 100644 --- a/bp/page/routes.py +++ b/bp/page/routes.py @@ -9,7 +9,7 @@ Routes: """ from __future__ import annotations -from quart import Blueprint, g, request, render_template, make_response +from quart import Blueprint, g, request, render_template, render_template_string, make_response from shared.browser.app.utils.htmx import is_htmx_request from shared.infrastructure.cart_identity import current_cart_identity @@ -81,7 +81,7 @@ def register() -> Blueprint: @bp.post("/tickets/adjust") async def adjust_ticket(): - """Adjust ticket quantity and refresh the page.""" + """Adjust ticket quantity, return updated widget + OOB cart-mini.""" ident = current_cart_identity() form = await request.form entry_id = int(form.get("entry_id", 0)) @@ -96,8 +96,33 @@ def register() -> Blueprint: ticket_type_id=ticket_type_id, ) - resp = await make_response("", 200) - resp.headers["HX-Refresh"] = "true" - return resp + # Get updated ticket count for this entry + tickets = await services.calendar.pending_tickets( + g.s, user_id=ident["user_id"], session_id=ident["session_id"], + ) + qty = sum(1 for t in tickets if t.entry_id == entry_id) + + # Load entry DTO for the widget template + entry = await services.calendar.entry_by_id(g.s, entry_id) + + # Updated cart count for OOB mini-cart + summary = await services.cart.cart_summary( + g.s, user_id=ident["user_id"], session_id=ident["session_id"], + ) + cart_count = summary.count + summary.calendar_count + summary.ticket_count + + # Render widget + OOB cart-mini + widget_html = await render_template( + "_types/page_summary/_ticket_widget.html", + entry=entry, + qty=qty, + ticket_url=f"/{g.post_slug}/tickets/adjust", + ) + mini_html = await render_template_string( + '{% from "_types/cart/_mini.html" import mini with context %}' + '{{ mini(oob="true") }}', + cart_count=cart_count, + ) + return await make_response(widget_html + mini_html, 200) return bp diff --git a/templates/_types/page_summary/_card.html b/templates/_types/page_summary/_card.html index 3d9b76c..dfee007 100644 --- a/templates/_types/page_summary/_card.html +++ b/templates/_types/page_summary/_card.html @@ -31,63 +31,7 @@