$mform->addElement('advcheckbox', 'weightoverride', get_string('adjustedweight', 'grades'));
$mform->addHelpButton('weightoverride', 'weightoverride', 'grades');
+ $mform->disabledIf('weightoverride', 'gradetype', 'eq', GRADE_TYPE_NONE);
+ $mform->disabledIf('weightoverride', 'gradetype', 'eq', GRADE_TYPE_TEXT);
$mform->addElement('text', 'aggregationcoef2', get_string('weight', 'grades'));
$mform->addHelpButton('aggregationcoef2', 'weight', 'grades');
$mform->setType('aggregationcoef2', PARAM_RAW);
$mform->disabledIf('aggregationcoef2', 'weightoverride');
+ $mform->disabledIf('aggregationcoef2', 'gradetype', 'eq', GRADE_TYPE_NONE);
+ $mform->disabledIf('aggregationcoef2', 'gradetype', 'eq', GRADE_TYPE_TEXT);
$options = array();
$coefstring = '';
}
$mform->addHelpButton('aggregationcoef', $coefstring, 'grades');
}
-
+ $mform->disabledIf('aggregationcoef', 'gradetype', 'eq', GRADE_TYPE_NONE);
+ $mform->disabledIf('aggregationcoef', 'gradetype', 'eq', GRADE_TYPE_TEXT);
$mform->disabledIf('aggregationcoef', 'parentcategory', 'eq', $parent_category->id);
}
$itemcell = parent::get_item_cell($item, $params);
$itemcell->text = ' ';
- if (!in_array($params['element']['object']->itemtype, array('courseitem', 'categoryitem', 'category'))) {
+ if (!in_array($params['element']['object']->itemtype, array('courseitem', 'categoryitem', 'category'))
+ && !in_array($params['element']['object']->gradetype, array(GRADE_TYPE_NONE, GRADE_TYPE_TEXT))) {
$itemcell->text = grade_edit_tree::get_weight_input($item);
}
$gradeitem = $child['object']->load_grade_item();
}
+ if ($gradeitem->gradetype == GRADE_TYPE_NONE || $gradeitem->gradetype == GRADE_TYPE_TEXT) {
+ // Text items and none items do not have a weight.
+ continue;
+ }
+
// Record the ID and the weight for this grade item.
$overridearray[$gradeitem->id] = array();
$overridearray[$gradeitem->id]['extracredit'] = intval($gradeitem->aggregationcoef);
$gradeitem = $child['object']->load_grade_item();
}
+ if ($gradeitem->gradetype == GRADE_TYPE_NONE || $gradeitem->gradetype == GRADE_TYPE_TEXT) {
+ // 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.
+ continue;
+ }
+
if (!$gradeitem->weightoverride) {
// Calculations with a grade maximum of zero will cause problems. Just set the weight to zero.
if ($totaloverriddenweight >= 1 || $totalnonoverriddengrademax == 0 || $gradeitem->grademax == 0) {