Your Community is getting an upgrade!
Read about our partnership with Higher Logic and how we will build the next generation of the Instructure Community.
Found this content helpful? Log in or sign up to leave a like!
I suppose this is more of a feature request than a question because I already know that the Submissions endpoint on the Canvas API does not currently take put requests on the submission's Missing property.
Why would I want to do this through the API anyway?
The trouble—and I've seen this discussed elsewhere many times—is that Canvas does not mark missing submissions as "Missing" automatically if the assignment uses an external tool.
For example, if I have an individual assignment on Canvas that uses an LTI integration with a tool like Norton's InQuizitive, I can set a due date for the Canvas assignment, but when that date passes and students have not submitted/done the activity, their submission does not get marked missing unless a grader like me goes through the gradebook and manually marks them as missing. That is super-tedious and leads to hundreds of unnecessary clicks and wasted time, eye-strain, and wrist-strain throughout a grading period.
So my thinking was that until this issue gets solved—which may be never—why not at least be able to do it through the API? I've already written scripts to put the late_assignment_policy property to "none" for submissions that are less than 2 days late (I allow my students to submit work late "penalty free" if they submit it within 48 hours of the official due time). That script has saved me loads of time. Being about to likewise put the Missing property to $true through the API would likewise save a ton of time, wrist, and eye strain.
There we go. That's my feature request for the year.
Thanks for reading 🙂
-Jeremiah
Solved! Go to Solution.
@jerry_nguyen thank you for prompting me to have another look. I've poured over the documentation but somehow had it set in my mind that it was the missing property I needed to change. But that's not right. It's the late_policy_status property that needs to be changed. late_policy_status can hold values like "late", "missing", "excused", "none" etc. So the API can do what I'm looking for in its present state.
I posted this over in the Ideas & Themes space after I discovered that was a thing.
According to Canvas REST API documentation, you can set a submission status to missing using this endpoint: https://canvas.instructure.com/doc/api/submissions.html#method.submissions_api.update
@jerry_nguyen thank you for prompting me to have another look. I've poured over the documentation but somehow had it set in my mind that it was the missing property I needed to change. But that's not right. It's the late_policy_status property that needs to be changed. late_policy_status can hold values like "late", "missing", "excused", "none" etc. So the API can do what I'm looking for in its present state.
I've used Canvas for a few years but never come across the API. Before I spend a lot of effort trying to use this solution for myself (which would be a big help for me), how difficult is the coding here? My last regular coding work was HTML 25 years ago, so I'm not a complete novice, but only a tiny bit better.
Hi @altotus! So I'm nowhere near a full time developer myself, yet I've been able to do a lot with the help of online documentation and, believe it or not, Chat GPT on Open AI which is excellent at helping to develop and debug code.
I'm given to understand that in working with APIs in general, there are a variety of options in terms of programming languages and environments you can use. I administer a lot of Windows-based systems, so I opted to use the same tool we use to automate Windows administration tasks—PowerShell—because it's what I'm most familiar with these days.
My first PowerShell script was about 80 lines and accomplished exactly what I wanted it to do. But it would only ever do that one thing and nothing else. It took maybe 6 hours altogether to get it working. My latest version of the script is closer to 800 lines and leverages the Canvas API in a variety of ways. I've spent way more hours developing it than I'm going to save through its automation this semester, but it will end up saving me at least 2+ hours per week over the next few years (along with the associated eye strain and wrist strain). Moreover, my gradebooks will always be consistently updated, providing better feedback for my students, which I'm betting will decrease attrition, which is good for everyone.
Ultimately, though, I would only tackle this project if learning how to code is something you want to do in and of itself. Working with the Canvas API to automate tasks in your gradebooks is a great project and goal-oriented way to learn this skill. Otherwise, just wait a few weeks (or perhaps until the beginning of next semester) and I'll likely be able to share a general-use script on Github 🙂
Thanks for the response - it at least ticked the box mentally until I had a chance to reply. I know I should learn to code, but in all of the things I also should do, it's pretty low on the list - and this one task doesn't make enough of a difference to promote it. Especially if someone else is likely to address the problem. To be honest, I wouldn't be surprised if my school limited our access in some way that prevented me from writing my own scripts anyway. Definitely tag me if you do create the script, though!
To interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign InTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign In