Skip to content

WIP: EP Approval Workflow#814

Draft
palkerecsenyi wants to merge 4 commits into
CERNDocumentServer:masterfrom
palkerecsenyi:ep-approval
Draft

WIP: EP Approval Workflow#814
palkerecsenyi wants to merge 4 commits into
CERNDocumentServer:masterfrom
palkerecsenyi:ep-approval

Conversation

@palkerecsenyi

Copy link
Copy Markdown
Member

Closes #776

zzacharo and others added 4 commits June 8, 2026 16:09
Implement EP approval workflow storing approval state in
parent.permission_flags["ep_approval"] — shared across all versions in a
record family, eliminating DB scans, version propagation, and edit/publish
cycles on accept.

- ep_approval stored in parent permission_flags (no custom schema needed;
  permission_flags already allows additionalProperties in parent-v3.0.0.json)
- EPApprovalAcceptAction: write directly to parent permission_flags on accept
- EPApprovalSubmitAction: re-submission guard is a single parent read
- ep_approval_state.py: reads from parent permission_flags, no version scanning;
  public record detected by source_internal_version key
- views.py (publish_public_record): reads/writes ep_approval via permission_flags
  on both the internal draft parent and the new public record parent
- CommitteeApprovalComponent: remove _restore_committee_approval and version CF;
  _regenerate_apprn_identifier reads from parent (apprn only on public records,
  detected by source_internal_version)
- Remove CommitteeApprovalCF from custom fields (version-level CF no longer used)
- notifications, generators, permissions, schemes: EP approval support
- templates: EP approval section in record detail, manage menu, and request view
- tests: replace CF-based test with parent permission_flags ep_approval test

ep_approval keys (internal draft parent):
  reportnumber, datetime, approved_internal_version,
  approved_public_version, source_public_version
ep_approval keys (public record parent):
  reportnumber, source_internal_version
Add React components and overrides for the EP approval workflow UI.
Version badges read from parent.permission_flags["ep_approval"] (single
source of truth shared across all versions) rather than a per-version CF map.

- EPApproval: manage section with submit/re-submit, pending/declined state,
  create-public-record button; new-version interceptor while request pending
- EPApprovalSubmitModal: submission form with experiment/role/paper fields
- CreatePublicRecordModal: confirmation modal for creating the public record
- EPApprovalRequestDetails: request details panel for referees
- RecordVersionItem: badges from ep_approval dict (approved_internal_version,
  source_public_version, approved_public_version keys)
- overridableRegistry: wire up RecordVersionItem and EPApproval overrides
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

EP approval workflow

2 participants