TICKET-583: Include due date in LTI gradebook sync#7872
TICKET-583: Include due date in LTI gradebook sync#7872
Conversation
Coverage Report for CI Build 25508597171Coverage increased (+0.003%) to 91.729%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats💛 - Coveralls |
5ac1ae4 to
100ca98
Compare
78c0eda to
ca824e6
Compare
donny-wong
left a comment
There was a problem hiding this comment.
Thanks for this. However, when I tested it locally, the due date was still not syncing to Canvas. Are you able to sync on your end?
ca824e6 to
c29ef77
Compare
c29ef77 to
33fe566
Compare
Hi Donny, I have updated PR and posted a screenshot. |
33fe566 to
41cbd44
Compare
Thanks @Naragod , strange, I am still unable to sync it. Maybe you can show me tomorrow.
Hi @Naragod , strange, I still cannot sync it on my end. Would you have some idea why that would be? |
41cbd44 to
1117257
Compare
| self.completed_result_marks.count(&:zero?) | ||
| end | ||
|
|
||
| # Re-pushes line item metadata to any LMS that already has this assessment linked, |
There was a problem hiding this comment.
In general please make callback methods private.
| it 'sends JSON body with correct LTI AGS Content-Type' do | ||
| allow(lti_deployment).to receive(:send_lti_request!) do |req, *| | ||
| expect(req.content_type).to eq('application/vnd.ims.lis.v2.lineitem+json') | ||
| body = JSON.parse(req.body) |
There was a problem hiding this comment.
I'm not sure about the interaction with the content type here, but please try using req.parsed_body instead (which should do the JSON parsing for you); we do this in several other tests.
| - Added term-based suffixes to course names created via LTI to ensure uniqueness across academic years (#7881) | ||
|
|
||
| ### 🐛 Bug fixes | ||
| - Sync due date when creating or updating LTI gradebook line items, and re-sync automatically when an assessment is edited (#7756) |
There was a problem hiding this comment.
Please correct the PR number and move this to "enhancements"
Proposed Changes 🐛 Bug fix
When creating or updating a gradebook item via LTI, MarkUs sends a line item payload to Canvas containing the assignment label, resource ID, and maximum score. The
dueAtfield supported by the LTI Assignment and Grade Services (AGS) specification was missing from this payload, and the due date set in MarkUs remained absent on the corresponding Canvas assignment. The fix addsdueAtas an ISO 8601 timestamp to the payload when the assessment has a due date, ensuring it is synced during both line item creation and updates.Screenshots of your changes (if applicable)
Screen.Recording.2026-05-07.at.12.29.06.PM.mov
Associated documentation repository pull request (if applicable)
Type of Change
(Write an
Xor a brief description next to the type or types that best describe your changes.)Checklist
(Complete each of the following items for your pull request. Indicate that you have completed an item by changing the
[ ]into a[x]in the raw text, or by clicking on the checkbox in the rendered description on GitHub.)Before opening your pull request:
After opening your pull request:
Questions and Comments
(Include any questions or comments you have regarding your changes.)