Skip to content

Mass approve/ reject functionality and UI changes for request table#349

Open
gobears01 wants to merge 12 commits intoberkeley-cdss:mainfrom
cs169:mass-approve
Open

Mass approve/ reject functionality and UI changes for request table#349
gobears01 wants to merge 12 commits intoberkeley-cdss:mainfrom
cs169:mass-approve

Conversation

@gobears01
Copy link
Contributor

General Info

Allow course staff member to mass select and approve/deny requests manually. Also, allow approve/deny requests without refreshing the whole page because that is slow.
To complete this tasks. We divided work into 3 user stories:
1. Make approve / reject be AJAX request and refresh the table instead of the whole page like the current HTTP request / form submission

2. Create the UI checkboxes to select multiple extensions and potentially an option to mass select

3. Update backend to allow mass auto or mass decline

Summary

  • Added checkbox-based multi-select UI to the instructor requests table.
  • Added Approve Selected and Reject Selected batch actions.
  • Added backend mass_approve and mass_reject endpoints returning JSON for AJAX updates.
  • Updated the Stimulus requests controller to support select-all, row selection, and batch updates (including DataTable redraws).
  • Removed the hardcoded export host and made request-link generation environment-safe.
  • Move Approve Selected and Reject Selected to bottom right of the table
  • Swapped student and assignment column
  • Made student, assignment and status column cells clickable and link to request
  • Made select checkboxes UI toggles that match toggles in course settings and "Approved Extended?" in enrollment table

Testing

  • Added Rspec for approve/ reject AJAX
  • Aded controller specs covering batch approve/reject flows.
  • Added Cucumber scenarios covering button placement and status cell navigation

gobears01 and others added 12 commits March 3, 2026 17:11
- Add row/select-all checkboxes and batch approve/reject buttons in instructor requests table

- Add mass_approve and mass_reject routes + controller actions with JSON responses

- Extend Stimulus controller for batch selection/action handling with DataTable updates

- Add controller specs for mass endpoints

- Remove hardcoded export host and build environment-safe request links
- align multi-line message assignment for RuboCop

- update controller specs to use response.parsed_body and contain_exactly

- use class_double for CanvasFacade.from_user stubbing
…oxes UI to toggles to match course settings and Approved Extended toggles
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.

2 participants