Layout defcomps are now fully self-contained via IO-primitive auto-fetch macros, eliminating Python layout functions that manually threaded context values through SxExpr wrappers. Services converted: - Federation (1 layout): social - Blog (7 layouts): blog, blog-settings, blog-cache, blog-snippets, blog-menu-items, blog-tag-groups, blog-tag-group-edit - SX docs (2 layouts): sx, sx-section - Cart (2 layouts): cart-page, cart-admin + orders/order-detail - Events (9 layouts): calendar-admin, slots, slot, day-admin, entry, entry-admin, ticket-types, ticket-type, markets - Market (2 layouts): market, market-admin New IO primitives added to shared/sx/primitives_io.py: - federation-actor-ctx, cart-page-ctx, request-view-args - events-calendar-ctx, events-day-ctx, events-entry-ctx, events-slot-ctx, events-ticket-type-ctx - market-header-ctx (pre-builds desktop/mobile nav as SxExpr) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
45 lines
1.3 KiB
Plaintext
45 lines
1.3 KiB
Plaintext
;; Cart app defpage declarations.
|
|
;; All data fetching via (service ...) IO primitives, no Python helpers.
|
|
|
|
(defpage cart-overview
|
|
:path "/"
|
|
:auth :public
|
|
:layout :root
|
|
:data (service "cart-page" "overview-data")
|
|
:content (~cart-overview-content
|
|
:page-groups page-groups
|
|
:cart-url-base cart-url-base))
|
|
|
|
(defpage page-cart-view
|
|
:path "/<page_slug>/"
|
|
:auth :public
|
|
:layout :cart-page
|
|
:data (service "cart-page" "page-cart-data")
|
|
:content (~cart-page-cart-content
|
|
:cart-items cart-items
|
|
:cal-entries cal-entries
|
|
:ticket-groups ticket-groups
|
|
:summary (~cart-summary-from-data
|
|
:item-count (get summary "item_count")
|
|
:grand-total (get summary "grand_total")
|
|
:symbol (get summary "symbol")
|
|
:is-logged-in (get summary "is_logged_in")
|
|
:checkout-action (get summary "checkout_action")
|
|
:login-href (get summary "login_href")
|
|
:user-email (get summary "user_email"))))
|
|
|
|
(defpage cart-admin
|
|
:path "/<page_slug>/admin/"
|
|
:auth :admin
|
|
:layout :cart-admin
|
|
:data (service "cart-page" "admin-data")
|
|
:content (~cart-admin-content))
|
|
|
|
(defpage cart-payments
|
|
:path "/<page_slug>/admin/payments/"
|
|
:auth :admin
|
|
:layout (:cart-admin :selected "payments")
|
|
:data (service "cart-page" "payments-admin-data")
|
|
:content (~cart-payments-content
|
|
:page-config page-config))
|