diff --git a/grade/edit/tree/index.php b/grade/edit/tree/index.php
index fc03abca85e..56eedf06cd4 100644
--- a/grade/edit/tree/index.php
+++ b/grade/edit/tree/index.php
@@ -259,7 +259,7 @@ if ($data = data_submitted() and confirm_sesskey()) {
$recreatetree = true;
// Grade item text inputs
- } elseif (preg_match('/^(grademax|aggregationcoef|weight|multfactor|plusfactor)_([0-9]+)$/', $key, $matches)) {
+ } elseif (preg_match('/^(grademax|weight|multfactor|plusfactor)_([0-9]+)$/', $key, $matches)) {
$param = $matches[1];
$aid = $matches[2];
@@ -275,11 +275,16 @@ if ($data = data_submitted() and confirm_sesskey()) {
// Convert weight to aggregation coef2.
if ($param === 'weight') {
- $value = $value / 100.0;
- if (round($grade_item->aggregationcoef2, 4) != round($value, 4)) {
- $grade_item->weightoverride = 1;
+ $aggcoef = $grade_item->get_coefstring();
+ if ($aggcoef == 'aggregationcoefextraweightsum') {
+ $value = $value / 100.0;
+ if (round($grade_item->aggregationcoef2, 4) != round($value, 4)) {
+ $grade_item->weightoverride = 1;
+ }
+ $grade_item->aggregationcoef2 = $value;
+ } else if ($aggcoef == 'aggregationcoefweight') {
+ $grade_item->aggregationcoef = $value;
}
- $grade_item->aggregationcoef2 = $value;
} else {
$grade_item->$param = $value;
}
diff --git a/grade/edit/tree/lib.php b/grade/edit/tree/lib.php
index d0a38f6e664..0837e9cd41f 100644
--- a/grade/edit/tree/lib.php
+++ b/grade/edit/tree/lib.php
@@ -382,7 +382,7 @@ class grade_edit_tree {
($aggcoef == 'aggregationcoefextraweight' && $type == 'extra')) {
return ''.
- '';
} elseif (($aggcoef == 'aggregationcoefextrasum' || $aggcoef == 'aggregationcoefextraweightsum') && $type == 'extra') {
$checked = ($item->aggregationcoef > 0) ? 'checked="checked"' : '';
diff --git a/grade/tests/behat/grade_aggregation.feature b/grade/tests/behat/grade_aggregation.feature
index e1409bf6af2..15b7e718cc3 100644
--- a/grade/tests/behat/grade_aggregation.feature
+++ b/grade/tests/behat/grade_aggregation.feature
@@ -259,7 +259,7 @@ Feature: We can use calculated grade totals
| Exclude empty grades | 0 |
And I set the following settings for grade item "Test assignment six":
| Weight adjusted | 1 |
- | aggregationcoef2 | 0.5 |
+ | aggregationcoef2 | 50 |
And I set the following settings for grade item "Test assignment three":
| Extra credit | 1 |
And I turn editing mode off