696e369ec1
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Generic: Project CI / Lint & Validate (pull_request) Successful in 17s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 48s
Generic: Project CI / Tests (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
- New DashboardModel (BaseDatabaseModel) with getStats(), getCoverageByType(), getMissingArticles() — coverage logic moved out of the list template - New View/Dashboard/HtmlView + tmpl/dashboard/default.php: SVG donut coverage gauge, field-gap badges, per-content_type breakdown table, and a list of published articles missing OG tags (linking to the article editor) with a Batch Generate shortcut - DisplayController default_view -> dashboard; Dashboard + Tags submenu entries - Removed the inline coverage.php include from the tags list (it ran 6 uncached COUNT queries on every list load); that logic now lives in DashboardModel - Declared tmpl/dashboard in the manifest; added language strings (en-GB, en-US)