Skip to content

[Documentation:InstructorUI] Add redaction instructions #682

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jul 31, 2025
Merged

Conversation

lavalleeale
Copy link
Contributor

This pull request introduces a new feature for handling redactions in bulk PDF uploads to enhance student privacy during grading. The changes include documentation updates explaining how to prepare and view redactions.

Redaction Feature Documentation:

  • _docs/instructor/assignment_preparation/bulk_pdf_upload.md: Added a section on redactions, detailing the creation of a JSON file for specifying redacted areas on PDF pages, enabling the feature in the "Rubric" tab, and viewing redactions during grading. Includes examples of JSON format and visual aids for preparation and viewing.


### Viewing Redactions

Once you have prepared the redactions JSON file, either start a bulk upload or view an existing bulk upload submission. You will see boxes on the PDF that represent the redactions you have prepared. These boxes will be shown to limited access graders, and they will not be able to see the content within these redacted areas.
Copy link
Contributor

Choose a reason for hiding this comment

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

This should be updated to describe where exactly the submissions with redactions will be shown, probably with screenshots of the page.

@github-project-automation github-project-automation bot moved this from Seeking Reviewer to Work in Progress in Submitty Development Jun 24, 2025
@bmcutler bmcutler moved this from Work in Progress to Awaiting Maintainer Review in Submitty Development Jul 19, 2025
@bmcutler bmcutler merged commit eee620f into main Jul 31, 2025
3 checks passed
@bmcutler bmcutler deleted the redactions branch July 31, 2025 22:32
@github-project-automation github-project-automation bot moved this from Awaiting Maintainer Review to Done in Submitty Development Jul 31, 2025
bmcutler added a commit to Submitty/Submitty that referenced this pull request Jul 31, 2025
### Why is this Change Important & Necessary?
<!-- Include any GitHub issue that is fixed/closed using "Fixes
#<number>" or "Closes #<number>" syntax.
Alternately write "Partially addresses #<number>" or "Related to
#<number>" as appropriate. -->
Images of test PDFs frequently contain a student's information, so now
users have the option to redact certain parts of certain pages of tests.

### What is the New Behavior?
<!-- Include before & after screenshots/videos if the user interface has
changed. -->
An instructor can upload redactions json files to specify areas of the
bulk split pdf that should not be visible to graders.

### What steps should a reviewer take to reproduce or test the bug or
new feature?
To add redactions to a gradeable visit the update page on the rubric
tab. The JSON can only be uploaded when " And do you expect each
specific problem/item/component to appear on a specific page number of
the PDF document? " is turned on

### Automated Testing & Documentation
<!-- Is this feature sufficiently tested by unit tests and end-to-end
tests?
If this PR does not add/update the necessary automated tests, write a
new GitHub issue and link it below.
Is this feature sufficiently documented on submitty.org?
Link related PRs or new GitHub issue to update documentation. -->

### Other information
<!-- Is this a breaking change?  
Does this PR include migrations to update existing installations?  
Are there security concerns with this PR? -->
See #11538

### What is the current behavior?
<!-- List issue if it fixes/closes/implements one using the "Fixes
#<number>" or "Closes #<number>" syntax -->


### Other information?
<!-- Is this a breaking change? -->
<!-- How did you test -->
Documentation in Submitty/submitty.github.io#682

This pull request introduces a new feature to handle redactions for
gradeable submissions, along with updates to related database
migrations, job processing, and API endpoints. The key changes include
adding a `gradeable_redaction` table, implementing a redaction
processing workflow, and modifying the PDF image generation process to
apply redactions.

### Database Changes:
* Added a new `gradeable_redaction` table to store redaction data,
including constraints for valid coordinate ranges
(`migration/migrator/data/course_tables.sql`).
* Created a migration script to add the `gradeable_redaction` table and
constraints
(`migration/migrator/migrations/course/20250312145730_add_redactions.py`).

### Job Processing Updates:
* Updated the `generate_pdf_images` job to accept redactions and output
redacted images with a checkered pattern
(`sbin/submitty_daemon_jobs/submitty_jobs/generate_pdf_images.py`).
* Added a new `RegenerateBulkImages` job to regenerate images for all
submissions in a bulk upload, applying redactions
(`sbin/submitty_daemon_jobs/submitty_jobs/regenerate_bulk_images.py`).
* Integrated the `RegenerateBulkImages` job into the job processing
pipeline (`sbin/submitty_daemon_jobs/submitty_jobs/jobs.py`).

### API and Controller Enhancements:
* Added endpoints to retrieve and update redactions for a gradeable in
`AdminGradeableController`, including validation and triggering the
regeneration job
(`site/app/controllers/admin/AdminGradeableController.php`).
* Updated the `SubmissionController` to include the `Redaction` model
(`site/app/controllers/student/SubmissionController.php`).

### Test and Example Updates:
* Removed assertions for page image generation in bulk PDF split tests,
as this functionality is now handled by the redaction workflow
(`sbin/submitty_daemon_jobs/tests/test_bulk_pdf_split.py`).
* Added an example `redactions.json` file to demonstrate redaction data
format
(`more_autograding_examples/bulk_upload_pdfs/submissions/redactions.json`).

These changes collectively enable the system to manage redactions
effectively, ensuring sensitive information in gradeable submissions can
be obscured as needed.

---------

Co-authored-by: Sátvik Karanam <[email protected]>
Co-authored-by: Viane Matsibekker <[email protected]>
Co-authored-by: williamschen23 <[email protected]>
Co-authored-by: Barb Cutler <[email protected]>
Co-authored-by: Barb Cutler <Barb Cutler>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants