Merge branch 'wip-MDL-47676-master' of git://github.com/abgreeve/moodle
authorDan Poltawski <dan@moodle.com>
Fri, 24 Oct 2014 13:30:44 +0000 (14:30 +0100)
committerDan Poltawski <dan@moodle.com>
Fri, 24 Oct 2014 13:30:44 +0000 (14:30 +0100)
grade/tests/behat/grade_natural_normalisation.feature
lib/grade/grade_category.php

index 94f1cf3..860a7b0 100644 (file)
@@ -255,5 +255,14 @@ Feature: We can use natural aggregation and weights will be normalised to a tota
   And I set the field "Override weight of Test assignment six" to "1"
   And I set the field "Weight of Test assignment six" to "-25"
   And I press "Save changes"
-  Then the field "Weight of Test assignment six" matches value "0.0"
+  And the field "Weight of Test assignment six" matches value "0.0"
   And the field "Weight of Test assignment seven" matches value "100.0"
+  And I follow "Reset weights of Sub category 1"
+  And I set the field "Override weight of Test assignment five" to "1"
+  And I set the field "Override weight of Test assignment six" to "1"
+  And I set the field "Weight of Test assignment five" to "-10"
+  And I set the field "Weight of Test assignment six" to "120"
+  And I press "Save changes"
+  And the field "Weight of Test assignment five" matches value "0.0"
+  And the field "Weight of Test assignment six" matches value "100.0"
+  And the field "Weight of Test assignment seven" matches value "0.0"
index 1b0e734..21e496b 100644 (file)
@@ -1499,7 +1499,9 @@ class grade_category extends grade_object {
             if (!$gradeitemdetail['extracredit']) {
                 $normalisetotal += $gradeitemdetail['weight'];
             }
-            if ($gradeitemdetail['weightoverride'] && !$gradeitemdetail['extracredit']) {
+            // The overridden total comprises of items that are set as overridden, that aren't extra credit and have a value
+            // greater than zero.
+            if ($gradeitemdetail['weightoverride'] && !$gradeitemdetail['extracredit'] && $gradeitemdetail['weight'] > 0) {
                 // Add overriden weights up to see if they are greater than 1.
                 $overriddentotal += $gradeitemdetail['weight'];
             }