mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
MDL-47637 core_grades: Outcomes must not be weighted when non aggregated
This commit is contained in:
parent
7a61e645c3
commit
6aeebc259a
3 changed files with 16 additions and 5 deletions
|
@ -698,9 +698,11 @@ class grade_edit_tree_column_weight extends grade_edit_tree_column {
|
||||||
}
|
}
|
||||||
$itemcell = parent::get_item_cell($item, $params);
|
$itemcell = parent::get_item_cell($item, $params);
|
||||||
$itemcell->text = ' ';
|
$itemcell->text = ' ';
|
||||||
|
$object = $params['element']['object'];
|
||||||
|
|
||||||
if (!in_array($params['element']['object']->itemtype, array('courseitem', 'categoryitem', 'category'))
|
if (!in_array($object->itemtype, array('courseitem', 'categoryitem', 'category'))
|
||||||
&& !in_array($params['element']['object']->gradetype, array(GRADE_TYPE_NONE, GRADE_TYPE_TEXT))) {
|
&& !in_array($object->gradetype, array(GRADE_TYPE_NONE, GRADE_TYPE_TEXT))
|
||||||
|
&& (!$object->is_outcome_item() || $object->load_parent_category()->aggregateoutcomes)) {
|
||||||
$itemcell->text = grade_edit_tree::get_weight_input($item);
|
$itemcell->text = grade_edit_tree::get_weight_input($item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -202,7 +202,7 @@ class edit_outcomeitem_form extends moodleform {
|
||||||
|
|
||||||
$parent_category->apply_forced_settings();
|
$parent_category->apply_forced_settings();
|
||||||
|
|
||||||
if (!$parent_category->is_aggregationcoef_used()) {
|
if (!$parent_category->is_aggregationcoef_used() || !$parent_category->aggregateoutcomes) {
|
||||||
if ($mform->elementExists('aggregationcoef')) {
|
if ($mform->elementExists('aggregationcoef')) {
|
||||||
$mform->removeElement('aggregationcoef');
|
$mform->removeElement('aggregationcoef');
|
||||||
}
|
}
|
||||||
|
@ -228,8 +228,11 @@ class edit_outcomeitem_form extends moodleform {
|
||||||
$mform->addHelpButton('aggregationcoef', $aggcoef, 'grades');
|
$mform->addHelpButton('aggregationcoef', $aggcoef, 'grades');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Remove fields used by natural weighting if the parent category is not using natural weighting.
|
|
||||||
if ($parent_category->aggregation != GRADE_AGGREGATE_SUM) {
|
// Remove the natural weighting fields for other aggregations,
|
||||||
|
// or when the category does not aggregate outcomes.
|
||||||
|
if ($parent_category->aggregation != GRADE_AGGREGATE_SUM ||
|
||||||
|
!$parent_category->aggregateoutcomes) {
|
||||||
if ($mform->elementExists('weightoverride')) {
|
if ($mform->elementExists('weightoverride')) {
|
||||||
$mform->removeElement('weightoverride');
|
$mform->removeElement('weightoverride');
|
||||||
}
|
}
|
||||||
|
|
|
@ -1436,6 +1436,9 @@ class grade_category extends grade_object {
|
||||||
if ($gradeitem->gradetype == GRADE_TYPE_NONE || $gradeitem->gradetype == GRADE_TYPE_TEXT) {
|
if ($gradeitem->gradetype == GRADE_TYPE_NONE || $gradeitem->gradetype == GRADE_TYPE_TEXT) {
|
||||||
// Text items and none items do not have a weight.
|
// Text items and none items do not have a weight.
|
||||||
continue;
|
continue;
|
||||||
|
} else if (!$this->aggregateoutcomes && $gradeitem->is_outcome_item()) {
|
||||||
|
// We will not aggregate outcome items, so we can ignore them.
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Record the ID and the weight for this grade item.
|
// Record the ID and the weight for this grade item.
|
||||||
|
@ -1506,6 +1509,9 @@ class grade_category extends grade_object {
|
||||||
// Text items and none items do not have a weight, no need to set their weight to
|
// Text items and none items do not have a weight, no need to set their weight to
|
||||||
// zero as they must never be used during aggregation.
|
// zero as they must never be used during aggregation.
|
||||||
continue;
|
continue;
|
||||||
|
} else if (!$this->aggregateoutcomes && $gradeitem->is_outcome_item()) {
|
||||||
|
// We will not aggregate outcome items, so we can ignore updating their weights.
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$gradeitem->weightoverride) {
|
if (!$gradeitem->weightoverride) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue