Commit Graph

9 Commits

Author SHA1 Message Date
giles
526d4f6e1b Use coop_url for auth links in shared templates
url_for('auth.account') and url_for('auth.newsletters') only work in
the blog app. Other apps (cart) that render these shared templates
don't have an auth blueprint. Use coop_url() so links always resolve
to the blog subdomain regardless of which app renders the template.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 19:18:28 +00:00
giles
97bd6162c5 Fix market nav link: point to coop.rose-ash.com/market/ not market subdomain
The market menu item in the top bar should link to the blog page at
coop_url('/market/'), not to market_url('/') which goes to the market
subdomain. Reverts the incorrect 'market' addition to _app_slugs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 18:48:24 +00:00
giles
d805af0764 Add page_config support to get_checkout for per-page SumUp credentials
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 18:37:55 +00:00
giles
3aa1aadd0b Add market_product_url helper for correct product URLs
market_url('/product/...') was missing the /<page_slug>/<market_slug>/
prefix required by the market app's route structure. New helper
market_product_url() resolves the prefix from request context
(g.post_slug/g.market_slug in market app, g.page_slug + market_place
in cart app).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 18:19:36 +00:00
giles
a858e33ca3 Add page_config support to SumUp create_checkout
Accept optional page_config parameter to use per-page
SumUp merchant code and API key instead of global config.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 17:51:35 +00:00
giles
4d00ba3dbe Fix doubled URLs when |host filter receives absolute URLs
_join_url_parts() only checked the first segment for a scheme, so
passing an already-absolute URL (e.g. from cart_url()) through the
|host filter would join route_prefix() + absolute URL, producing
"https://host/https://host/path/".

Now detects schemes in later segments and resets the base.

Also add missing 'market' entry to _nav.html _app_slugs to match
_nav_oob.html — without it the market menu item fell through to
coop_url('/market/') instead of market_url('/').

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 11:45:35 +00:00
giles
d1621b8e70 Use cart_url/page_cart_url for checkout action instead of url_for
The checkout form action used url_for('cart_global.checkout') which
only resolves inside the cart app. Replace with cart_url() and
page_cart_url() Jinja globals that work across all apps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:22:22 +00:00
giles
2c4ab9e3c8 Add glue layer support: MenuNode templates, factory registration, migration
- Templates: item.post.X → item.X (MenuNode has label/slug/feature_image directly)
- factory.py: add glue.models to import loop + register_glue_handlers() at startup
- alembic env.py: add glue.models to import loop
- New migration: container_relations + menu_nodes tables with backfill from existing data

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:37:35 +00:00
giles
ef806f8fbb feat: extract shared infrastructure from shared_lib
Phase 1-3 of decoupling plan:
- Shared DB, models, infrastructure, browser, config, utils
- Event infrastructure (domain_events outbox, bus, processor)
- Structured logging
- Generic container concept (container_type/container_id)
- Alembic migrations for all schema changes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 12:45:56 +00:00