MDL-10210 Re-organised the gradebook preferences, and now displaying site defaults...
authornicolasconnault <nicolasconnault>
Mon, 30 Jul 2007 07:12:33 +0000 (07:12 +0000)
committernicolasconnault <nicolasconnault>
Mon, 30 Jul 2007 07:12:33 +0000 (07:12 +0000)
grade/report/grader/preferences_form.php
lang/en_utf8/grades.php

index 8a53f2afb5ce76202e7737a30e2b9b5498a18d5f..950b37c1621f45fb97fd057dd46b680887e02064 100644 (file)
@@ -21,98 +21,110 @@ class grader_report_preferences_form extends moodleform {
         $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,
+        $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 => $strdefault, 0 => $strno, 1 => $stryes);
+        $checkbox_default = array(GRADE_REPORT_PREFERENCE_DEFAULT => 'default', 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');
+        $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['gradeboundary' . $i] = $percentages;
-            $preferences['gradeletter' . $i] = 'text';
+            $preferences['prefletters']['gradeboundary' . $i] = $percentages;
+            $preferences['prefletters']['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;
+        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);
             }
-            $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');
index a0bc9a7601dab575623ba89d9eaaf86f3bbf60a7..6e006812ef312cb5a1a6fd314fa3b5ac4be13e1c 100644 (file)
@@ -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';