MDL-54666 modedit: use default values when modgrade element is frozen
authorMarina Glancy <marina@moodle.com>
Sat, 21 May 2016 04:37:30 +0000 (12:37 +0800)
committerMarina Glancy <marina@moodle.com>
Sat, 21 May 2016 04:37:46 +0000 (12:37 +0800)
lib/form/modgrade.php

index e6cdc73..b33f437 100644 (file)
@@ -465,10 +465,12 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group {
                         '[modgrade_rescalegrades]', 'eq', '');
 
                 // A constant value should be given as an int.
-                // The default value should be an int and should really be $CFG->gradepointdefault.
+                // The default value should be an int and be either $CFG->gradepointdefault or whatever was set in set_data().
                 $value = $this->_findValue($caller->_constantValues);
                 if (null === $value) {
-                    if ($caller->isSubmitted()) {
+                    if ($caller->isSubmitted() && $this->_findValue($caller->_submitValues) !== null) {
+                        // Submitted values are array, one value for each individual element in this group.
+                        // When there is submitted data let parent::onQuickFormEvent() process it.
                         break;
                     }
                     $value = $this->_findValue($caller->_defaultValues);