Skip to content

feat(OPS-2280): Award approval review page, BLI transitions, and validation rules#5901

Open
josbell wants to merge 25 commits into
mainfrom
OPS-2280/pr3-approve-flow
Open

feat(OPS-2280): Award approval review page, BLI transitions, and validation rules#5901
josbell wants to merge 25 commits into
mainfrom
OPS-2280/pr3-approve-flow

Conversation

@josbell

@josbell josbell commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

What changed

Adds the Award Approval review page and completes the Budget Team approver flow (PR 3 of 3).

  • ApproveAwardApproval page (/agreements/:id/review-award): read-only review page for Budget Team showing agreement details, budget lines, CAN impact, vendor info, current award info, signed award (disabled), obligated date picker, submitter/reviewer notes, attestation checkbox, and "Approve Award" button
  • Confirmation modal: "Are you sure you want to approve this agreement for Award? This will change the budget lines in Executing Status to Obligated Status, and budget lines in Planned Status to Planned Mod Status."
  • Success flow: setAlertscrollToTop → navigate to /agreements?filter=change-requests with 6-second auto-dismiss
  • Full-team notification on approve: requester, project officers, team members, and all Budget Team members
  • Validation rules: AwardApprovalResponseAuthorizationRule (BUDGET_TEAM/SYSTEM_OWNER only) and AwardApprovalResponseValidationRule (must be requested, not already responded), registered in the AWARD validator branch
  • Routing: /agreements/:id/review-award registered in index.jsx
  • usePreAwardApprovalData extended to expose step6, requestorName, requestorDate

Issue

#2280

How to test

Unit tests (no Docker):

cd backend/ops_api
pipenv run pytest tests/ops/validation/test_award_approval_validation.py
cd frontend
bun run test --watch=false src/pages/agreements/award-approval/ApproveAwardApproval.test.jsx

Manual end-to-end:

  1. As COR, complete step 5, open /agreements/:id/award-approval, fill vendor/contract/award, click "Send to Approval"
  2. As Budget Team user, confirm "Award" card appears on For Review tab
  3. Click "Review Agreement" → confirm read-only review page at /agreements/:id/review-award
  4. Check attestation, click "Approve Award" → confirm modal with exact text → confirm approval
  5. Confirm green success banner auto-dismisses after ~6s and navigation to For Review tab
  6. Verify BLIs: Executing → Obligated, Planned → Planned Mod; agreement shows Awarded
  7. Verify History panel shows "Agreement Awarded" with correct copy

A11y impact

  • No accessibility-impacting changes in this PR

Storybook

  • N/A — change is page-specific or non-visual

Screenshots

N/A

Definition of Done Checklist

  • OESA: Code refactored for clarity
  • OESA: Dependency rules followed
  • Automated unit tests updated and passed
  • Automated integration tests updated and passed
  • Automated quality tests updated and passed
  • Automated load tests updated and passed
  • Automated a11y tests updated and passed
  • Automated security tests updated and passed
  • 90%+ Code coverage achieved
  • Form validations updated

Links

@josbell josbell force-pushed the OPS-2280/pr2-award-card branch from 1f42156 to c5b1974 Compare July 6, 2026 17:15
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch from f9bf6a1 to 62c33e0 Compare July 6, 2026 17:15
@josbell josbell force-pushed the OPS-2280/pr2-award-card branch from c5b1974 to f6704f2 Compare July 6, 2026 17:23
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch 2 times, most recently from 2717aaf to c2f3c63 Compare July 6, 2026 17:26
@josbell josbell force-pushed the OPS-2280/pr2-award-card branch from f6704f2 to 5d961ee Compare July 6, 2026 17:29
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch from c2f3c63 to 86df741 Compare July 6, 2026 17:29
@josbell josbell force-pushed the OPS-2280/pr2-award-card branch from 5d961ee to 4a30b9b Compare July 6, 2026 19:16
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch from 86df741 to ef57f0a Compare July 6, 2026 19:16
@josbell josbell force-pushed the OPS-2280/pr2-award-card branch from 4a30b9b to d7c6f33 Compare July 6, 2026 19:29
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch from ef57f0a to 076e2f1 Compare July 6, 2026 19:29
@josbell josbell force-pushed the OPS-2280/pr2-award-card branch from d7c6f33 to 0adbc95 Compare July 6, 2026 20:01
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch from 076e2f1 to b9fa89f Compare July 6, 2026 20:02
@josbell josbell force-pushed the OPS-2280/pr2-award-card branch from 0adbc95 to 07c5d28 Compare July 6, 2026 20:06
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch from b9fa89f to 8389cb7 Compare July 6, 2026 20:06
@josbell josbell force-pushed the OPS-2280/pr2-award-card branch from 07c5d28 to 9c7ef03 Compare July 6, 2026 20:30
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch from 8389cb7 to 086cdd4 Compare July 6, 2026 20:30
@josbell josbell force-pushed the OPS-2280/pr2-award-card branch from 9c7ef03 to c06e268 Compare July 7, 2026 06:32
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch from 086cdd4 to ff76018 Compare July 7, 2026 06:32
@josbell josbell force-pushed the OPS-2280/pr2-award-card branch from c06e268 to 149d37c Compare July 7, 2026 14:30
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch 3 times, most recently from 33eb4da to e051452 Compare July 8, 2026 00:47
@josbell josbell force-pushed the OPS-2280/pr2-award-card branch from 7a1f838 to abd346f Compare July 8, 2026 00:55
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch 3 times, most recently from a6fe8da to 60aaefd Compare July 8, 2026 01:40
@josbell josbell self-assigned this Jul 8, 2026
josbell added 24 commits July 10, 2026 08:48
@josbell josbell force-pushed the OPS-2280/pr3-approve-flow branch from 9bdf15b to dd9836d Compare July 10, 2026 15:53
@josbell josbell marked this pull request as ready for review July 10, 2026 15:53
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.

1 participant