feat: Trust Comparison landing page + directorate selector (Task 10.7)

- Add get_directorate_summary() query for per-directorate patient/drug counts
- Create trust_comparison.py with landing grid and 6-chart dashboard layout
- Wire directorate card clicks and back button through app-state callbacks
- Add TC landing and dashboard CSS per Phase 10 design spec
- Placeholder charts for 6 dashboard graphs (filled in Task 10.8)
- Chart type toggle clears selected directorate when switching modes
This commit is contained in:
Andrew Charlwood
2026-02-06 22:15:10 +00:00
parent 04edf2cea5
commit 10739ca84d
9 changed files with 457 additions and 36 deletions
+3 -27
View File
@@ -9,6 +9,7 @@ from dash_app.components.filter_bar import make_filter_bar
from dash_app.components.chart_card import make_chart_card
from dash_app.components.footer import make_footer
from dash_app.components.modals import make_modals
from dash_app.components.trust_comparison import make_tc_landing, make_tc_dashboard
app = Dash(
__name__,
@@ -59,33 +60,8 @@ app.layout = dmc.MantineProvider(
id="trust-comparison-view",
style={"display": "none"},
children=[
html.Div(
className="tc-landing",
id="trust-comparison-landing",
children=[
html.Div(
className="tc-landing__header",
children=[
html.H2(
"Trust Comparison",
className="tc-landing__title",
),
html.P(
"Select a directorate to compare drug usage across trusts.",
className="tc-landing__desc",
id="tc-landing-desc",
),
],
),
html.Div(
className="tc-landing__grid",
id="tc-landing-grid",
children=[
# Populated by callback in later task
],
),
],
),
make_tc_landing(),
make_tc_dashboard(),
],
),
],