diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index 9a5abcefe79..e09824cc416 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -376,6 +376,26 @@ function quiz_grade_item_update($quiz, $grades=NULL) { $params['reset'] = true; $grades = NULL; } + + $gradebook_grades = grade_get_grades($quiz->course, 'mod', 'quiz', $quiz->id); + $grade_item = $gradebook_grades->items[0]; + if ($grade_item->locked) { + $confirm_regrade = optional_param('confirm_regrade', 0, PARAM_INT); + if (!$confirm_regrade) { + $message = get_string('gradeitemislocked', 'grades'); + $back_link = $CFG->wwwroot . '/mod/quiz/report.php?q=' . $quiz->id . '&mode=overview'; + $regrade_link = qualified_me() . '&confirm_regrade=1'; + print_box_start('generalbox', 'notice'); + echo '
'. $message .'
'; + echo ''; + print_box_end(); + + return GRADE_UPDATE_ITEM_LOCKED; + } + } return grade_update('mod/quiz', $quiz->course, 'mod', 'quiz', $quiz->id, 0, $grades, $params); }