diff options
| author | Ben Sima <ben@bsima.me> | 2025-11-16 03:57:51 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bsima.me> | 2025-11-16 03:57:51 -0500 |
| commit | 468ee3c4dc005a139ea2b8ac157c61d0ee4422d9 (patch) | |
| tree | 3fa6b33194187237bfe19bce9b5eb86175925166 /Biz/PodcastItLater/UI.py | |
| parent | f74ee8bc380f07e597b638a719e7bbfe9461a031 (diff) | |
Add admin metrics dashboard
- Added Core.Database.get_metrics_summary() for aggregate stats -
Added Core.Database.get_episode_metric_events() for raw event data -
Created MetricsDashboard component with summary cards and top episodes
tables - Added /admin/metrics route with admin authentication -
Added metrics link to admin dropdown menu - Added comprehensive tests
for metrics functionality - Fixed type errors in Admin.py by adding
MetricCardAttrs - All tests passing (48 tests total in Web.py) -
Completed epic t-ga8V8O (24/24 tasks)
Diffstat (limited to 'Biz/PodcastItLater/UI.py')
| -rw-r--r-- | Biz/PodcastItLater/UI.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Biz/PodcastItLater/UI.py b/Biz/PodcastItLater/UI.py index 57d0f33..009fdbe 100644 --- a/Biz/PodcastItLater/UI.py +++ b/Biz/PodcastItLater/UI.py @@ -263,6 +263,20 @@ class PageLayout(Component[AnyChildren, PageLayoutAttrs]): classes=["dropdown-item"], ), ), + html.li( + html.a( + html.i( + classes=[ + "bi", + "bi-graph-up", + "me-2", + ], + ), + "Metrics", + href="/admin/metrics", + classes=["dropdown-item"], + ), + ), classes=["dropdown-menu"], aria_labelledby="adminDropdown", ), |
