MDL-47637 core_grades: Outcomes must not be weighted when non aggregated

This commit is contained in:
Frederic Massart 2014-10-15 15:49:55 +08:00
parent 7a61e645c3
commit 6aeebc259a
3 changed files with 16 additions and 5 deletions

View file

@ -698,9 +698,11 @@ class grade_edit_tree_column_weight extends grade_edit_tree_column {
}
$itemcell = parent::get_item_cell($item, $params);
$itemcell->text = ' ';
$object = $params['element']['object'];
if (!in_array($params['element']['object']->itemtype, array('courseitem', 'categoryitem', 'category'))
&& !in_array($params['element']['object']->gradetype, array(GRADE_TYPE_NONE, GRADE_TYPE_TEXT))) {
if (!in_array($object->itemtype, array('courseitem', 'categoryitem', 'category'))
&& !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);
}

View file

@ -202,7 +202,7 @@ class edit_outcomeitem_form extends moodleform {
$parent_category->apply_forced_settings();
if (!$parent_category->is_aggregationcoef_used()) {
if (!$parent_category->is_aggregationcoef_used() || !$parent_category->aggregateoutcomes) {
if ($mform->elementExists('aggregationcoef')) {
$mform->removeElement('aggregationcoef');
}
@ -228,8 +228,11 @@ class edit_outcomeitem_form extends moodleform {
$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')) {
$mform->removeElement('weightoverride');
}