Skip to content

[Feature:InstructorUI] Filter Withdrawn Students in Gradeables#11792

Merged
bmcutler merged 55 commits intomainfrom
withdrawn-students
Jun 27, 2025
Merged

[Feature:InstructorUI] Filter Withdrawn Students in Gradeables#11792
bmcutler merged 55 commits intomainfrom
withdrawn-students

Conversation

@JManion32
Copy link
Copy Markdown
Contributor

@JManion32 JManion32 commented Jun 20, 2025

Why is this change important / necessary?

Closes #11007 , supersedes #11036
TAs and instructors have no way to see if any students are withdrawn or auditing their course, causing unnecessary worry if they are skipping class / missing assignments.

What is the new behavior?

There is now an option to filter auditing/withdrawn students on checkpoint/numeric lab and the detail grading pages.

UI Change: This new option is included with other existing toggle buttons such as "View Your Sections" and "Switch to Random Order." Since the location of those buttons restricted the addition of the new "Hide Withdrawn Students" toggle, this PR also refactors the UI by converting the buttons to radios, and moving them to the right where there is more space (see the screenshots below).

Steps to test

  1. login as instructor
  2. navigate to the manage students page
  3. edit student -> change some several student registration types to withdrawn
  4. navigate to a checkpoint/numeric lab, see checkbox
  5. navigate to Gradeables -> Grade / Preview Grading -> see filter withdrawn student button
  6. test if withdrawn student is filtered, and existing buttons retain functionality

Before

TA View before grading 4k ultra
Grade released before ta view 4k

After

new grade inquiries picture
new hide withdrawn students lab

You can now filter withdrawn students in simple grading using a checkbox. The logic is very similar to a standard gradeable's. Additionally, the cookie used to filter withdrawn students is the same between the 2, so if you toggle one, it is automatically toggled in the other.
Instead of buttons, gradeables now use checkboxes. Logic is nearly set, just need some work with checkbox UI and cookies on page load.
Checkboxes are now fully functional for gradeables. Withdrawn students are always hidden when grade inquiries only is toggled.
@codecov
Copy link
Copy Markdown

codecov bot commented Jun 20, 2025

Codecov Report

Attention: Patch coverage is 0% with 2 lines in your changes missing coverage. Please review.

Project coverage is 20.67%. Comparing base (01dde07) to head (ce80671).
Report is 7 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff              @@
##               main   #11792      +/-   ##
============================================
- Coverage     20.67%   20.67%   -0.01%     
- Complexity     9176     9177       +1     
============================================
  Files           263      263              
  Lines         35222    35223       +1     
  Branches        461      461              
============================================
  Hits           7282     7282              
- Misses        27483    27484       +1     
  Partials        457      457              
Flag Coverage Δ
autograder 21.34% <ø> (ø)
js 2.11% <ø> (ø)
migrator 100.00% <ø> (ø)
php 19.36% <0.00%> (-0.01%) ⬇️
python_submitty_utils 80.08% <ø> (ø)
submitty_daemon_jobs 88.88% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Filter withdrawn students was set to be instructor only, but should be all non-student graders. This was causing Cypress to fail on page load since we check if each box is checked.

This will likely need further improvement to validate permissions on reload so we never check for a box that is not visible on the page.
The function that ensures the right checkboxes are toggled on page load assumed all graders had the same permissions, reading to reference errors, and failing Cypress tests. Now, the function considers these permissions.

Additionally, the withdrawn students toggle is no longer displayed for team work. Instead, it is set to on for everyone.
Will do the rest of the Cypress tomorrow.
Adjusted simple grading permissions to always hide withdrawn students. Also made the logic between the 2 functions as similar as possible to maintain continuity
Rather than hiding withdrawn students whenever a grade inquiry is toggled, Instructors can now see withdrawn students with active grade inquiries. Accomplished by overriding hide() and show() with a CSS class and 1 instance of !important
Fixed lint, Cypress test works locally and its failure does not seem to be related to this PR
Hide Withdrawn Students is now the bottom checkbox for both types of gradeables
@automateprojectmangement automateprojectmangement bot moved this from Seeking Reviewer to In Review in Submitty Development Jun 27, 2025
Copy link
Copy Markdown
Contributor

@jeffrey-cordero jeffrey-cordero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes implemented for the withdrawn students feature look good. The components for anonymous, withdrawn, default/random ordering, and section selection also appear much clearer for all graders on this page.

@github-project-automation github-project-automation bot moved this from In Review to Awaiting Maintainer Review in Submitty Development Jun 27, 2025
@bmcutler bmcutler merged commit 628d63d into main Jun 27, 2025
25 checks passed
@bmcutler bmcutler deleted the withdrawn-students branch June 27, 2025 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Remove "withdrawn" students from TA grading view

5 participants