Handle turnitin callback failure during assignment creation

Description

With the LTI integration, assignment setup is now a two stage process. The initial request from Sakai to set up the assignment on the Turnitin side, and an asynchronous callback from Turnitin to Sakai providing the assignment id on the Turnitin side.

As long as the response back from Turnitin on the initial request is good, the assignment is created with no indication that a second piece of info (the Turnitin id from the callback) is required to actually make the service work. This second piece is done via an asynchronous callback which could potentially fail, leaving the assignment is a broken state with respect to content review.

To recover from this error, the Sakai assignment must be re-posted to try again, as we have no other mechanism to re-trigger the callback. This patch adds messaging to the UI indicating to the instructor that they will need to edit and save the assignment. There are timing issues involved with the callback that can lead to false positives if you try to deal with the case of a failed callback at the time of assignment creation. For example, if the page returns before the callback has been performed, the instructor will think there is an error when in fact there is not. The callback failing is extremely rare, so this patch places the messaging on the submissions list instead. The icons in the Turnitin column are replaced with the warning telling instructors to re-post in order to fix the assignment.

Note that other work on the queue job will prevent student submissions to such a "broken" assignment from being sent for review until the assignment is fixed, so it is safe for the assignment to be open immediately.

Activity

Show:

Brian J. January 24, 2017 at 11:23 AM

Git commits 993fc1d, ecbe849

Paul Lukasewych January 24, 2017 at 11:08 AM
Edited

Fixed

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

Created January 24, 2017 at 10:32 AM
Updated January 24, 2017 at 11:23 AM
Resolved January 24, 2017 at 11:23 AM

Flag notifications