diff --git a/grade/report/grader/functions.js b/grade/report/grader/functions.js index 020f9bf3e1f..6b406cad724 100755 --- a/grade/report/grader/functions.js +++ b/grade/report/grader/functions.js @@ -14,15 +14,15 @@ function set_row(idx) { } /** highlight/unset the column of a table **/ -function set_col(col,gradecelloffset) { +function set_col(col,gradecelloffset,lastheaderrow) { var table = document.getElementById('user-grades'); //highlight the column header - flip_vmarked(table,2,col); + flip_vmarked(table,lastheaderrow,col); //add any grade cell offset (due to colspans) then iterate down the table col += gradecelloffset; - for (var row = 3; row < table.rows.length; row++) { + for (var row = lastheaderrow + 1; row < table.rows.length; row++) { flip_vmarked(table,row,col); } } @@ -35,4 +35,4 @@ function flip_vmarked(table,row,col) { table.rows[row].cells[col].className += ' vmarked'; } } -} \ No newline at end of file +} diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index dfdb9802826..96086e2c1e7 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -78,6 +78,10 @@ class grade_report_grader extends grade_report { * */ var $canviewhidden; + /** @var boolean, whether the current user is allowed to see the user report. + * This affects the table layout. */ + var $canviewuserreport; + var $preferences_page=false; /** @@ -93,6 +97,7 @@ class grade_report_grader extends grade_report { parent::grade_report($courseid, $gpr, $context, $page); $this->canviewhidden = has_capability('moodle/grade:viewhidden', get_context_instance(CONTEXT_COURSE, $this->course->id)); + $this->canviewuserreport = has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context); // load collapsed settings for this report if ($collapsed = get_user_preferences('grade_report_grader_collapsed_categories')) { @@ -662,14 +667,15 @@ class grade_report_grader extends grade_report { //The width of the table varies depending on fixedstudents. // $fixedstudents == 0, students and grades display in the same table. // $fixedstudents == 1, students and grades are display in separate table. - if ($fixedstudents) { + if ($fixedstudents || !$this->canviewuserreport) { $incrementcellindex = '0'; } else { $incrementcellindex = '1'; } //MDL-21088 - IE 7 ignores nowraps on tds or ths so we this in a span with a nowrap on it. - $headerhtml .= '