Index: grade/report/grader/styles.php =================================================================== RCS file: /cvsroot/moodle/moodle/grade/report/grader/styles.php,v retrieving revision 1.1.2.11 diff -u -r1.1.2.11 styles.php --- grade/report/grader/styles.php 11 Dec 2007 02:04:00 -0000 1.1.2.11 +++ grade/report/grader/styles.php 29 Jan 2008 18:47:14 -0000 @@ -132,6 +132,11 @@ border-style:solid; } +.grade-report-grader table#user-grades th.useridnumber { + border-width:0px 0px 1px 1px; + border-style:solid; +} + .grade-report-grader table#user-grades th.categoryitem, .grade-report-grader table#user-grades th.courseitem, .grade-report-grader table#user-grades td.topleft { @@ -174,6 +179,10 @@ text-align:left; } +.grade-report-grader table#user-grades td.useridnumber { + text-align:left; +} + .grade-report-grader table#user-grades td { text-align:right; } Index: grade/report/grader/settings.php =================================================================== RCS file: /cvsroot/moodle/moodle/grade/report/grader/settings.php,v retrieving revision 1.34.2.2 diff -u -r1.34.2.2 settings.php --- grade/report/grader/settings.php 4 Dec 2007 16:05:57 -0000 1.34.2.2 +++ grade/report/grader/settings.php 29 Jan 2008 18:47:14 -0000 @@ -80,6 +80,9 @@ $settings->add(new admin_setting_configcheckbox('grade_report_showuserimage', get_string('showuserimage', 'grades'), get_string('configshowuserimage', 'grades'), 1)); +$settings->add(new admin_setting_configcheckbox('grade_report_showuseridnumber', get_string('showuseridnumber', 'grades'), + get_string('configshowuseridnumber', 'grades'), 0)); + $settings->add(new admin_setting_configcheckbox('grade_report_showactivityicons', get_string('showactivityicons', 'grades'), get_string('configshowactivityicons', 'grades'), 1)); Index: grade/report/grader/preferences_form.php =================================================================== RCS file: /cvsroot/moodle/moodle/grade/report/grader/preferences_form.php,v retrieving revision 1.40.2.2 diff -u -r1.40.2.2 preferences_form.php --- grade/report/grader/preferences_form.php 23 Nov 2007 22:12:39 -0000 1.40.2.2 +++ grade/report/grader/preferences_form.php 29 Jan 2008 18:47:14 -0000 @@ -119,6 +119,7 @@ // $preferences['prefgeneral']['enableajax'] = $checkbox_default; $preferences['prefshow']['showuserimage'] = $checkbox_default; + $preferences['prefshow']['showuseridnumber'] = $checkbox_default; $preferences['prefshow']['showactivityicons'] = $checkbox_default; $preferences['prefshow']['showranges'] = $checkbox_default; Index: grade/report/grader/lib.php =================================================================== RCS file: /cvsroot/moodle/moodle/grade/report/grader/lib.php,v retrieving revision 1.98.2.26 diff -u -r1.98.2.26 lib.php --- grade/report/grader/lib.php 24 Jan 2008 20:11:21 -0000 1.98.2.26 +++ grade/report/grader/lib.php 29 Jan 2008 18:47:14 -0000 @@ -211,7 +211,7 @@ $gradestr = new object(); $gradestr->username = fullname($user); $gradestr->itemname = $grade_item->get_name(); - $warnings[] = get_string($errorstr, 'grades', $gradestr); + $warnings[] = get_string($errorstr, 'grades', $gradestr); } } else if ($data_type == 'feedback') { @@ -299,7 +299,7 @@ global $CFG; if (is_numeric($this->sortitemid)) { - $sql = "SELECT u.id, u.firstname, u.lastname, u.imagealt, u.picture + $sql = "SELECT u.id, u.firstname, u.lastname, u.imagealt, u.picture, u.idnumber FROM {$CFG->prefix}grade_grades g RIGHT OUTER JOIN {$CFG->prefix}user u ON (u.id = g.userid AND g.itemid = $this->sortitemid) LEFT JOIN {$CFG->prefix}role_assignments ra ON u.id = ra.userid @@ -323,7 +323,7 @@ } $roles = explode(',', $this->gradebookroles); $this->users = get_role_users($roles, $this->context, false, - 'u.id, u.firstname, u.lastname', 'u.'.$this->sortitemid .' '. $this->sortorder . $sort2, + 'u.id, u.firstname, u.lastname, u.idnumber', 'u.'.$this->sortitemid .' '. $this->sortorder . $sort2, false, $this->currentgroup, $this->page * $this->get_pref('studentsperpage'), $this->get_pref('studentsperpage')); } @@ -505,6 +505,7 @@ $strsortdesc = $this->get_lang_string('sortdesc', 'grades'); $strfirstname = $this->get_lang_string('firstname'); $strlastname = $this->get_lang_string('lastname'); + $showuseridnumber = $this->get_pref('showuseridnumber'); if ($this->sortitemid === 'lastname') { if ($this->sortorder == 'ASC') { @@ -546,8 +547,30 @@ $headerhtml .= '' . $strfirstname . ' ' . $firstarrow. '/ ' . $strlastname . ''. $lastarrow .''; - } else { - $headerhtml .= ' '; + if ($showuseridnumber) { + if ('idnumber' == $this->sortitemid) { + if ($this->sortorder == 'ASC') { + $idnumberarrow = print_arrow('up', $strsortasc, true); + } else { + $idnumberarrow = print_arrow('down', $strsortdesc, true); + } + } else { + $idnumberarrow = ''; + } + $headerhtml .= '' + . get_string('idnumber') . ' ' . $idnumberarrow . ''; + } + } else { + $colspan=''; + if ($showuseridnumber) { + $colspan = 'colspan="2" '; + } + + $headerhtml .= ' '; + + if ($showuseridnumber) { + $columncount++; + } } foreach ($row as $columnkey => $element) { @@ -639,6 +662,7 @@ $strgrade = $this->get_lang_string('grade'); $gradetabindex = 1; $showuserimage = $this->get_pref('showuserimage'); + $showuseridnumber = $this->get_pref('showuseridnumber'); $numusers = count($this->users); // Preload scale objects for items with a scaleid @@ -689,6 +713,11 @@ .'' .fullname($user).''; + if ($showuseridnumber) { + $studentshtml .= ''. + $user->idnumber.''; + } + foreach ($this->gtree->items as $itemid=>$unused) { $item =& $this->gtree->items[$itemid]; $grade = $this->grades[$userid][$item->id]; @@ -765,7 +794,7 @@ $scales = explode(",", $scale->scale); // reindex because scale is off 1 - + // MDL-12104 some previous scales might have taken up part of the array // so this needs to be reset $scaleopt = array(); @@ -880,6 +909,7 @@ $averagesdecimalpoints = $this->get_pref('averagesdecimalpoints'); $meanselection = $this->get_pref('meanselection'); $shownumberofgrades = $this->get_pref('shownumberofgrades'); + $showuseridnumber = $this->get_pref('showuseridnumber'); $avghtml = ''; $avgcssclass = 'avg'; @@ -926,9 +956,17 @@ } } - $avghtml = ''.$straverage.''; + $columncount=0; + $colspan=''; + if ($showuseridnumber) { + $colspan = 'colspan="2" '; + } + + $avghtml = ''.$straverage.''; - $columncount=1; + if ($showuseridnumber) { + $columncount++; + } $gsql = str_replace('u.id', 'ra.userid', $groupsql); // hack @@ -1014,16 +1052,26 @@ */ function get_rangehtml() { global $USER; + $showuseridnumber = $this->get_pref('showuseridnumber'); $scalehtml = ''; if ($this->get_pref('showranges')) { $rangesdisplaytype = $this->get_pref('rangesdisplaytype'); $rangesdecimalpoints = $this->get_pref('rangesdecimalpoints'); + $columncount=0; + $colspan=''; + if ($showuseridnumber) { + $colspan = 'colspan="2" '; + } + $scalehtml = '' - . ''.$this->get_lang_string('range','grades').''; + . ''.$this->get_lang_string('range','grades').''; + + if ($showuseridnumber) { + $columncount++; + } - $columncount = 1; foreach ($this->gtree->items as $itemid=>$unused) { $item =& $this->gtree->items[$itemid]; Index: lang/en_utf8/grades.php =================================================================== RCS file: /cvsroot/moodle/moodle/lang/en_utf8/grades.php,v retrieving revision 1.111.2.25 diff -u -r1.111.2.25 grades.php --- lang/en_utf8/grades.php 21 Jan 2008 07:17:47 -0000 1.111.2.25 +++ lang/en_utf8/grades.php 29 Jan 2008 18:47:14 -0000 @@ -102,6 +102,7 @@ $string['configshownumberofgrades'] = 'Shows the number of grades being aggregated next to each average, between brackets. Example: 45 (34).'; $string['configshowranges'] = 'Display a row showing the range of possible for each grading item in the grader report.'; $string['configshowrank'] = 'Show rank for each item.'; +$string['configshowuseridnumber'] = 'Whether to show the user\'s idnumber as an extra column in the grader report.'; $string['configshowuserimage'] = 'Whether to show the user\'s profile image next to the name in the grader report.'; $string['configstudentsperpage'] = 'The number of students to display per page in the grader report.'; $string['configstudentsperpagedefault'] = 'The number of students to display per page in the grader report. Leave this field empty to use the site default (currently $a).'; @@ -427,6 +428,7 @@ $string['shownumberofgrades'] = 'Show number of grades in averages'; $string['showranges'] = 'Show ranges'; $string['showrank'] = 'Show rank'; +$string['showuseridnumber'] = 'Show user idnumber'; $string['showuserimage'] = 'Show user profile images'; $string['showverbose'] = 'Show $a->category$a->itemmodule $a->itemname'; $string['sitewide'] = 'Site-wide';