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