Limit teachers to not grade empty submission
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-13-2023
03:59 PM
Hello hope have a wonderfull weekend
I'm wondering is there a setting in canvas that I can limit the professor to not grade empty online submission or a js code that can help with that?
Solved! Go to Solution.
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-13-2023
05:57 PM
There is no setting in Canvas to prevent grading an unsubmitted assignment. However, you can remove the grade input box by uploading a custom Javascript (JS).
Please note the following JS will only work on the web browser version of Canvas, and users can always disable it
The first script will hide the grade input box from /gradebook page and the flyout grading tray (For non Root Admin users)
if (window.location.href.match('/gradebook')) {
if (!(ENV.current_user_roles.indexOf('root_admin') > -1)) { //If not Root Admin then hide grade input box
var style = (function () {
// Create the <style> tag
var style = document.createElement("style");
style.appendChild(document.createTextNode(""));
// Add the <style> element to the page
document.head.appendChild(style);
return style;
})();
//CSS to hide grade input boxes
style.sheet.insertRule('div.Grid__GradeCell__GradingSchemeInput, .Grid__GradeCell__PointsInput, .Grid__GradeCell__PercentInput { display:none !important;}', 0);
document.addEventListener('click', function (event) {
if (event.target.matches('#grade-detail-tray--grade-input')) {
alert("Please use SpeedGrader to grade");
document.getElementById('grade-detail-tray--grade-input').disabled = true;
};
});
};
}
The second script will hide the grade input box and rubric within the SpeedGrader
if (window.location.href.match('/gradebook')) {
if (!(ENV.current_user_roles.indexOf('root_admin') > -1)) { //If not Root Admin
var style = (function () {
// Create the <style> tag
var style = document.createElement("style");
style.appendChild(document.createTextNode(""));
// Add the <style> element to the page
document.head.appendChild(style);
return style;
})();
style.sheet.insertRule('div.Grid__GradeCell__GradingSchemeInput, .Grid__GradeCell__PointsInput, .Grid__GradeCell__PercentInput { display:none !important;}', 0);
document.addEventListener('click', function (event) {
if (event.target.matches('#grade-detail-tray--grade-input')) {
alert("Please use SpeedGrader to grade");
document.getElementById('grade-detail-tray--grade-input').disabled = true;
$('span:contains("Excused")').remove();
};
});
};
}
// SpeedGrader Hide
if (window.location.href.match('/gradebook/speed_grader?')) {
console.log("In SpeedGrader Page")
SpeedGraderCheck();
//Run script again when users use the dropdown to change to another student
var pushState = history.pushState;
history.pushState = function () {
pushState.apply(history, arguments);
SpeedGraderCheck();
console.log("URL Change");
};
};
function SpeedGraderCheck() {
var currentURL = window.location.href;
var courseID = currentURL.match(/\/courses\/(\d+)/g);
var asID_Reg = /(?:^|assignment_id)=(\d*?)(?:\D|$)/g;
var asID_Result = asID_Reg.exec(currentURL);
var assignment_id = asID_Result[1];
var checkExist = setInterval(function () {
if (window.location.href.indexOf('student_id=') > -1) {
clearInterval(checkExist);
var NewCurrentURL = window.location.href;
var stdID_Reg = /(?:^|student_id)=(\d*?)(?:\D|$)/g;
var stdID_Result = stdID_Reg.exec(NewCurrentURL);
var student_id = stdID_Result[1];
//Call API to check the submission status
$.get('/api/v1' + courseID + '/assignments/' + assignment_id + '/submissions/' + student_id, function (response) {
if (response['workflow_state'] == 'unsubmitted') {
//Call API to check whether the assignment require submission
$.get('/api/v1' + courseID + '/assignments/' + assignment_id, function (response) {
if (response['submission_types'][0] != 'none') {
console.log("No Submission")
$('#grading-box-extended').attr('style', 'display: none !important');
$("button[class='toggle_full_rubric edit btn']").attr('style', 'display: none !important');
} else {
console.log("No Submission Required")
}
})
};
});
}
}, 500);
};