Skip to content

Conversation

@SteveDala
Copy link

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Fixes # (issue)

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

  • Test A
  • Test B

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation if appropriate
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have created or extended unit tests to address my new additions
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

If you have any questions, please contact @macite or @jakerenzella.

b0ink and others added 30 commits November 13, 2025 15:25
- Avoids a JPlag v6.2.0 bug that will occasionally hang forever during cluster calcuations
- ensures the same comment continues on the following page
…-page

fix: ensure long comments are appended on a new page doubtfire-lms#303
The document still said "documentaion". Nuts. I have also added
the doc version number. I defaulted to the version of the branch.
* feat: init discussion prompts

* chore: allow created by user to be null

* chore: mount discussion prompt api

* feat: discussion prompt api

* test: ensure discussion prompt permissions

* refactor: check permissions first

* chore: return new entity

* chore: remove unneeded fields

* feat: expose count of discussion prompts

* refactor: simplify discussion prompt schema

* feat: import and export discussion prompts via task definition csv

* test: add discussion prompts header to csv

* chore: rollover discussion prompts

* test: ensure rollover duplicates discussion prompts

* chore: add discussion prompts header

* chore: add discussion prompts header

* test: ensure dicussion prompts are exported to csv

* refactor: remove project specific prompts for task definition

* refactor: remove project specific tests

* chore: add discussion prompts header
* refactor: queue overseer job after pdf gen completes

* chore: truncate long overseer assessment comments

* refactor: decode text if its base64 encoded

* fix: use unique work dir name

* refactor: ensure submission file is renamed to match upload requirement

* fix: return error if overseer output contains syntax error

* chore: add base64 check method

* refactor: add base64 helper

* chore: add newlines
Co-authored-by: Steven Dalamaras <sd@stevendalamaras.dev>
* feat: init additional discuss task status

* refactor: reveal discuss check status

* refactor: add discuss check status

* test: test for new discuss check status

* refactor: rename to off track

* refactor: rename to attention required

* refactor: update status colors

* refactor: rename to attention required

* chore: add migration to create attention required status

* chore: remove unused code

* chore: remove newline
b0ink and others added 23 commits January 5, 2026 15:01
* feat: init overseer step pipeline

* feat: add overseer step model

* refactor: correctly expose sorted overseer steps

* feat: expose list of overseer resource files

* chore: remove name of zip file from path

* feat: allow partial diff check

* refactor: rerun migration

* chore: remove duplicate overseer run

* fix: ignore top level zip name

* feat: delete overseer step

* feat: overseer step result model

* refactor: init refactor of new overseer step workflow

* chore: overseer step result relationships

* chore: remove byebug

* refactor: add assessment relationship

* chore: remove newlines from output

* fix: set correct status

* refactor: store feedback message in step result

* feat: expose minimal overseer step results in overseer assessment comments

* refactor: filter out overseer steps from students

* refactor: dont expose step results and add endpoint to fetch them

* chore: expose assessment enabled to students

* fix: set timeout on overseer run script

* chore: allow for empty output file

* refactor: expose overseer stdout and stdin results if enabled

* chore: retrieve the last set task status

* refactor: break logic into separate methods

* refactor: allow test submissions while overseer is disabled for a task

* refactor: combine scheme changes into single migration

* refactor: use seconds for overseer timeout

* chore: pass in test submission argument

* chore: disable execution script endpoint

* refactor: clean up overseer job

* refactor: only update status if halting on step

* chore: remove todo

* refactor: add overseer step permissions

* feat: add overseer step validation

* fix: get correct models

* chore: remove todo

* refactor: expose statuses to staff only
* feat: get all task prerequisites for a unit

* feat: target start and due dates for a task

* feat: endpoint to save project task dates

* chore: update schema

* chore: fix schema formatting

* chore: prevent duplicate target start and end date updates

* feat: endpoint to reset all target dates for a project

* test: ensure target dates endpoint permissions

* test: reset flexible dates

* chore: require target start and end date
Also correct the pdf reading test
Enable staff to grant extensions to multiple students without formal requests.
Reuse existing student extension logic through a new service for consistency.
Supports flexible academic support and streamlines staff workflows.

Relates to the OnTrack Staff Grant Extension design documentation.
…rpolated strings

This aligns the test file with the string formatting convention used in the rest of the codebase.
Single quotes are preferred when string interpolation is not needed, improving consistency.

Reviewed as part of peer feedback.
Linked extension_comments_api (student-requested extensions) to use the
shared ExtensionService, previously set up for staff-granted extensions.

This refactor ensures both student and staff extension flows use the
same logic, improving consistency and reducing duplication.
Implemented backend logic to send emails to tutor and student when extensions are granted. Also enable it so the front end can use the returned information from the api to display notifications.
A comment line change made in the staff grant extension feature branch that hasn't been updated here. Changing to keep the consistency.
Also, define relation with user
- Fix delivery method consistency (deliver_now vs deliver_later)
- Fix ExtensionComment retrieval logic to prevent race conditions
- Add proper error handling for email failures
- Fix mailer method calls (class methods vs instance methods)
- Add input validation for API parameters
- Improve error logging and debugging
- Ensure thread-safe extension processing

The email notification system now works correctly:
- Staff receive summary emails for all granted extensions
- Students receive individual notification emails
- Proper error handling prevents API failures on email issues
- All email delivery methods are consistent across the project
- Change notification message from unit.name to unit.code for better consistency
- Unit codes are more concise and standardized (e.g., 'SITXXX')
- Improves readability of extension grant notifications
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.

4 participants