[Speedgrader] Enhance workflow for Submit on behalf of Student

Problem statement:

Submit on behalf of student is likely to be commonly used after the submission window has closed - and at some point in marking. A Grader spots that something isn't quite right (possibly a rendering issue in the Docviewer - outside of the student's control or fault) - but the student made a genuine attempt at the assessment task. The Grader rightly wants to help the student amend the file that is displaying in SpeedGrader with a valid file for grading - and wants to use the submit on behalf of student feature. When this 'submit as / on behalf of submission' is made, it is broadly treated by Canvas 'as if' the student made the submission. This is most problematic when institutions have utilised the available API documentation to create, manage and return assessment data from their SRS / Canvas / SRS. This is because the Submit on behalf of a student feature allows submissions after the Until date - which is commonly coded alongside the HEIs 'late' period - and any submissions after this date automatically generate an immediate Fail record in the SRS (e.g., when the latest submission timestamp is returned to the SRS). However, the 'student' submitted 'on-time' - and any attempts to assist them by the Instructor / Grader / HEI should be identified differently.

Proposed solution:

A proposed solution to this is to supply a user tag (e.g., GraderID) to the API so that integrated solutions can differentiate between a 'true student submission' and a ‘submitted on behalf of’ submission (we can then apply logic to treat these two separate events differently). We have had some interesting discussions with seniors at Instructure - exploring two way this could be handled in Canvas. 1) supply the staff user ID tag to the API (and generate a new submission timestamp / new receipt to the student) or 2) supply the staff user ID tag (for audit purposes) but simply replaced the file (i.e., no new submission timestamp / no new receipt). There are affordances to both. For the purpose of simply replacing a degraded file in the Docviewer etc., #2 is better (as it would not cause anxiety with the student - which it has done in the past with other systems when they see we have 'interacted' with their submission). But where customers may be submitting on behalf of a student for the first time / attempt in that assignment - the creation of a timestamp may be more critical. If this approach were adopted (i.e., #1) - the existence of the appropriate staff user ID could allow HEIs to code logic accordingly in their integration systems.

User role(s):

admin,instructor