New tab, separate from the Reports dropdown (which stays tied to actual calendar-month/campaign-approval data), covering what the new campaign plan cares about that the old reporting never tracked: - theme_tracker.py: per-post theme classification (Failure Analysis / Standardization / WaveGate), same hand-tagged pattern as MANUAL_CONTENT_TYPES. Powers a Theme Performance chart showing each theme's Real Eng % across the whole campaign, not just its lead month - the explicit ask was to see if a theme keeps earning engagement even when a different theme is leading that month. - conversation_tracker.py: logs every real conversation (a comment from an actual person) through to resolution (open -> replied -> followed_up -> closed). Exists because the old campaign's two real conversations, Sabine Brock on 20/08 and Dr. Debnath on 08/09, were both left open with no reply and no follow-up - this makes that visible instead of silent. An "N open" badge flags anything still needing a reply. Both data sources start empty and render a clean "nothing logged yet" state - nothing to log until the campaign is approved and posts start going up, but the tooling is ready. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
24 lines
739 B
Python
24 lines
739 B
Python
"""Per-post theme classification for the new engagement-response campaign (Nov 2026
|
|
onward, pending approval). Same pattern as app.py's MANUAL_CONTENT_TYPES (LinkedIn's
|
|
export has no "theme" field at all, so this is entirely hand-tagged), keyed by
|
|
"YYYY-MM-DD". Empty until the campaign starts and posts go up — add an entry here as
|
|
each post is published, no other code changes needed for it to show up in the
|
|
Theme Performance chart.
|
|
"""
|
|
|
|
THEMES = ["Failure Analysis", "Standardization", "WaveGate"]
|
|
|
|
THEME_COLORS = {
|
|
"Failure Analysis": "#E8825A",
|
|
"Standardization": "#1b3a5c",
|
|
"WaveGate": "#52C41A",
|
|
}
|
|
|
|
# "2026-11-03": "Failure Analysis",
|
|
POST_THEMES = {
|
|
}
|
|
|
|
|
|
def theme_for(date_iso):
|
|
return POST_THEMES.get(date_iso)
|