From 94b2dbb9b5e0da5efddf9eb496865d5fb2fe3d89 Mon Sep 17 00:00:00 2001 From: Jody Steele Date: Wed, 16 Oct 2013 11:19:34 -0400 Subject: [PATCH] MDL-38628 mod_assign: Allow a user to specify "No Grade" when grading an assignment submission --- mod/assign/gradeform.php | 2 +- mod/assign/locallib.php | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/mod/assign/gradeform.php b/mod/assign/gradeform.php index bff82defe10..751d220b2cb 100644 --- a/mod/assign/gradeform.php +++ b/mod/assign/gradeform.php @@ -94,7 +94,7 @@ class mod_assign_grade_form extends moodleform { // This is a scale. if ($scale = $DB->get_record('scale', array('id'=>-($instance->grade)))) { $scaleoptions = make_menu_from_list($scale->scale); - if (!array_key_exists((int)$data['grade'], $scaleoptions)) { + if ((int)$data['grade'] !== -1 && !array_key_exists((int)$data['grade'], $scaleoptions)) { $errors['grade'] = get_string('invalidgradeforscale', 'assign'); } } diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index 4f90befccac..50d8d6639c5 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -3642,6 +3642,10 @@ class assign { if ($grade->grade >= 0) { $gradebookgrade['rawgrade'] = $grade->grade; } + // Allow "no grade" to be chosen. + if ($grade->grade == -1) { + $gradebookgrade['rawgrade'] = NULL; + } $gradebookgrade['userid'] = $grade->userid; $gradebookgrade['usermodified'] = $grade->grader; $gradebookgrade['datesubmitted'] = null; @@ -5046,8 +5050,8 @@ class assign { $mform->addHelpButton('gradedisabled', 'gradeoutofhelp', 'assign'); } } else { - $grademenu = make_grades_menu($this->get_instance()->grade); - if (count($grademenu) > 0) { + $grademenu = array(-1 => get_string("nograde")) + make_grades_menu($this->get_instance()->grade); + if (count($grademenu) > 1) { $gradingelement = $mform->addElement('select', 'grade', get_string('grade') . ':', $grademenu); // The grade is already formatted with format_float so it needs to be converted back to an integer.