Commit Graph

24 Commits

Author SHA1 Message Date
giles
06dea73557 Remove cross-domain template copies, use shared macros
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m4s
- Desktop/mobile search: use macros/search.html instead of browse copies
- Cart mini: removed (shared _oob.html now uses fragment slot)
- Browse like button: removed (no longer referenced)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:33:08 +00:00
giles
5b63d9fb93 Add cross-domain template copies for shared macro dependencies
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 57s
- browse/desktop+mobile filter search (market domain, used by shared layout.html filter_summary)
- cart/_mini.html (cart domain, used by shared _oob.html for OOB header swaps)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:17:35 +00:00
giles
3c517fd4ca Own blog domain templates, remove fragment fallbacks (Phase 6)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m5s
Blog, post, home, snippets, menu_items, settings templates moved
from shared to blog/templates/. Header fallbacks for cart-mini,
nav-tree, auth-menu removed (fragments only).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:55:37 +00:00
giles
e5b02f1c44 Restore menu_items fallback, fix app slug URLs in nav fragment
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m6s
Keep get_navigation_tree() as fallback when nav-tree fragment fetch
fails. Also map all app slugs (market, events, federation, account)
to their proper cross-app URLs in the nav fragment template.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 11:49:20 +00:00
giles
288b3caf7f Add nav-tree fragment: blog renders nav for all apps
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m5s
Blog now provides a nav-tree fragment at /internal/fragments/nav-tree
that accepts app_name and path params for correct aria-selected
highlighting. Blog itself consumes this fragment alongside cart-mini
and auth-menu in a single concurrent fetch_fragments() call.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 11:35:02 +00:00
giles
b12c8788c7 Fix duplicate auth menu: inject fragment in both desktop and mobile sections
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 58s
Fragment contains responsive desktop/mobile spans. Inject in both
header sections so each span shows at the correct breakpoint.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 09:51:54 +00:00
giles
e9a59e5f93 Add cart + auth fragment pre-fetching to blog context
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m1s
Phase 2 of fragment composition: blog_context() now concurrently
fetches cart-mini and auth-menu HTML fragments from cart and account
apps via fetch_fragments(). Updates shared submodule.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 09:11:50 +00:00
giles
5f97c7cf46 Move blog index to /index, homepage renders Ghost "home" page
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m3s
/ now renders the Ghost page with slug "home" (site homepage).
/index serves the existing blog listing (posts, pages, filters).
All blog.home references updated to blog.index.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 16:54:09 +00:00
giles
5c203cb99c Fix: update local _nav.html to use widget-driven nav
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m5s
The blog app's local templates/_types/post/_nav.html was shadowing
the shared version due to ChoiceLoader priority. Updated local copy
to use container_nav_widgets while keeping the blog-specific admin
cog link. Removed debug logging from context processor.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 19:57:30 +00:00
giles
1ea2950310 Remove 81 identical blog template overrides of shared templates
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 39s
These were duplicates of files in shared/browser/templates/ and
silently prevented shared updates from taking effect (as happened
with the auth nav orders link fix). 8 blog-specific overrides with
genuine differences are kept.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 19:55:45 +00:00
giles
aa06082ad2 Remove blog auth nav override, use shared version
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 45s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 19:52:00 +00:00
giles
4d31123635 Fix orders link: use plain anchor for cross-domain cart navigation
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 40s
The orders link was using links.link macro which adds hx-get, causing
htmx:invalidPath because cart.rose-ash.com is cross-origin. Use a
plain <a> tag for this cross-domain link instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 19:48:05 +00:00
giles
dd7fbc89ce Add HTML email templates for magic link sign-in
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 49s
Extract inline email body into separate Jinja2 templates
(_email/magic_link.html and .txt) with a styled sign-in
button and fallback plain-text link.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 15:09:49 +00:00
giles
05d9e70e8a Add glue layer: MenuNode replaces MenuItem, remove /internal/menu-items API
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m4s
- Context processor: get_navigation_tree() replaces get_all_menu_items()
- Menu admin service: MenuItem → MenuNode (container_type/container_id pattern)
- Remove /internal/menu-items endpoint (other apps query menu_nodes directly)
- Remove menu_items relationship from Post model
- Templates: item.post.X → item.X
- Add glue submodule

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:37:43 +00:00
giles
7b384bd335 feat: add markets and payments nav buttons, remove features panel
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 40s
- Add cross-app nav buttons for markets and payments (events app)
- Remove page features panel and markets panel from blog admin
  (calendars, markets, and payments are now managed in the events app)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 23:45:00 +00:00
giles
af260872d1 fix: build editor in Docker and restore admin panel content
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 49s
The editor.js/editor.css were gitignored and never built during docker
build, causing 404s on the edit page. Add a Node multi-stage build step
to compile them. Also replace "nowt" placeholder in admin templates with
the actual main panel include.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 23:31:35 +00:00
giles
6bb520cb0a feat: show page cart badge in blog post header (Phase 4)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
Fetches page-scoped cart count from /internal/cart/summary?page_slug=
for page posts and displays a cart icon with count in the post header
that links to the page cart.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 21:45:41 +00:00
giles
d859be217a feat: per-page SumUp admin UI and update_sumup route (Phase 3)
- Replace SumUp placeholder with real form for merchant code, API key, prefix
- Add PUT /admin/sumup/ route to save per-page SumUp credentials
- Pass sumup_configured/merchant_code/checkout_prefix to template context
- SumUp form only shown when calendar or market feature is enabled

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:49:30 +00:00
giles
c2e5708aa9 fix: top menu Market link goes to coop blog page
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 39s
OOB nav template also updated — Market link now uses HTMX
navigation to coop.rose-ash.com/market/ instead of linking
to the market app directly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:07:57 +00:00
giles
3376e4e990 feat: show markets in post nav bar and admin panel
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 38s
- Post context processor loads MarketPlace rows for the page
- Nav bar displays market links (shopping-bag icon) alongside calendars
- Admin panel includes markets CRUD when market feature is enabled
- Updated shared_lib submodule with nav_entries template change

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 18:37:06 +00:00
giles
24d3860952 feat: add page admin market CRUD and update shared_lib
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 43s
- Market create/delete routes in post admin blueprint
- markets.py service (create_market, soft_delete_market)
- _markets_panel.html admin template with HTMX create/delete
- Update shared_lib submodule (MarketPlace model, migration, URLs)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 18:08:32 +00:00
giles
8b6320619e feat: implement Pages as Spaces Phase 1
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 45s
- Add PageConfig model with feature flags (calendar, market)
- Auto-create PageConfig on Ghost page sync
- Add create_page() for Ghost /pages/ API endpoint
- Add /new-page/ route for creating pages
- Add ?type=pages blog filter with Posts|Pages tab toggle
- Add list_pages() to DBClient with PageConfig eager loading
- Add PUT /<slug>/admin/features/ route for feature toggles
- Add feature badges (calendar, market) on page cards
- Add features panel to page admin dashboard
- Update shared_lib submodule with PageConfig model

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 14:25:34 +00:00
giles
37a396604e fix: replace stale blog.post.calendars url_for with events_url
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 36s
Calendar routes moved to events service. Blog overrides now use
events_url() for cross-service links, deleted _nav_entries.html
to fall through to shared version.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 11:01:27 +00:00
giles
8f7a15186c feat: initialize blog app with blueprints and templates
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
Extract blog-specific code from the coop monolith into a standalone
repository. Includes auth, blog, post, admin, menu_items, snippets
blueprints, associated templates, Dockerfile (APP_MODULE=app:app),
entrypoint, and Gitea CI workflow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 23:15:56 +00:00