Deeman
ad1da5c335
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>
2026-02-25 17:51:38 +01:00
..
2026-02-23 22:26:42 +01:00
2026-02-23 21:08:59 +01:00
2026-02-22 00:44:40 +01:00
2026-02-22 00:44:40 +01:00
2026-02-22 00:44:40 +01:00
2026-02-23 15:26:40 +01:00
2026-02-24 00:11:52 +01:00
2026-02-24 20:55:38 +01:00
2026-02-24 10:30:18 +01:00
2026-02-23 21:08:09 +01:00
2026-02-25 12:24:52 +01:00
2026-02-23 13:00:23 +01:00
2026-02-24 10:30:18 +01:00
2026-02-24 21:24:37 +01:00
2026-02-24 21:24:37 +01:00
2026-02-24 10:15:36 +01:00
2026-02-22 00:44:40 +01:00
2026-02-25 16:12:21 +01:00
2026-02-25 16:12:21 +01:00
2026-02-22 17:03:13 +01:00
2026-02-25 13:02:51 +01:00
2026-02-22 00:44:40 +01:00
2026-02-24 21:24:37 +01:00
2026-02-24 20:50:03 +01:00
2026-02-23 18:40:11 +01:00
2026-02-24 10:30:18 +01:00
2026-02-24 10:30:18 +01:00
2026-02-24 10:30:18 +01:00
2026-02-23 18:40:11 +01:00
2026-02-23 17:03:21 +01:00