Migrate all apps to defpage declarative page routes
Replace Python GET page handlers with declarative defpage definitions in .sx files across all 8 apps (sx docs, orders, account, market, cart, federation, events, blog). Each app now has sxc/pages/ with setup functions, layout registrations, page helpers, and .sx defpage declarations. Core infrastructure: add g I/O primitive, PageDef support for auth/layout/ data/content/filter/aside/menu slots, post_author auth level, and custom layout registration. Remove ~1400 lines of render_*_page/render_*_oob boilerplate. Update all endpoint references in routes, sx_components, and templates to defpage_* naming. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -78,6 +78,10 @@ def create_app() -> "Quart":
|
||||
app.jinja_loader,
|
||||
])
|
||||
|
||||
# --- defpage setup ---
|
||||
from sxc.pages import setup_events_pages
|
||||
setup_events_pages()
|
||||
|
||||
# All events: / — global view across all pages
|
||||
app.register_blueprint(
|
||||
register_all_events(),
|
||||
@@ -169,11 +173,16 @@ def create_app() -> "Quart":
|
||||
|
||||
# Tickets blueprint — user-facing ticket views and QR codes
|
||||
from bp.tickets.routes import register as register_tickets
|
||||
app.register_blueprint(register_tickets())
|
||||
tickets_bp = register_tickets()
|
||||
from shared.sx.pages import mount_pages
|
||||
mount_pages(tickets_bp, "events", names=["my-tickets", "ticket-detail"])
|
||||
app.register_blueprint(tickets_bp)
|
||||
|
||||
# Ticket admin — check-in interface (admin only)
|
||||
from bp.ticket_admin.routes import register as register_ticket_admin
|
||||
app.register_blueprint(register_ticket_admin())
|
||||
ticket_admin_bp = register_ticket_admin()
|
||||
mount_pages(ticket_admin_bp, "events", names=["ticket-admin"])
|
||||
app.register_blueprint(ticket_admin_bp)
|
||||
|
||||
# --- oEmbed endpoint ---
|
||||
@app.get("/oembed")
|
||||
|
||||
Reference in New Issue
Block a user