feat: outreach follow-up scheduling, activity timeline, and pSEO noindex (migration 0025)
Feature A — Outreach follow-up + activity timeline: - follow_up_at column on suppliers (migration 0025) - HTMX date picker on outreach rows, POST /admin/outreach/<id>/follow-up - Amber due-today banner on /admin/outreach with ?follow_up=due filter - get_follow_up_due_count() for dashboard widget - Activity timeline on /admin/suppliers/<id>: merges sent + received emails by contact_email Feature B — pSEO article noindex: - noindex column on articles (migration 0025) - NOINDEX_THRESHOLDS per-template lambdas in content/__init__.py - generate_articles() evaluates threshold and stores noindex=1 for thin-data articles - <meta name="robots" content="noindex, follow"> in article_detail.html - Sitemap excludes noindex articles (AND noindex = 0) - pSEO dashboard noindex count card + article row badge Tests: 49 new tests (29 outreach, 20 noindex), 1377 total, 0 failures Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -118,6 +118,8 @@
|
||||
- [x] **Lead matching notifications** — `notify_matching_suppliers` task on quote verification + `send_weekly_lead_digest` every Monday; one-click CTA token in forward emails
|
||||
- [x] **Migration 0022** — `status_updated_at`, `supplier_note`, `cta_token` on `lead_forwards`; supplier respond endpoint; inline HTMX lead detail actions; extended quote form fields
|
||||
- [x] **Outreach pipeline** (`/admin/outreach`) — cold B2B supplier outreach with separate sending domain (`hello.padelnomics.io`), 6-stage pipeline cards, HTMX inline status + note editing, CSV import, bulk add-to-pipeline from supplier list, compose integration (auto-updates pipeline on send); migration 0024 adds 4 outreach columns to suppliers; 44 tests
|
||||
- [x] **Outreach follow-up scheduling + activity timeline** — `follow_up_at` date column on suppliers (migration 0025), HTMX date picker on outreach rows, amber "follow-ups due" banner with `?follow_up=due` filter, activity timeline on supplier detail merging sent + received emails by contact email; 29 tests
|
||||
- [x] **pSEO article noindex** — `noindex` column on articles (migration 0025), `NOINDEX_THRESHOLDS` per-template lambdas in `content/__init__.py`, robots meta tag in `article_detail.html`, sitemap exclusion, pSEO dashboard count card + article row badge; 20 tests
|
||||
|
||||
### SEO & Legal
|
||||
- [x] Sitemap (both language variants, `<lastmod>` on all entries)
|
||||
|
||||
Reference in New Issue
Block a user