From 28c955150e4cb44bd6a33a3767baec6db7cce679 Mon Sep 17 00:00:00 2001 From: nicolasconnault Date: Mon, 30 Jul 2007 07:12:33 +0000 Subject: [PATCH] MDL-10210 Re-organised the gradebook preferences, and now displaying site defaults inside the dropdown menus instead of the labels. --- grade/report/grader/preferences_form.php | 284 ++++++++++++++++--------------- lang/en_utf8/grades.php | 5 + 2 files changed, 153 insertions(+), 136 deletions(-) rewrite grade/report/grader/preferences_form.php (76%) diff --git a/grade/report/grader/preferences_form.php b/grade/report/grader/preferences_form.php dissimilarity index 76% index 8a53f2afb..950b37c16 100644 --- a/grade/report/grader/preferences_form.php +++ b/grade/report/grader/preferences_form.php @@ -1,136 +1,148 @@ -libdir.'/formslib.php'); - -/** - * First implementation of the preferences in the form of a moodleform. - * TODO add "reset to site defaults" button - * TODO show site defaults near each setting - */ -class grader_report_preferences_form extends moodleform { - - function definition() { - global $USER, $CFG; - - $mform =& $this->_form; - $course = $this->_customdata['course']; - - $systemcontext = get_context_instance(CONTEXT_SYSTEM); - - $strgradeboundary = get_string('gradeboundary', 'grades'); - $strconfiggradeboundary = get_string('configgradeboundary', 'grades'); - $strgradeletter = get_string('gradeletter', 'grades'); - $strconfiggradeletter = get_string('configgradeletter', 'grades'); - $strdefault = get_string('default', 'grades'); - $strinherit = get_string('inherit', 'grades'); - $stryes = get_string('yes'); - $strno = get_string('no'); - - $percentages = array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, - GRADE_REPORT_PREFERENCE_UNUSED => get_string('unused', 'grades')); - for ($i=100; $i > -1; $i--) { - $percentages[$i] = "$i%"; - } - - $checkbox_default = array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, 0 => $strno, 1 => $stryes); - -/// form definition with preferences defaults -//-------------------------------------------------------------------------------- - $preferences = array('bulkcheckboxes' => $checkbox_default, - 'enableajax' => $checkbox_default, - 'showcalculations' => $checkbox_default, - 'showeyecons' => $checkbox_default, - 'showaverages' => $checkbox_default, - 'showgroups' => $checkbox_default, - 'showlocks' => $checkbox_default, - 'showranges' => $checkbox_default, - 'quickgrading' => $checkbox_default, - 'quickfeedback' => $checkbox_default, - 'showuserimage' => $checkbox_default, - 'meanselection' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, - GRADE_AGGREGATE_MEAN_ALL => get_string('meanall', 'grades'), - GRADE_AGGREGATE_MEAN_GRADED => get_string('meangraded', 'grades')), - 'aggregationposition' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, - GRADE_REPORT_AGGREGATION_POSITION_LEFT => get_string('left', 'grades'), - GRADE_REPORT_AGGREGATION_POSITION_RIGHT => get_string('right', 'grades')), - 'aggregationview' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, - GRADE_REPORT_AGGREGATION_VIEW_FULL => get_string('full', 'grades'), - GRADE_REPORT_AGGREGATION_VIEW_COMPACT => get_string('compact', 'grades')), - 'gradedisplaytype' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, - GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'), - GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'), - GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades')), - 'averagesdisplaytype' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, - GRADE_REPORT_PREFERENCE_INHERIT => $strinherit, - GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'), - GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'), - GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades')), - 'rangesdisplaytype' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, - GRADE_REPORT_PREFERENCE_INHERIT => $strinherit, - GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'), - GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'), - GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades')), - 'averagesdecimalpoints' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, - GRADE_REPORT_PREFERENCE_INHERIT => $strinherit, - 0, 1, 2, 3, 4, 5), - 'rangesdecimalpoints' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, - GRADE_REPORT_PREFERENCE_INHERIT => $strinherit, - 0, 1, 2, 3, 4, 5), - 'decimalpoints' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, - 0, 1, 2, 3, 4, 5), - 'studentsperpage' => 'text'); - - for ($i = 1; $i <= 10; $i++) { - $preferences['gradeboundary' . $i] = $percentages; - $preferences['gradeletter' . $i] = 'text'; - } - - foreach ($preferences as $pref => $type) { - if (preg_match('/([^[0-9]+)([0-9]+)/', $pref, $matches)) { - $lang_string = $matches[1]; - $number = ' ' . $matches[2]; - } else { - $lang_string = $pref; - $number = null; - } - - $full_pref = 'grade_report_' . $pref; - - $pref_value = get_user_preferences($full_pref); - - $options = null; - if (is_array($type)) { - $options = $type; - $type = 'select'; - $default = $options[$CFG->$full_pref]; - } else { - $default = $CFG->$full_pref; - } - $default_label = get_string($lang_string, 'grades') . $number . ' (' . $strdefault . ': ' . $default . ')'; - - $mform->addElement($type, $full_pref, $default_label, $options); - $mform->setHelpButton($full_pref, array(false, get_string($lang_string, 'grades'), false, true, false, - get_string("config$lang_string", 'grades'))); - $mform->setDefault($full_pref, $pref_value); - $mform->setType($full_pref, PARAM_ALPHANUM); - } - - $mform->addElement('hidden', 'id'); - $mform->setType('id', PARAM_INT); - $mform->setDefault('id', $course->id); - - $this->add_action_buttons(); - } - - -/// perform some extra moodle validation - function validation($data){ - $errors= array(); - if (0 == count($errors)){ - return true; - } else { - return $errors; - } - } -} -?> +libdir.'/formslib.php'); + +/** + * First implementation of the preferences in the form of a moodleform. + * TODO add "reset to site defaults" button + * TODO show site defaults near each setting + */ +class grader_report_preferences_form extends moodleform { + + function definition() { + global $USER, $CFG; + + $mform =& $this->_form; + $course = $this->_customdata['course']; + + $systemcontext = get_context_instance(CONTEXT_SYSTEM); + + $strgradeboundary = get_string('gradeboundary', 'grades'); + $strconfiggradeboundary = get_string('configgradeboundary', 'grades'); + $strgradeletter = get_string('gradeletter', 'grades'); + $strconfiggradeletter = get_string('configgradeletter', 'grades'); + $strinherit = get_string('inherit', 'grades'); + $stryes = get_string('yes'); + $strno = get_string('no'); + + $percentages = array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', + GRADE_REPORT_PREFERENCE_UNUSED => get_string('unused', 'grades')); + for ($i=100; $i > -1; $i--) { + $percentages[$i] = "$i%"; + } + + $checkbox_default = array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', 0 => $strno, 1 => $stryes); + +/// form definition with preferences defaults +//-------------------------------------------------------------------------------- + $preferences = array(); + $preferences['prefgeneral'] = array( + 'studentsperpage' => 'text', + 'quickgrading' => $checkbox_default, + 'quickfeedback' => $checkbox_default, + 'decimalpoints' => array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', 0, 1, 2, 3, 4, 5), + 'aggregationposition' => array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', + GRADE_REPORT_AGGREGATION_POSITION_LEFT => get_string('left', 'grades'), + GRADE_REPORT_AGGREGATION_POSITION_RIGHT => get_string('right', 'grades')), + 'aggregationview' => array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', + GRADE_REPORT_AGGREGATION_VIEW_FULL => get_string('full', 'grades'), + GRADE_REPORT_AGGREGATION_VIEW_COMPACT => get_string('compact', 'grades')), + 'gradedisplaytype' => array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', + GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'), + GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'), + GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades')), + 'meanselection' => array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', + GRADE_AGGREGATE_MEAN_ALL => get_string('meanall', 'grades'), + GRADE_AGGREGATE_MEAN_GRADED => get_string('meangraded', 'grades')), + 'enableajax' => $checkbox_default); + + $preferences['prefshow'] = array('showcalculations' => $checkbox_default, + 'showeyecons' => $checkbox_default, + 'showaverages' => $checkbox_default, + 'showgroups' => $checkbox_default, + 'showlocks' => $checkbox_default, + 'showranges' => $checkbox_default, + 'showuserimage' => $checkbox_default,); + + $preferences['prefrows'] = array( + 'averagesdisplaytype' => array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', + GRADE_REPORT_PREFERENCE_INHERIT => $strinherit, + GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'), + GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'), + GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades')), + 'rangesdisplaytype' => array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', + GRADE_REPORT_PREFERENCE_INHERIT => $strinherit, + GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'), + GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'), + GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades')), + 'averagesdecimalpoints' => array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', + GRADE_REPORT_PREFERENCE_INHERIT => $strinherit, 0, 1, 2, 3, 4, 5), + 'rangesdecimalpoints' => array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', + GRADE_REPORT_PREFERENCE_INHERIT => $strinherit, 0, 1, 2, 3, 4, 5)); + + + for ($i = 1; $i <= 10; $i++) { + $preferences['prefletters']['gradeboundary' . $i] = $percentages; + $preferences['prefletters']['gradeletter' . $i] = 'text'; + } + + foreach ($preferences as $group => $prefs) { + $mform->addElement('header', $group, get_string($group, 'grades')); + + foreach ($prefs as $pref => $type) { + // Detect and process dynamically numbered preferences + if (preg_match('/([^[0-9]+)([0-9]+)/', $pref, $matches)) { + $lang_string = $matches[1]; + $number = ' ' . $matches[2]; + } else { + $lang_string = $pref; + $number = null; + } + + $full_pref = 'grade_report_' . $pref; + + $pref_value = get_user_preferences($full_pref); + + $options = null; + if (is_array($type)) { + $options = $type; + $type = 'select'; + $default = $options[$CFG->$full_pref]; + } else { + $default = $CFG->$full_pref; + } + + // Replace the 'default' value with the site default language string + if (!is_null($options) AND $options[GRADE_REPORT_PREFERENCE_DEFAULT] == 'default') { + $options[GRADE_REPORT_PREFERENCE_DEFAULT] = get_string('sitedefault', 'grades', $default); + } + + $label = get_string($lang_string, 'grades') . $number; + + $mform->addElement($type, $full_pref, $label, $options); + $mform->setHelpButton($full_pref, array(false, get_string($lang_string, 'grades'), false, true, false, + get_string("config$lang_string", 'grades'))); + $mform->setDefault($full_pref, $pref_value); + $mform->setType($full_pref, PARAM_ALPHANUM); + } + } + + $mform->addElement('hidden', 'id'); + $mform->setType('id', PARAM_INT); + $mform->setDefault('id', $course->id); + + $this->add_action_buttons(); + } + + +/// perform some extra moodle validation + function validation($data){ + $errors= array(); + if (0 == count($errors)){ + return true; + } else { + return $errors; + } + } +} +?> diff --git a/lang/en_utf8/grades.php b/lang/en_utf8/grades.php index a0bc9a760..6e006812e 100644 --- a/lang/en_utf8/grades.php +++ b/lang/en_utf8/grades.php @@ -235,6 +235,10 @@ $string['points'] = 'points'; $string['pointsascending'] = 'Sort by points ascending'; $string['pointsdescending'] = 'Sort by points descdending'; $string['preferences'] = 'Preferences'; +$string['prefgeneral'] = 'General'; +$string['prefletters'] = 'Grade letters and boundaries'; +$string['prefrows'] = 'Special rows'; +$string['prefshow'] = 'Show/hide toggles'; $string['quickfeedback'] = 'Quick Feedback'; $string['quickgrading'] = 'Quick Grading'; $string['range'] = 'Range'; @@ -270,6 +274,7 @@ $string['showhiddenitems'] = 'Show Hidden Items'; $string['showlocks'] = 'Show locks'; $string['showranges'] = 'Show ranges'; $string['showuserimage'] = 'Show user profile images'; +$string['sitedefault'] = 'Site default ($a)'; $string['sitewide'] = 'Site-wide'; $string['sort'] = 'sort'; $string['sortasc'] = 'Sort in ascending order'; -- 2.11.4.GIT