From: tjhunt Date: Wed, 30 Jan 2008 16:04:09 +0000 (+0000) Subject: MDL-13238 - Optionally show the user's idnumber in the grader report. Merged from... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=9d35e66ea87b6a831bcfcc379467cbdcc1e68b95;p=moodle.git MDL-13238 - Optionally show the user's idnumber in the grader report. Merged from MOODLE_19_STABLE. --- diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index 5518f2bb64..298b96b229 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -211,7 +211,7 @@ class grade_report_grader extends grade_report { $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 @@ class grade_report_grader extends grade_report { 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 @@ class grade_report_grader extends grade_report { } $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 @@ class grade_report_grader extends grade_report { $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 @@ class grade_report_grader extends grade_report { $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 @@ class grade_report_grader extends grade_report { $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 @@ class grade_report_grader extends grade_report { .'' .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 @@ class grade_report_grader extends grade_report { $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 @@ class grade_report_grader extends grade_report { $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 @@ class grade_report_grader extends grade_report { } } - $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 @@ class grade_report_grader extends grade_report { */ 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]; diff --git a/grade/report/grader/preferences_form.php b/grade/report/grader/preferences_form.php index 3e4bce1ae7..e65608bed4 100644 --- a/grade/report/grader/preferences_form.php +++ b/grade/report/grader/preferences_form.php @@ -119,6 +119,7 @@ class grader_report_preferences_form extends moodleform { // $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; diff --git a/grade/report/grader/settings.php b/grade/report/grader/settings.php index a4945092f8..bd9b7117cc 100644 --- a/grade/report/grader/settings.php +++ b/grade/report/grader/settings.php @@ -80,6 +80,9 @@ $settings->add(new admin_setting_configcheckbox('grade_report_showranges', get_s $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)); diff --git a/grade/report/grader/styles.php b/grade/report/grader/styles.php index 7206c8563c..956bd3f9fc 100644 --- a/grade/report/grader/styles.php +++ b/grade/report/grader/styles.php @@ -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; } diff --git a/lang/en_utf8/grades.php b/lang/en_utf8/grades.php index ed69624029..c021b578ee 100644 --- a/lang/en_utf8/grades.php +++ b/lang/en_utf8/grades.php @@ -102,6 +102,7 @@ $string['configshowfeedback'] = 'Whether to show a feedback icon (for adding/edi $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['shownooutcomes'] = 'Hide outcomes'; $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';