MDL-30033 quiz overall feedback not show for attempts with a -ve grade
authorTim Hunt <T.J.Hunt@open.ac.uk>
Wed, 18 Jan 2012 17:32:00 +0000 (17:32 +0000)
committerTim Hunt <T.J.Hunt@open.ac.uk>
Fri, 20 Jan 2012 17:12:43 +0000 (17:12 +0000)
This can happen, for example, if a student does really badly on a CBM quiz.

mod/quiz/locallib.php
mod/quiz/report/reportlib.php

index e47522d..63d82b6 100644 (file)
@@ -353,6 +353,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));
 
index 53fa2b6..8154d4d 100644 (file)
@@ -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 = '';