From ce4d2810a01f9a71b09a2bfc3fea7e2ab7ef2fbc Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Fri, 19 Jun 2015 12:35:54 +0100 Subject: [PATCH] MDL-50648 grader report: columns misaligned with some permissions If a user can see the grader report and singleview report, but not the user report ($CFG->grade_profilereport) then the colspans were wrong and so the columns did not line up under the right headers. --- grade/report/grader/lib.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index b547f6d92f3..e7de79a3d6d 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -589,6 +589,9 @@ class grade_report_grader extends grade_report { $rows = array(); $showuserimage = $this->get_pref('showuserimage'); + $canseeuserreport = has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context); + $canseesingleview = has_capability('gradereport/singleview:view', $this->context); + $hasuserreportcell = $canseeuserreport || $canseesingleview; $strfeedback = $this->get_lang_string("feedback"); $strgrade = $this->get_lang_string('grade'); @@ -597,11 +600,7 @@ class grade_report_grader extends grade_report { $arrows = $this->get_sort_arrows($extrafields); - $colspan = 1; - if (has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context)) { - $colspan++; - } - $colspan += count($extrafields); + $colspan = 1 + $hasuserreportcell + count($extrafields); $levels = count($this->gtree->levels) - 1; @@ -622,7 +621,7 @@ class grade_report_grader extends grade_report { $studentheader->scope = 'col'; $studentheader->header = true; $studentheader->id = 'studentheader'; - if (has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context)) { + if ($hasuserreportcell) { $studentheader->colspan = 2; } $studentheader->text = $arrows['studentname']; @@ -679,7 +678,7 @@ class grade_report_grader extends grade_report { $userreportcell = new html_table_cell(); $userreportcell->attributes['class'] = 'userreport'; $userreportcell->header = true; - if (has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context)) { + if ($canseeuserreport) { $a = new stdClass(); $a->user = $fullname; $strgradesforuser = get_string('gradesforuser', 'grades', $a); @@ -687,7 +686,7 @@ class grade_report_grader extends grade_report { $userreportcell->text .= $OUTPUT->action_icon($url, new pix_icon('t/grades', $strgradesforuser)); } - if (has_capability('gradereport/singleview:view', $this->context)) { + if ($canseesingleview) { $url = new moodle_url('/grade/report/singleview/index.php', array('id' => $this->course->id, 'itemid' => $user->id, 'item' => 'user')); $singleview = $OUTPUT->action_icon($url, new pix_icon('t/editstring', get_string('singleview', 'grades', $fullname))); $userreportcell->text .= $singleview;