discourse/lib/plugin
Osama Sayegh 08fdf23a07
DEV: Scaffold backend for the new admin dashboard Reports section (#40017)
Adds the backend for the customisable Reports section on the new admin
dashboard, gated by `dashboard_improvements`.

- `admin_dashboard_reports` table + AR model for pinned reports.
- Plugin-extension contract via
  `Plugin::Instance#register_admin_dashboard_report_source` and the
  `AdminDashboard::Reports::SourceProvider` base class. Core ships a
  built-in provider; `discourse-data-explorer` registers its own.
- `AdminDashboard::Reports::Section` builds the `reports` entry in the
  dashboard's `sections` payload; `AdminDashboard::Reports::BulkFetch`
  powers the bulk endpoint. Both share a
  `Registry.dispatch_per_source` helper that batches work by source.
- `POST /admin/dashboard/reports/bulk` fetches data for multiple
  mounted reports in one round trip, batched by source.
- Defaults are seeded via core + plugin fixtures (Daily engaged users,
  Time to first response; `accepted_solutions` when Solved is in use).

Next: list-available and save-layout endpoints for the Manage Reports
modal, plus the frontend (section UI, modal, bulk loader).
2026-05-20 09:53:26 +03:00
..
filter.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
filter_manager.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
instance.rb DEV: Scaffold backend for the new admin dashboard Reports section (#40017) 2026-05-20 09:53:26 +03:00
js_compiler.rb DEV: Increase plugin_manager timout, and improve error message (#38874) 2026-03-25 15:43:07 +00:00
js_manager.rb DEV: Enable Rails/FilePath rubocop rule (#40097) 2026-05-19 19:07:54 +02:00
metadata.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00