Merge branch 'worktree-sitemap-improvement'

# Conflicts:
#	web/src/padelnomics/admin/routes.py
This commit is contained in:
Deeman
2026-02-23 13:15:21 +01:00
24 changed files with 2192 additions and 169 deletions

View File

@@ -7,6 +7,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [Unreleased]
### Added
- **Admin Email Hub** (`/admin/emails`) — full email management dashboard with:
sent log (filterable by type/event/search, HTMX partial updates), email detail
with Resend API enrichment for HTML preview, inbound inbox with unread badges
and inline reply, compose form with branded template wrapping, and Resend
audience management with contact list/remove
- **Email delivery tracking** — `email_log` table records every outgoing email
with resend_id; Resend webhook handler (`/webhooks/resend`) updates delivery
events (delivered, bounced, opened, clicked, complained) in real-time;
`inbound_emails` table stores received messages with full body
- **send_email() returns resend_id** — changed return type from `bool` to
`str | None` (backward-compatible: truthy string works like True); all 9
worker handlers now pass `email_type=` for per-type filtering in the log
- **Playtomic full data extraction** — expanded venue bounding boxes from 4 regions
(ES, UK, DE, FR) to 23 globally (Italy, Portugal, NL, BE, AT, CH, Nordics, Mexico,
Argentina, Middle East, USA); PAGE_SIZE increased from 20 to 100; availability
@@ -38,6 +50,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
translated footer; ~70 new translation keys (EN + DE); all task payloads now
carry `lang` from request context at enqueue time; payloads without `lang`
gracefully default to English
- **Email design & copy upgrade** — redesigned `_email_wrap()`: replaced monogram
header with lowercase wordmark matching website, added 3px blue accent border,
preheader text support (hidden preview in email clients), HR separators between
heading and body; `_email_button()` now full-width block for mobile tap targets;
rewrote copy for all 9 emails with improved subject lines, urgency cues,
quick-start links in welcome email, styled project recap cards in quote
verification, heat badges on lead forward emails, "what happens next" section
in lead matched notifications, and secondary CTAs; ~30 new/updated translation
keys in both EN and DE
### Changed
- **Resend audiences restructured** — replaced dynamic `waitlist-{blueprint}`