Add ticket-to-cart integration
Reserved tickets now flow through the cart and checkout pipeline: - TicketDTO gains price, entry_id, order_id, calendar_container_id - CartSummaryDTO gains ticket_count, ticket_total - 6 new CalendarService methods for ticket lifecycle - cart_summary includes tickets; login adoption migrates tickets - New _ticket_items.html template for checkout return page Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -93,6 +93,23 @@ class SqlCartService:
|
||||
calendar_count = len(cal_entries)
|
||||
calendar_total = sum(Decimal(str(e.cost or 0)) for e in cal_entries if e.cost is not None)
|
||||
|
||||
# --- tickets ---
|
||||
if page_post_id is not None:
|
||||
tickets = await services.calendar.tickets_for_page(
|
||||
session, page_post_id,
|
||||
user_id=user_id,
|
||||
session_id=session_id,
|
||||
)
|
||||
else:
|
||||
tickets = await services.calendar.pending_tickets(
|
||||
session,
|
||||
user_id=user_id,
|
||||
session_id=session_id,
|
||||
)
|
||||
|
||||
ticket_count = len(tickets)
|
||||
ticket_total = sum(Decimal(str(t.price or 0)) for t in tickets)
|
||||
|
||||
items = [_item_to_dto(ci) for ci in cart_items]
|
||||
|
||||
return CartSummaryDTO(
|
||||
@@ -101,6 +118,8 @@ class SqlCartService:
|
||||
calendar_count=calendar_count,
|
||||
calendar_total=calendar_total,
|
||||
items=items,
|
||||
ticket_count=ticket_count,
|
||||
ticket_total=ticket_total,
|
||||
)
|
||||
|
||||
async def cart_items(
|
||||
|
||||
Reference in New Issue
Block a user