Skip to content

feat(inquiries): monthly chart with marketing lanes, open-inquiry ageing - #533

Merged
dholbach merged 1 commit into
mainfrom
feat/inquiry-charts
Oct 21, 2026
Merged

dholbach merged 1 commit into
mainfrom
feat/inquiry-charts

Conversation

@dholbach

Copy link
Copy Markdown
Owner

Summary

  • Inquiries per month is now an MPChart bar chart covering all of the last 12 months, empty ones included (the old CSS bars silently skipped them). Each MarketingPeriod is drawn as a labelled lane above the bars, placed to the day, with dashed edge lines where a period starts or ends inside the axis. lanes is a generic option on MPChart.bar.
  • Open inquiries: days since last step ranks open inquiries by days since their newest milestone (received / responded / intro meeting / decision). A future intro meeting counts as 0 days. Rows past the existing 30-day stale threshold are highlighted, names use |privacy_name, and each row links to the edit form.
  • The .monthly-* CSS is removed, so .monthly-bar leaves the hardcoded-hex allowlist in test_css_tokens.py.
  • The large .po diff is catalog drift on main that ./dev.py i18n re-extracted. The only new translations are this page's, and there are no fuzzy entries.

Follow-up (separate PR): auto-lapse after 60 days without a step, and anonymising closed inquiries after a retention period.

Test plan

  • test_inquiry (5 new tests: empty months, lane positions, practice scoping, ageing order/staleness, page render), test_views_inquiry_basic
  • Guardrails: css_tokens, i18n_coverage, privacy_coverage, csp_coverage, responsive_layout, color_contrast
  • node charts.test.js, ./dev.py lint
  • Rendered against real data and checked in the browser

🤖 Generated with Claude Code

The monthly trend becomes an MPChart bar chart that lists every month of the
last twelve, including empty ones (the old CSS bars silently skipped them),
and draws each marketing period as a labelled lane above the bars, so volume
can be read against the campaigns that were running. `lanes` is a generic
option on MPChart.bar.

A second panel ranks open inquiries by days since their latest milestone,
highlighting those past the 30-day stale threshold the list already uses —
the working list for closing out inquiries that ended without a status change.

The .monthly-* rules are gone, so .monthly-bar leaves the hardcoded-hex
allowlist. The .po churn is catalog drift on main re-extracted by
./dev.py i18n; the only new translations are this page's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dholbach
dholbach merged commit f368582 into main Oct 21, 2026
7 checks passed
@dholbach
dholbach deleted the feat/inquiry-charts branch October 21, 2026 07:03
@dholbach
dholbach restored the feat/inquiry-charts branch October 21, 2026 07:03
@dholbach
dholbach deleted the feat/inquiry-charts branch October 21, 2026 07:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant