]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-10524 minor simplification of median aggregation + fixed aggregation names in...
authorskodak <skodak>
Fri, 20 Jul 2007 13:54:58 +0000 (13:54 +0000)
committerskodak <skodak>
Fri, 20 Jul 2007 13:54:58 +0000 (13:54 +0000)
lang/en_utf8/grades.php
lib/grade/grade_category.php

index 1cb217cdfd835d1d43e93b2129c7e948d5af8d0e..b8b541fcd9d90590c44960d55c18e7ad93d82d60 100644 (file)
@@ -10,11 +10,11 @@ $string['additem'] = 'Add Grade Item';
 $string['aggregateextracreditmeanall'] = 'Mean of all grades (extra credits)';
 $string['aggregateextracreditmeangraded'] = 'Mean of non-empty grades (extra credits)';
 $string['aggregatemeanall'] = 'Mean of all grades';
-$string['aggregatemedian'] = 'Median of all grades';
+$string['aggregatemedian'] = 'Median of non-empty grades';
 $string['aggregatemeangraded'] = 'Mean of non-empty grades';
 $string['aggregatemin'] = 'Smallest grade';
 $string['aggregatemax'] = 'Highest grade';
-$string['aggregatemode'] = 'Mode of all grades';
+$string['aggregatemode'] = 'Mode of non-empty grades';
 $string['aggregateweightedmeanall'] = 'Weighted mean of all grades';
 $string['aggregateweightedmeangraded'] = 'Weighted mean of non-empty grades';
 $string['aggregation'] = 'Aggregation';
index 3a62f8e736cbb0b4f31dafccc14819095e6aa1a9..436b44266b09d16f819641e1feddbf0a58553d0c 100644 (file)
@@ -452,18 +452,11 @@ class grade_category extends grade_object {
         switch ($this->aggregation) {
             case GRADE_AGGREGATE_MEDIAN: // Middle point value in the set: ignores frequencies
                 $num = count($grade_values);
-                // re-index grade_values array
-                $sorted_values = $grade_values;
-                sort($sorted_values);
-                $halfpoint = intval($num / 2);
-                if ($num == 0) {
-                    $rawgrade = null;
-                } elseif ($num == 1) {
-                    $rawgrade = reset($sorted_values);
-                } else if($num % 2 == 0) {
-                    $rawgrade = ($sorted_values[ceil($halfpoint)] + $sorted_values[floor($halfpoint)]) / 2;
+                $grades = array_values($grade_values);
+                if ($num % 2 == 0) {
+                    $rawgrade = ($grades[intval($num/2)-1] + $grades[intval($num/2)]) / 2;
                 } else {
-                    $rawgrade = $sorted_values[$halfpoint];
+                    $rawgrade = $grades[intval(($num/2)-0.5)];
                 }
                 break;