From bb9b58a61f7d26eb0df430c6a2e5a7f255186c38 Mon Sep 17 00:00:00 2001 From: Nicolas Connault Date: Tue, 27 Oct 2009 14:21:30 +0000 Subject: [PATCH] MDL-12972 Added icons next to each student name in the grader report, which link to the student's user grades report. Merged FROM MOODLE_19_STABLE --- grade/report/grader/lib.php | 62 ++++++++++++++++++++++++++++++---- grade/report/grader/styles.php | 4 +++ lang/en_utf8/grades.php | 1 + 3 files changed, 60 insertions(+), 7 deletions(-) diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index 0446fbe103..0c3f80473c 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -572,11 +572,17 @@ class grade_report_grader extends grade_report { } else { $headerhtml .= ''; if ($key == $numrows - 1) { + $colspan = 1; + if (has_capability('gradereport/user:view', $this->context)) { + $colspan++; + } + $colspan='colspan="'.$colspan.'"'; + $sortfirstname = html_link::make(clone($this->baseurl), $strfirstname); $sortfirstname->url->param('sortitemid', 'firstname'); $sortlastname = html_link::make(clone($this->baseurl), $strlastname); $sortlastname->url->param('sortitemid', 'lastname'); - $headerhtml .= '' . $OUTPUT->link($sortfirstname) + $headerhtml .= '' . $OUTPUT->link($sortfirstname) . $firstarrow. '/ ' . $OUTPUT->link($sortlastname) . $lastarrow .''; if ($showuseridnumber) { if ('idnumber' == $this->sortitemid) { @@ -592,12 +598,17 @@ class grade_report_grader extends grade_report { $sortidnumber->url->param('sortitemid', 'idnumber'); $headerhtml .= '' . $OUTPUT->link($sortidnumber) . $idnumberarrow . ''; } - } else { - $colspan=''; + } else { + $colspan = 1; + if (has_capability('gradereport/user:view', $this->context)) { + $colspan++; + } if ($showuseridnumber) { - $colspan = 'colspan="2" '; + $colspan++; } + $colspan='colspan="'.$colspan.'"'; + $headerhtml .= ' '; if ($showuseridnumber) { @@ -745,10 +756,23 @@ class grade_report_grader extends grade_report { $userpic = $OUTPUT->container($OUTPUT->user_picture(moodle_user_picture::make($user, $this->courseid)), 'userpic'); } + $userreportcell = ''; + + if (has_capability('gradereport/user:view', $this->context)) { + $a->user = fullname($user); + $strgradesforuser = get_string('gradesforuser', 'grades', $a); + $userreporticon = new moodle_action_icon(); + $userreporticon->link->url = new moodle_url($CFG->wwwroot.'/grade/report/user/index.php', array('userid' => $user->id, 'id' => $this->course->id)); + $userreporticon->image->add_class('iconsmall'); + $userreporticon->image->src = $OUTPUT->old_icon_url('t/grades'); + $userreporticon->image->alt = $strgradesforuser; + $userreportcell = ''.$OUTPUT->action_icon($userreporticon).''; + } + $userlink = html_link::make(new moodle_url($CFG->wwwroot.'/user/view.php', array('id' => $user->id, 'course' => $this->course->id)), fullname($user)); $studentshtml .= '' .''.$userpic - .$OUTPUT->link($userlink).''; + .$OUTPUT->link($userlink).$userreportcell.''; if ($showuseridnumber) { $studentshtml .= ''. @@ -969,9 +993,14 @@ class grade_report_grader extends grade_report { $fixedcolumntable->add_class('fixed_grades_column'); $fixedcolumntable->bodyclasses = 'leftbody'; - $colspan = null; + $colspan = 1; + + if (has_capability('gradereport/user:view', $this->context)) { + $colspan++; + } + if ($showuseridnumber) { - $colspan = 2; + $colspan++; } $levels = count($this->gtree->levels) - 1; @@ -997,6 +1026,9 @@ class grade_report_grader extends grade_report { $studentheader->scope = 'col'; $studentheader->header = true; $studentheader->id = 'studentheader'; + if (has_capability('gradereport/user:view', $this->context)) { + $studentheader->colspan = 2; + } $studentheader->text = $OUTPUT->link($sortfirstname) . $firstarrow. '/ ' . $OUTPUT->link($sortlastname) . $lastarrow; $headerrow->cells[] = $studentheader; @@ -1052,8 +1084,24 @@ class grade_report_grader extends grade_report { } $usercell->text .= $OUTPUT->link(html_link::make(new moodle_url($CFG->wwwroot.'/user/view.php', array('id' => $user->id, 'course' => $this->course->id)), fullname($user))); + $userrow->cells[] = $usercell; + if (has_capability('gradereport/user:view', $this->context)) { + $userreportcell = new html_table_cell(); + $userreportcell->add_class('userreport'); + $userreportcell->header = true; + $a->user = fullname($user); + $strgradesforuser = get_string('gradesforuser', 'grades', $a); + $userreporticon = new moodle_action_icon(); + $userreporticon->link->url = new moodle_url($CFG->wwwroot.'/grade/report/user/index.php', array('userid' => $user->id, 'id' => $this->course->id)); + $userreporticon->image->add_class('iconsmall'); + $userreporticon->image->src = $OUTPUT->old_icon_url('t/grades'); + $userreporticon->image->alt = $strgradesforuser; + $userreportcell->text = $OUTPUT->action_icon($userreporticon); + $userrow->cells[] = $userreportcell; + } + if ($showuseridnumber) { $idnumbercell = new html_table_cell(); $idnumbercell->add_classes(array('header', 'c0', 'useridnumber')); diff --git a/grade/report/grader/styles.php b/grade/report/grader/styles.php index 464959525c..22771de344 100644 --- a/grade/report/grader/styles.php +++ b/grade/report/grader/styles.php @@ -375,6 +375,10 @@ vertical-align:middle; border-right-color:#000; } +.grade-report-grader table#fixed_column th.user{ +border-right-color:#cecece; +} + .grade-report-grader table#fixed_column { padding-top:20px; border-top:1px solid #cecece; diff --git a/lang/en_utf8/grades.php b/lang/en_utf8/grades.php index a417b0bfd5..dab8ba3dcd 100644 --- a/lang/en_utf8/grades.php +++ b/lang/en_utf8/grades.php @@ -260,6 +260,7 @@ $string['gradessettings'] = 'Grade settings'; $string['gradepreferences'] = 'Grade preferences'; $string['gradepreferenceshelp'] = 'Grade preferences Help'; $string['grades'] = 'Grades'; +$string['gradesforuser'] = 'Grades for $a->user'; $string['gradesonly'] = 'Grades only'; $string['gradetype'] = 'Grade type'; $string['gradetypehelp'] = 'Specifies the type of grade used: none (no grading possible), value (enables the maximum and minimum grade settings), scale (enables the scale setting) or text (feedback only). Only value and scale grade types may be aggregated. The grade type for an activity-based grade item is set on the update activity page.'; -- 2.39.5