You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add reviewer_groups permission level to FormDefinition
Adds a new reviewer_groups M2M field that grants read-only access to all
submissions and full approval history for a form, without admin privileges.
- reviewer_groups members see all non-draft submissions for their forms
in My Submissions so they can navigate without needing a direct URL
- Full approval history always visible to reviewers (respects hide_approval_history
the same way approvers and admins do)
- Permission enforced in submission_detail, sub_workflow_detail, submission_pdf,
bulk_export_submissions, bulk_export_submissions_pdf, user_can_view_submission
- Django Admin: filter_horizontal widget in Access Control fieldset; preserved
when cloning a form
- Migration 0064_add_reviewer_groups adds the join table
Bumps version to 0.37.0
Copy file name to clipboardExpand all lines: CHANGELOG.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [0.37.0] - 2026-03-26
11
+
12
+
### Added
13
+
-**`reviewer_groups` permission level on `FormDefinition`** — a new M2M field that grants named groups read-only access to all submissions and their full approval history for a form, without the management capabilities of `admin_groups`.
14
+
- Members of a `reviewer_groups` group will see all submitted/pending/approved/rejected/withdrawn submissions for that form under **My Submissions** (alongside their own), so they can navigate to them without needing a direct URL.
15
+
- The full approval history is always visible to reviewers even when `hide_approval_history` is enabled on the workflow (matching the behaviour for approvers and admins).
16
+
- Access is enforced consistently across `submission_detail`, `sub_workflow_detail`, `submission_pdf`, `bulk_export_submissions`, `bulk_export_submissions_pdf`, and the `user_can_view_submission` utility.
17
+
- The field is exposed in Django Admin under the **Access Control** fieldset with a horizontal filter widget, and is preserved when cloning a form.
18
+
- Migration `0064_add_reviewer_groups` adds the underlying join table.
0 commit comments