GRADE_AGGREGATE_MODE =>get_string('aggregatemode', 'grades'),
GRADE_AGGREGATE_WEIGHTED_MEAN =>get_string('aggregateweightedmean', 'grades'),
GRADE_AGGREGATE_EXTRACREDIT_MEAN=>get_string('aggregateextracreditmean', 'grades'));
-$temp->add(new admin_setting_configselect('aggregation', get_string('aggregation', 'grades'), get_string('aggregationhelp', 'grades'), -1, $options));
+$temp->add(new admin_setting_configselect('grade_aggregation', get_string('aggregation', 'grades'), get_string('aggregationhelp', 'grades'), -1, $options));
$options = array(-1 => $strnoforce, 0 => get_string('forceoff', 'grades'), 1 => get_string('forceon', 'grades'));
-$temp->add(new admin_setting_configselect('aggregateonlygraded', get_string('aggregateonlygraded', 'grades'),
+$temp->add(new admin_setting_configselect('grade_aggregateonlygraded', get_string('aggregateonlygraded', 'grades'),
get_string('aggregateonlygradedhelp', 'grades'), -1, $options));
-$temp->add(new admin_setting_configselect('aggregateoutcomes', get_string('aggregateoutcomes', 'grades'),
+$temp->add(new admin_setting_configselect('grade_aggregateoutcomes', get_string('aggregateoutcomes', 'grades'),
get_string('aggregateoutcomeshelp', 'grades'), -1, $options));
-$temp->add(new admin_setting_configselect('aggregatesubcats', get_string('aggregatesubcats', 'grades'),
+$temp->add(new admin_setting_configselect('grade_aggregatesubcats', get_string('aggregatesubcats', 'grades'),
get_string('aggregatesubcatshelp', 'grades'), -1, $options));
$options = array(-1 => $strnoforce, 0 => get_string('none'));
$options[$i] = $i;
}
-$temp->add(new admin_setting_configselect('keephigh', get_string('keephigh', 'grades'),
+$temp->add(new admin_setting_configselect('grade_keephigh', get_string('keephigh', 'grades'),
get_string('keephighhelp', 'grades'), -1, $options));
-$temp->add(new admin_setting_configselect('droplow', get_string('droplow', 'grades'),
+$temp->add(new admin_setting_configselect('grade_droplow', get_string('droplow', 'grades'),
get_string('droplowhelp', 'grades'), -1, $options));
$ADMIN->add('grades', $temp);
require_once $CFG->libdir.'/formslib.php';
class edit_category_form extends moodleform {
+ var $aggregation_types = array();
+ var $keepdrop_options = array();
+
function definition() {
global $CFG;
$mform =& $this->_form;
+ $this->aggregation_types = array(GRADE_AGGREGATE_MEAN =>get_string('aggregatemean', 'grades'),
+ GRADE_AGGREGATE_MEDIAN =>get_string('aggregatemedian', 'grades'),
+ GRADE_AGGREGATE_MIN =>get_string('aggregatemin', 'grades'),
+ GRADE_AGGREGATE_MAX =>get_string('aggregatemax', 'grades'),
+ GRADE_AGGREGATE_MODE =>get_string('aggregatemode', 'grades'),
+ GRADE_AGGREGATE_WEIGHTED_MEAN =>get_string('aggregateweightedmean', 'grades'),
+ GRADE_AGGREGATE_EXTRACREDIT_MEAN=>get_string('aggregateextracreditmean', 'grades'));
+
// visible elements
$mform->addElement('header', 'general', get_string('gradecategory', 'grades'));
$mform->addElement('text', 'fullname', get_string('categoryname', 'grades'));
- $options = array(GRADE_AGGREGATE_MEAN =>get_string('aggregatemean', 'grades'),
- GRADE_AGGREGATE_MEDIAN =>get_string('aggregatemedian', 'grades'),
- GRADE_AGGREGATE_MIN =>get_string('aggregatemin', 'grades'),
- GRADE_AGGREGATE_MAX =>get_string('aggregatemax', 'grades'),
- GRADE_AGGREGATE_MODE =>get_string('aggregatemode', 'grades'),
- GRADE_AGGREGATE_WEIGHTED_MEAN =>get_string('aggregateweightedmean', 'grades'),
- GRADE_AGGREGATE_EXTRACREDIT_MEAN=>get_string('aggregateextracreditmean', 'grades'));
+ if ($CFG->grade_aggregation == -1) {
- $mform->addElement('select', 'aggregation', get_string('aggregation', 'grades'), $options);
- $mform->setHelpButton('aggregation', array('aggregation', get_string('aggregation', 'grades'), 'grade'));
- $mform->setDefault('gradetype', GRADE_AGGREGATE_MEAN);
+ $mform->addElement('select', 'aggregation', get_string('aggregation', 'grades'), $this->aggregation_types);
+ $mform->setHelpButton('aggregation', array('aggregation', get_string('aggregation', 'grades'), 'grade'));
+ $mform->setDefault('aggregation', GRADE_AGGREGATE_MEAN);
+ } else {
+ $mform->addElement('static', 'aggregation', get_string('aggregation', 'grades'));
+ }
- $mform->addElement('advcheckbox', 'aggregateonlygraded', get_string('aggregateonlygraded', 'grades'));
- $mform->setHelpButton('aggregateonlygraded', array(false, get_string('aggregateonlygraded', 'grades'),
- false, true, false, get_string('aggregateonlygradedhelp', 'grades')));
+ if ($CFG->grade_aggregateonlygraded == -1) {
+ $mform->addElement('advcheckbox', 'aggregateonlygraded', get_string('aggregateonlygraded', 'grades'));
+ $mform->setHelpButton('aggregateonlygraded', array(false, get_string('aggregateonlygraded', 'grades'),
+ false, true, false, get_string('aggregateonlygradedhelp', 'grades')));
+ } else {
+ $mform->addElement('static', 'aggregateonlygraded', get_string('aggregateonlygraded', 'grades'));
+ }
- if (!empty($CFG->enableoutcomes)) {
+ if (!empty($CFG->enableoutcomes) && $CFG->grade_aggregateoutcomes == -1) {
$mform->addElement('advcheckbox', 'aggregateoutcomes', get_string('aggregateoutcomes', 'grades'));
$mform->setHelpButton('aggregateoutcomes', array(false, get_string('aggregateoutcomes', 'grades'),
false, true, false, get_string('aggregateoutcomeshelp', 'grades')));
+ } else {
+ $mform->addElement('static', 'aggregateoutcomes', get_string('aggregateoutcomes', 'grades'));
}
- $mform->addElement('advcheckbox', 'aggregatesubcats', get_string('aggregatesubcats', 'grades'));
- $mform->setHelpButton('aggregatesubcats', array(false, get_string('aggregatesubcats', 'grades'),
- false, true, false, get_string('aggregatesubcatshelp', 'grades')));
+ if ($CFG->grade_aggregatesubcats == -1) {
+ $mform->addElement('advcheckbox', 'aggregatesubcats', get_string('aggregatesubcats', 'grades'));
+ $mform->setHelpButton('aggregatesubcats', array(false, get_string('aggregatesubcats', 'grades'),
+ false, true, false, get_string('aggregatesubcatshelp', 'grades')));
+ } else {
+ $mform->addElement('static', 'aggregatesubcats', get_string('aggregatesubcats', 'grades'));
+ }
- $options = array();
- $options[0] = get_string('none');
+ $this->keepdrop_options = array();
+ $this->keepdrop_options[0] = get_string('none');
for ($i=1; $i<=20; $i++) {
- $options[$i] = $i;
+ $this->keepdrop_options[$i] = $i;
+ }
+
+ $keepdrop_present = 0;
+
+ if ($CFG->grade_keephigh == -1) {
+ $mform->addElement('select', 'keephigh', get_string('keephigh', 'grades'), $this->keepdrop_options);
+ $mform->setHelpButton('keephigh', array(false, get_string('keephigh', 'grades'),
+ false, true, false, get_string('keephighhelp', 'grades')));
+ $keepdrop_present++;
+ } else {
+ $mform->addElement('static', 'keephigh', get_string('keephigh', 'grades'));
+ }
+
+ if ($CFG->grade_droplow == -1) {
+ $mform->addElement('select', 'droplow', get_string('droplow', 'grades'), $options);
+ $mform->setHelpButton('droplow', array(false, get_string('droplow', 'grades'),
+ false, true, false, get_string('droplowhelp', 'grades')));
+ $mform->disabledIf('droplow', 'keephigh', 'noteq', 0);
+ $keepdrop_present++;
+ } else {
+ $mform->addElement('static', 'droplow', get_string('droplow', 'grades'));
}
- $mform->addElement('select', 'keephigh', get_string('keephigh', 'grades'), $options);
- $mform->setHelpButton('keephigh', array(false, get_string('keephigh', 'grades'),
- false, true, false, get_string('keephighhelp', 'grades')));
- $mform->disabledIf('keephigh', 'droplow', 'noteq', 0);
- $mform->addElement('select', 'droplow', get_string('droplow', 'grades'), $options);
- $mform->setHelpButton('droplow', array(false, get_string('droplow', 'grades'),
- false, true, false, get_string('droplowhelp', 'grades')));
- $mform->disabledIf('droplow', 'keephigh', 'noteq', 0);
+ if ($keepdrop_present == 2) {
+ $mform->disabledIf('keephigh', 'droplow', 'noteq', 0);
+ $mform->disabledIf('droplow', 'keephigh', 'noteq', 0);
+ }
// user preferences
$mform->addElement('header', 'general', get_string('userpreferences', 'grades'));
$mform =& $this->_form;
+ $checkbox_values = array(get_string('no'), get_string('yes'));
+
+ if ($CFG->grade_aggregation != -1) {
+ $agg_el =& $mform->getElement('aggregation');
+ $agg_el->setValue($this->aggregation_types[$CFG->grade_aggregation]);
+ }
+
+ if ($CFG->grade_aggregateonlygraded != -1) {
+ $agg_el =& $mform->getElement('aggregateonlygraded');
+ $agg_el->setValue($checkbox_values[$CFG->grade_aggregateonlygraded]);
+ }
+
+ if ($CFG->grade_aggregateoutcomes != -1) {
+ $agg_el =& $mform->getElement('aggregateoutcomes');
+ $agg_el->setValue($checkbox_values[$CFG->grade_aggregateoutcomes]);
+ }
+
+ if ($CFG->grade_aggregatesubcats != -1) {
+ $agg_el =& $mform->getElement('aggregatesubcats');
+ $agg_el->setValue($checkbox_values[$CFG->grade_aggregatesubcats]);
+ }
+
+ if ($CFG->grade_keephigh != -1) {
+ $agg_el =& $mform->getElement('keephigh');
+ $agg_el->setValue($this->keepdrop_options[$CFG->grade_keephigh]);
+ }
+
+ if ($CFG->grade_droplow != -1) {
+ $agg_el =& $mform->getElement('droplow');
+ $agg_el->setValue($this->keepdrop_options[$CFG->grade_droplow]);
+ }
+
if ($id = $mform->getElementValue('id')) {
$grade_category = grade_category::fetch(array('id'=>$id));
$grade_item = $grade_category->load_grade_item();