Eliminate Python s-expression string building across account, orders, federation, and cart services. Visual rendering logic now lives entirely in .sx defcomp components; Python files contain only data serialization, header/layout wiring, and thin wrappers that call defcomps. Phase 0: Shared DRY extraction — auth/orders header defcomps, format-decimal/ pluralize/escape/route-prefix primitives. Phase 1: Account — dashboard, newsletters, login/device/check-email content. Phase 2: Orders — order list, detail, filter, checkout return assembled defcomps. Phase 3: Federation — social nav, post cards, timeline, search, actors, notifications, compose, profile assembled defcomps. Phase 4: Cart — overview, page cart items/calendar/tickets/summary, admin, payments assembled defcomps; orders rendering reuses Phase 2 shared defcomps. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
32 lines
967 B
Plaintext
32 lines
967 B
Plaintext
;; Account app — declarative page definitions
|
|
|
|
;; ---------------------------------------------------------------------------
|
|
;; Account dashboard
|
|
;; ---------------------------------------------------------------------------
|
|
|
|
(defpage account-dashboard
|
|
:path "/"
|
|
:auth :login
|
|
:layout :account
|
|
:content (~account-dashboard-content))
|
|
|
|
;; ---------------------------------------------------------------------------
|
|
;; Newsletters
|
|
;; ---------------------------------------------------------------------------
|
|
|
|
(defpage newsletters
|
|
:path "/newsletters/"
|
|
:auth :login
|
|
:layout :account
|
|
:content (newsletters-content))
|
|
|
|
;; ---------------------------------------------------------------------------
|
|
;; Fragment pages (tickets, bookings, etc. from events service)
|
|
;; ---------------------------------------------------------------------------
|
|
|
|
(defpage fragment-page
|
|
:path "/<slug>/"
|
|
:auth :login
|
|
:layout :account
|
|
:content (fragment-content slug))
|