- Migration: add market_place_id to cart_items, page_config_id to orders
- Order model: add page_config_id FK and page_config relationship
- CartItem model: add market_place_id FK and market_place relationship
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Nav entries template now links to /<post_slug>/<market_slug>/
matching the events app calendar URL pattern. market_url_for()
updated to accept post_slug parameter.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Removed 'market' from _app_slugs so the Market menu item links
to coop.rose-ash.com/market/ (the blog page) instead of directly
to the market app. Individual markets are linked from the post nav.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Markets now appear alongside calendars in the post nav bar,
linking to the market app via market_url().
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Introduces per-page markets (Phase 2):
- MarketPlace model with soft-delete and unique slug index
- NavTop gains market_id FK to scope nav hierarchy per market
- Migration with backfill creates default 'suma-market' for existing market page
- market_url_for() cross-app URL helper
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PostgreSQL json type doesn't support equality operators needed by
DISTINCT. Use EXISTS subquery instead and cast to jsonb.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Introduce page_configs table for per-page feature flags (calendar, market)
and future SumUp credentials. Add page_config relationship to Post model.
Remove duplicate CartItem definition from cart_item.py (canonical stays in market.py).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
has_access('settings.home') checks for a coop-only endpoint that doesn't
exist in market/cart/events services. Replace with g.rights.admin which
is set by the shared user_loader across all services.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Calendar blueprints moved to standalone events service — blog app no
longer registers these routes. Replace all url_for/has_access references
from blog.post.calendars.X to calendars.X across 38 shared calendar
templates. Also replace blog.post.post_detail cross-links with coop_url()
for cross-service navigation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
HTMX blocks cross-origin hx-get requests, causing
htmx:invalidPath. Calendar links to events service must
be regular <a> tags without hx-get.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Calendar routes no longer exist in blog service. Post nav,
entry items, blog cards, and header templates now link to
events service via events_url() helper.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Calendar routes moved to events service, so blog can no
longer use url_for('blog.post.calendars...').
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Calendar templates extend post/index.html but don't provide a
post context variable. Wrap post-specific meta in an if guard
so pages without post still get basic meta from meta_base.html.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>