From a69e733573936fa64ddf98be6bfd8a19654496ae Mon Sep 17 00:00:00 2001 From: nicolasconnault Date: Fri, 6 Jul 2007 08:23:17 +0000 Subject: [PATCH] MDL-10364 Added the showcalculations preference and re-factored preferences_form.php (much, much smaller now!) --- grade/report/grader/preferences_form.php | 144 +++++------------------ grade/report/grader/settings.php | 2 + lang/en_utf8/grades.php | 2 + lib/grade/grade_tree.php | 16 ++- version.php | 2 +- 5 files changed, 50 insertions(+), 116 deletions(-) diff --git a/grade/report/grader/preferences_form.php b/grade/report/grader/preferences_form.php index 0274be4f69..44e56b4e05 100644 --- a/grade/report/grader/preferences_form.php +++ b/grade/report/grader/preferences_form.php @@ -20,118 +20,38 @@ class grader_report_preferences_form extends moodleform { /// form definition with preferences defaults //-------------------------------------------------------------------------------- - $prefs = new stdClass(); - $prefs->aggregationposition = get_user_preferences('grade_report_aggregationposition', $CFG->grade_report_aggregationposition); - $prefs->aggregationview = get_user_preferences('grade_report_aggregationview', $CFG->grade_report_aggregationview); - $prefs->bulkcheckboxes = get_user_preferences('grade_report_bulkcheckboxes', $CFG->grade_report_bulkcheckboxes); - $prefs->enableajax = get_user_preferences('grade_report_enableajax', $CFG->grade_report_enableajax); - $prefs->gradedisplaytype = get_user_preferences('grade_report_gradedisplaytype', $CFG->grade_report_gradedisplaytype); - $prefs->grandtotalsdisplaytype = get_user_preferences('grade_report_grandtotalsdisplaytype', $CFG->grade_report_grandtotalsdisplaytype); - $prefs->showeyecons = get_user_preferences('grade_report_showeyecons', $CFG->grade_report_showeyecons); - $prefs->showgroups = get_user_preferences('grade_report_showgroups', $CFG->grade_report_showgroups); - $prefs->showlocks = get_user_preferences('grade_report_showlocks', $CFG->grade_report_showlocks); - $prefs->shownotes = get_user_preferences('grade_report_shownotes', $CFG->grade_report_shownotes); - $prefs->showscales = get_user_preferences('grade_report_showscales', $CFG->grade_report_showscales); - $prefs->showgrandtotals = get_user_preferences('grade_report_showgrandtotals', $CFG->grade_report_showgrandtotals); - $prefs->studentsperpage = get_user_preferences('grade_report_studentsperpage', $CFG->grade_report_studentsperpage); - $prefs->feedbackformat = get_user_preferences('grade_report_feedbackformat', $CFG->grade_report_feedbackformat); - $prefs->decimalpoints = get_user_preferences('grade_report_decimalpoints', $CFG->grade_report_decimalpoints); - - $mform->addElement('text','grade_report_studentsperpage', get_string('studentsperpage', 'grades')); - $mform->setHelpButton('grade_report_studentsperpage', array(false, get_string('studentsperpage', 'grades'), false, true, - false, get_string('configstudentsperpage', 'grades'))); - $mform->setDefault('grade_report_studentsperpage', $prefs->studentsperpage); - $mform->setType('grade_report_studentsperpage', PARAM_INT); - - $mform->addElement('select','grade_report_aggregationposition', get_string('aggregationposition', 'grades'), - array(get_string('left', 'grades'), get_string('right', 'grades'))); - $mform->setHelpButton('grade_report_aggregationposition', array(false, get_string('aggregationposition', 'grades'), false, true, - false, get_string('configaggregationposition', 'grades'))); - $mform->setDefault('grade_report_aggregationposition', $prefs->aggregationposition); - $mform->setType('grade_report_aggregationposition', PARAM_INT); - - $mform->addElement('select','grade_report_aggregationview', get_string('aggregationview', 'grades'), - array(get_string('full', 'grades'), get_string('compact', 'grades'))); - $mform->setHelpButton('grade_report_aggregationview', array(false, get_string('aggregationview', 'grades'), false, true, - false, get_string('configaggregationview', 'grades'))); - $mform->setDefault('grade_report_aggregationview', $prefs->aggregationview); - $mform->setType('grade_report_aggregationview', PARAM_INT); - - $mform->addElement('select','grade_report_gradedisplaytype', get_string('gradedisplaytype', 'grades'), - array(get_string('raw', 'grades'), get_string('percentage', 'grades'))); - $mform->setHelpButton('grade_report_gradedisplaytype', array(false, get_string('gradedisplaytype', 'grades'), false, true, - false, get_string('configgradedisplaytype', 'grades'))); - $mform->setDefault('grade_report_gradedisplaytype', $prefs->gradedisplaytype); - $mform->setType('grade_report_gradedisplaytype', PARAM_INT); - - $mform->addElement('select','grade_report_grandtotalsdisplaytype', get_string('grandtotalsdisplaytype', 'grades'), - array(get_string('raw', 'grades'), get_string('percentage', 'grades'))); - $mform->setHelpButton('grade_report_grandtotalsdisplaytype', array(false, get_string('grandtotalsdisplaytype', 'grades'), false, true, - false, get_string('configgrandtotalsdisplaytype', 'grades'))); - $mform->setDefault('grade_report_grandtotalsdisplaytype', $prefs->grandtotalsdisplaytype); - $mform->setType('grade_report_grandtotalsdisplaytype', PARAM_INT); - - $mform->addElement('select','grade_report_feedbackformat', get_string('feedbackformat', 'grades'), - array(get_string('text', 'grades'), get_string('html', 'grades'))); - $mform->setHelpButton('grade_report_feedbackformat', array(false, get_string('feedbackformat', 'grades'), false, true, - false, get_string('configfeedbackformat', 'grades'))); - $mform->setDefault('grade_report_feedbackformat', $prefs->feedbackformat); - $mform->setType('grade_report_feedbackformat', PARAM_INT); - - $mform->addElement('select','grade_report_decimalpoints', get_string('decimalpoints', 'grades'), - array(0, 1, 2, 3, 4, 5)); - $mform->setHelpButton('grade_report_decimalpoints', array(false, get_string('decimalpoints', 'grades'), false, true, - false, get_string('configdecimalpoints', 'grades'))); - $mform->setDefault('grade_report_decimalpoints', $prefs->decimalpoints); - $mform->setType('grade_report_decimalpoints', PARAM_INT); - - $mform->addElement('checkbox', 'grade_report_bulkcheckboxes', get_string('bulkcheckboxes', 'grades')); - $mform->setHelpButton('grade_report_bulkcheckboxes', array(false, get_string('bulkcheckboxes', 'grades'), false, true, - false, get_string('configbulkcheckboxes', 'grades'))); - $mform->setDefault('grade_report_bulkcheckboxes', $prefs->bulkcheckboxes); - $mform->setType('grade_report_bulkcheckboxes', PARAM_INT); - - $mform->addElement('checkbox', 'grade_report_enableajax', get_string('enableajax', 'grades')); - $mform->setHelpButton('grade_report_enableajax', array(false, get_string('enableajax', 'grades'), false, true, - false, get_string('configenableajax', 'grades'))); - $mform->setDefault('grade_report_enableajax', $prefs->enableajax); - $mform->setType('grade_report_enableajax', PARAM_INT); - - $mform->addElement('checkbox', 'grade_report_showeyecons', get_string('showeyecons', 'grades')); - $mform->setHelpButton('grade_report_showeyecons', array(false, get_string('showeyecons', 'grades'), false, true, - false, get_string('configshoweyecons', 'grades'))); - $mform->setDefault('grade_report_showeyecons', $prefs->showeyecons); - $mform->setType('grade_report_showeyecons', PARAM_INT); - - $mform->addElement('checkbox', 'grade_report_showgroups', get_string('showgroups', 'grades')); - $mform->setHelpButton('grade_report_showgroups', array(false, get_string('showgroups', 'grades'), false, true, - false, get_string('configshowgroups', 'grades'))); - $mform->setDefault('grade_report_showgroups', $prefs->showgroups); - $mform->setType('grade_report_showgroups', PARAM_INT); - - $mform->addElement('checkbox', 'grade_report_showlocks', get_string('showlocks', 'grades')); - $mform->setHelpButton('grade_report_showlocks', array(false, get_string('showlocks', 'grades'), false, true, - false, get_string('configshowlocks', 'grades'))); - $mform->setDefault('grade_report_showlocks', $prefs->showlocks); - $mform->setType('grade_report_showlocks', PARAM_INT); - - $mform->addElement('checkbox', 'grade_report_shownotes', get_string('shownotes', 'grades')); - $mform->setHelpButton('grade_report_shownotes', array(false, get_string('shownotes', 'grades'), false, true, - false, get_string('configshownotes', 'grades'))); - $mform->setDefault('grade_report_shownotes', $prefs->shownotes); - $mform->setType('grade_report_shownotes', PARAM_INT); - - $mform->addElement('checkbox', 'grade_report_showscales', get_string('showscales', 'grades')); - $mform->setHelpButton('grade_report_showscales', array(false, get_string('showscales', 'grades'), false, true, - false, get_string('configshowscales', 'grades'))); - $mform->setDefault('grade_report_showscales', $prefs->showscales); - $mform->setType('grade_report_showscales', PARAM_INT); - - $mform->addElement('checkbox', 'grade_report_showgrandtotals', get_string('showgrandtotals', 'grades')); - $mform->setHelpButton('grade_report_showgrandtotals', array(false, get_string('showgrandtotals', 'grades'), false, true, - false, get_string('configshowgrandtotals', 'grades'))); - $mform->setDefault('grade_report_showgrandtotals', $prefs->showgrandtotals); - $mform->setType('grade_report_showgrandtotals', PARAM_INT); + $preferences = array('bulkcheckboxes' => 'checkbox', + 'enableajax' => 'checkbox', + 'showcalculations' => 'checkbox', + 'showeyecons' => 'checkbox', + 'showgrandtotals' => 'checkbox', + 'showgroups' => 'checkbox', + 'showlocks' => 'checkbox', + 'shownotes' => 'checkbox', + 'showscales' => 'checkbox', + 'aggregationposition' => array(get_string('left', 'grades'), get_string('right', 'grades')), + 'aggregationview' => array(get_string('full', 'grades'), get_string('compact', 'grades')), + 'gradedisplaytype' => array(get_string('raw', 'grades'), get_string('percentage', 'grades')), + 'grandtotalsdisplaytype' => array(get_string('raw', 'grades'), get_string('percentage', 'grades')), + 'feedbackformat' => array(get_string('text', 'grades'), get_string('html', 'grades')), + 'decimalpoints' => array(0, 1, 2, 3, 4, 5), + 'studentsperpage' => 'text'); + + foreach ($preferences as $pref => $type) { + $full_pref = 'grade_report_' . $pref; + $pref_value = get_user_preferences($full_pref, $CFG->$full_pref); + + $options = null; + if (is_array($type)) { + $options = $type; + $type = 'select'; + } + + $mform->addElement($type, $full_pref, get_string($pref, 'grades'), $options); + $mform->setHelpButton($full_pref, array(false, get_string($pref, 'grades'), false, true, false, get_string("config_$pref", 'grades'))); + $mform->setDefault($full_pref, $pref_value); + $mform->setType($full_pref, PARAM_INT); + } $mform->addElement('hidden', 'id'); $mform->setType('id', PARAM_INT); diff --git a/grade/report/grader/settings.php b/grade/report/grader/settings.php index 746735982b..edcf6c1b60 100644 --- a/grade/report/grader/settings.php +++ b/grade/report/grader/settings.php @@ -21,6 +21,8 @@ $settings->add(new admin_setting_configselect('grade_report_grandtotalsdisplayty get_string('configgrandtotalsdisplaytype', 'grades'), false, array( '0' => 'raw', '1' => 'percentage'))); +$settings->add(new admin_setting_configcheckbox('grade_report_showcalculations', get_string('showcalculations', 'grades'), + get_string('configshowcalculations', 'grades'), 0)); $settings->add(new admin_setting_configcheckbox('grade_report_showeyecons', get_string('showeyecons', 'grades'), get_string('configshoweyecons', 'grades'), 0)); $settings->add(new admin_setting_configcheckbox('grade_report_showgroups', get_string('showgroups', 'grades'), diff --git a/lang/en_utf8/grades.php b/lang/en_utf8/grades.php index 73bf82d0bd..0c1dc822d5 100644 --- a/lang/en_utf8/grades.php +++ b/lang/en_utf8/grades.php @@ -33,6 +33,7 @@ $string['configenableajax'] = 'Adds a layer of AJAX functionality to the grader $string['configfeedbackformat'] = 'The format of feedback notes attached to grades. This also determines the interface element used to enter such feedback (htmleditor for HTML format).'; $string['configgradedisplaytype'] = 'Grades can be shown as raw grades or as percentages (in reference to the minimum and maximum grades).'; $string['configgrandtotalsdisplaytype'] = 'Grand totals can be shown as raw grades or as percentages (in reference to the minimum and maximum grades).'; +$string['configshowcalculations'] = 'Whether to show calculator icons near each grade item and category, tooltips over calculated items and a visual indicator that a column is calculated.'; $string['configshoweyecons'] = 'Whether to show an eye-con near each grade (controlling its visibility to the user).'; $string['configshowgrandtotals'] = 'Show grand totals in the grader report.'; $string['configshowgroups'] = 'Show group totals and means in the grader report.'; @@ -193,6 +194,7 @@ $string['setting'] = 'Setting'; $string['settings'] = 'Settings'; $string['setweights'] = 'Set Weights'; $string['showallstudents'] = 'Show All Students'; +$string['showcalculations'] = 'Show calculations'; $string['showeyecons'] = 'Show eye-cons'; $string['showgrandtotals'] = 'Show grand totals'; $string['showgroups'] = 'Show groups'; diff --git a/lib/grade/grade_tree.php b/lib/grade/grade_tree.php index 859e700ec8..0e344b0f14 100644 --- a/lib/grade/grade_tree.php +++ b/lib/grade/grade_tree.php @@ -61,11 +61,13 @@ class grade_tree { * objects for the given courseid. Full objects are instantiated. * and renumbering. * @param int $courseid - * @param boolean $fillers include fillers and colspans, make the levels var "rectabgular" + * @param boolean $fillers include fillers and colspans, make the levels var "rectangular" * @param boolean $include_grades - * ¶m boolean $category_grade_last category grade item is the last child + * @param boolean $category_grade_last category grade item is the last child + * @param boolean $aggregation_view Either full view (0) or compact view (1) */ - function grade_tree($courseid, $fillers=true, $include_grades=false, $category_grade_last=true) { + function grade_tree($courseid, $fillers=true, $include_grades=false, $category_grade_last=true, + $aggregation_view=GRADER_REPORT_AGGREGATION_VIEW_FULL) { global $USER; $this->courseid = $courseid; @@ -93,6 +95,9 @@ class grade_tree { /** * Static recursive helper - makes the grade_item for category the last children + * @static + * @param array $element The seed of the recursion + * @return void */ function category_grade_last(&$element) { if (empty($element['children'])) { @@ -112,6 +117,11 @@ class grade_tree { /** * Static recursive helper - fills the levels array, useful when accessing tree elements of one level + * @static + * @param int $levels + * @param array $element The seed of the recursion + * @param int $depth + * @return void */ function fill_levels(&$levels, &$element, $depth) { if (!array_key_exists($depth, $levels)) { diff --git a/version.php b/version.php index c087f53e4c..ffe7f5f795 100644 --- a/version.php +++ b/version.php @@ -6,7 +6,7 @@ // This is compared against the values stored in the database to determine // whether upgrades should be performed (see lib/db/*.php) - $version = 2007070600; // YYYYMMDD = date + $version = 2007070601; // YYYYMMDD = date // XY = increments within a single day $release = '1.9 dev'; // Human-friendly version name -- 2.39.5