diff --git a/mod/quiz/locallib.php b/mod/quiz/locallib.php index 1c24e8ccadc..32a5155e9e2 100644 --- a/mod/quiz/locallib.php +++ b/mod/quiz/locallib.php @@ -362,6 +362,10 @@ function quiz_feedback_for_grade($grade, $quiz, $context) { return ''; } + // With CBM etc, it is possible to get -ve grades, which would then not match + // any feedback. Therefore, we replace -ve grades with 0. + $grade = max($grade, 0); + $feedback = $DB->get_record_select('quiz_feedback', 'quizid = ? AND mingrade <= ? AND ? < maxgrade', array($quiz->id, $grade, $grade)); diff --git a/mod/quiz/report/reportlib.php b/mod/quiz/report/reportlib.php index 14a4be88bb0..d57676e735e 100644 --- a/mod/quiz/report/reportlib.php +++ b/mod/quiz/report/reportlib.php @@ -265,6 +265,10 @@ function quiz_report_feedback_for_grade($grade, $quizid, $context) { $feedbackcache[$quizid] = $DB->get_records('quiz_feedback', array('quizid' => $quizid)); } + // With CBM etc, it is possible to get -ve grades, which would then not match + // any feedback. Therefore, we replace -ve grades with 0. + $grade = max($grade, 0); + $feedbacks = $feedbackcache[$quizid]; $feedbackid = 0; $feedbacktext = '';