# Ministry Progress Report

Admin: **Ministry → progress_reports**, with 453 bilingual label keys plus the
sidebar `title`. Screen heading: `shared.list.page_title`; subtitle:
`shared.list.breadcrumb`. Editing the sidebar title does not alter the heading.

API: `/translations/dictionary?module=ministry&page=progress_reports&language=en|km`.
`useReportLabels` isolates the module/page/language cache by current route.
PSWG uses `pswg/progress_report`; CDC G-PSF uses `cdcgpsf/progress_reports`.
Missing labels use bilingual defaults, never another module's dictionary.

Coverage: list header/views, filters and values, column/menu/pagination labels,
comment drawers/dialogs, detail and workflow actions, issue/decision editors,
document section, notifications, print, calendar months/weekdays/navigation.

Import audit:
- Ministry imports CDC G-PSF calendar/event dialog and table cells. Calendar
  controls/status now read the owning route's dictionary; dialog labels are props.
- Ministry detail sections, comment UI and print are reused by PSWG and CDC G-PSF.
  These use `useSharedReportLabels`/`useReportLabels`, not Ministry API hardcoding.
- Column factories receive API-resolved labels; static defaults are fallbacks.
- Business content, names, date/number formatting, native browser/editor controls
  and the unused static print example are not Admin translation labels.

Run from backend: `npm run prisma:seed:progress-report-translations`.
Seeds create missing records only, preserving existing Admin edits.
Refresh/reopen or refocus the report after editing translations in Admin.
