]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-14844 "Quiz Report: Bar Graph doesn't displayed maximum grade" Now using php...
authorjamiesensei <jamiesensei>
Fri, 16 May 2008 14:56:23 +0000 (14:56 +0000)
committerjamiesensei <jamiesensei>
Fri, 16 May 2008 14:56:23 +0000 (14:56 +0000)
mod/quiz/report/overview/overviewgraph.php
mod/quiz/report/reportlib.php

index 247a35d0ea89d8a39f14a0d308c48ac1e9bef0c2..37d266a62fc8dedb8ea03b7ee5fe85a9db7deefd 100644 (file)
@@ -45,21 +45,28 @@ while ($bands >= 20 || $bands < 10){
 }
 
 $bandwidth = $quiz->grade / $bands;
+$bands = ceil($bands);
 $bandlabels = array();
 for ($i=0;$i < $quiz->grade;$i += $bandwidth){
-    $bandlabels[] = number_format($i, $quiz->decimalpoints).' - '.number_format($i+$bandwidth, $quiz->decimalpoints);
+    $label = number_format($i, $quiz->decimalpoints).' - ';
+    if ($quiz->grade > $i+$bandwidth){
+        $label .= number_format($i+$bandwidth, $quiz->decimalpoints);
+    } else {
+        $label .= number_format($quiz->grade, $quiz->decimalpoints);
+    }
+    $bandlabels[] = $label;
 } 
 $line->x_data          = $bandlabels;
 
 $useridlist = join(',',array_keys(get_users_by_capability($modcontext, 'mod/quiz:attempt','','','','','','',false)));
-$line->y_data['allusers'] = quiz_report_grade_bands($bands, $quizid, $useridlist);
+$line->y_data['allusers'] = quiz_report_grade_bands($bandwidth, $bands, $quizid, $useridlist);
 if ($currentgroup){
     //only turn on legends if there is more than one set of bars
     $line->parameter['legend']        = 'outside-top';
     $line->parameter['legend_border'] = 'black';
     $line->parameter['legend_offset'] = 4;
     $useridingrouplist = join(',',array_keys(get_users_by_capability($modcontext, 'mod/quiz:attempt','','','','',$currentgroup,'',false)));
-    $line->y_data['groupusers'] = quiz_report_grade_bands($bands, $quizid, $useridingrouplist);
+    $line->y_data['groupusers'] = quiz_report_grade_bands($bandwidth, $bands, $quizid, $useridingrouplist);
     $line->y_format['groupusers'] =
         array('colour' => 'green', 'bar' => 'fill', 'shadow_offset' => 1, 'legend' => groups_get_group_name($currentgroup));
     $line->y_order = array('allusers', 'groupusers');
index 5d759d560b6c2641442de8d0c2d2abd726906d91..7bf9991fc2116a2727e973c700824f10a2d274df 100644 (file)
@@ -146,9 +146,9 @@ function quiz_report_qm_filter_subselect($quiz, $useridsql = 'u.id'){
     return $qmsubselect;
 }
 
-function quiz_report_grade_bands($bands, $quizid, $useridlist){
+function quiz_report_grade_bands($bandwidth, $bands, $quizid, $useridlist){
     $sql = "SELECT
-        FLOOR(qg.grade*$bands/q.grade) AS band,
+        FLOOR(qg.grade/$bandwidth) AS band,
         COUNT(1) AS num
     FROM
         mdl_quiz_grades qg,