Skip to content

Commit

Permalink
MDL-79056 gradereport_user: Make column heading IDs unique
Browse files Browse the repository at this point in the history
Associate column headings of user report tables to the user ID that the
report is being generated for. This will prevent duplicate IDs for the
report columns when multiple user report tables are displayed on the
User report page.
  • Loading branch information
junpataleta committed Sep 29, 2023
1 parent af22c03 commit 7998d80
Showing 1 changed file with 12 additions and 11 deletions.
23 changes: 12 additions & 11 deletions grade/report/user/classes/report/user.php
Expand Up @@ -445,7 +445,7 @@ private function fill_table_recursive(array &$element) {
$depth = $element['depth'];
$gradeobject = $element['object'];
$eid = $gradeobject->id;
$element['userid'] = $this->user->id;
$element['userid'] = $userid = $this->user->id;
$fullname = $this->gtree->get_element_header($element, true, false, true, false, true);
$data = [];
$gradeitemdata = [];
Expand Down Expand Up @@ -587,7 +587,7 @@ private function fill_table_recursive(array &$element) {
if ($this->showweight) {
$data['weight']['class'] = $class;
$data['weight']['content'] = '-';
$data['weight']['headers'] = "$headercat $headerrow weight";
$data['weight']['headers'] = "$headercat $headerrow weight$userid";
// Has a weight assigned, might be extra credit.

// This obliterates the weight because it provides a more informative description.
Expand Down Expand Up @@ -690,7 +690,7 @@ private function fill_table_recursive(array &$element) {
$gradegrade->grade_item, true) . $gradestatus;
$gradeitemdata['graderaw'] = $gradeval;
}
$data['grade']['headers'] = "$headercat $headerrow grade";
$data['grade']['headers'] = "$headercat $headerrow grade$userid";
$gradeitemdata['gradeformatted'] = $data['grade']['content'];
}

Expand All @@ -701,7 +701,7 @@ private function fill_table_recursive(array &$element) {
GRADE_DISPLAY_TYPE_REAL,
$this->rangedecimals
);
$data['range']['headers'] = "$headercat $headerrow range";
$data['range']['headers'] = "$headercat $headerrow range$userid";

$gradeitemdata['rangeformatted'] = $data['range']['content'];
$gradeitemdata['grademin'] = $gradegrade->grade_item->grademin;
Expand Down Expand Up @@ -733,7 +733,7 @@ private function fill_table_recursive(array &$element) {
GRADE_DISPLAY_TYPE_PERCENTAGE
);
}
$data['percentage']['headers'] = "$headercat $headerrow percentage";
$data['percentage']['headers'] = "$headercat $headerrow percentage$userid";
$gradeitemdata['percentageformatted'] = $data['percentage']['content'];
}

Expand Down Expand Up @@ -763,7 +763,7 @@ private function fill_table_recursive(array &$element) {
GRADE_DISPLAY_TYPE_LETTER
);
}
$data['lettergrade']['headers'] = "$headercat $headerrow lettergrade";
$data['lettergrade']['headers'] = "$headercat $headerrow lettergrade$userid";
$gradeitemdata['lettergradeformatted'] = $data['lettergrade']['content'];
}

Expand Down Expand Up @@ -797,7 +797,7 @@ private function fill_table_recursive(array &$element) {
$gradeitemdata['rank'] = $rank;
$gradeitemdata['numusers'] = $numusers;
}
$data['rank']['headers'] = "$headercat $headerrow rank";
$data['rank']['headers'] = "$headercat $headerrow rank$userid";
}

// Average.
Expand All @@ -811,7 +811,7 @@ private function fill_table_recursive(array &$element) {
} else {
$data['average']['content'] = '-';
}
$data['average']['headers'] = "$headercat $headerrow average";
$data['average']['headers'] = "$headercat $headerrow average$userid";
}

// Feedback.
Expand All @@ -838,13 +838,13 @@ private function fill_table_recursive(array &$element) {
['context' => $gradegrade->get_context()]);
$gradeitemdata['feedback'] = $gradegrade->feedback;
}
$data['feedback']['headers'] = "$headercat $headerrow feedback";
$data['feedback']['headers'] = "$headercat $headerrow feedback$userid";
}
// Contribution to the course total column.
if ($this->showcontributiontocoursetotal) {
$data['contributiontocoursetotal']['class'] = $class;
$data['contributiontocoursetotal']['content'] = '-';
$data['contributiontocoursetotal']['headers'] = "$headercat $headerrow contributiontocoursetotal";
$data['contributiontocoursetotal']['headers'] = "$headercat $headerrow contributiontocoursetotal$userid";

}
$this->gradeitemsdata[] = $gradeitemdata;
Expand Down Expand Up @@ -1026,9 +1026,10 @@ public function print_table(bool $return = false) {
];

// Set the table headings.
$userid = $this->user->id;
foreach ($this->tableheaders as $index => $heading) {
$headingcell = new \html_table_cell($heading);
$headingcell->attributes['id'] = $this->tablecolumns[$index];
$headingcell->attributes['id'] = $this->tablecolumns[$index] . $userid;
$headingcell->attributes['class'] = "header column-{$this->tablecolumns[$index]}";
if ($index == 0) {
$headingcell->colspan = $this->maxdepth;
Expand Down

0 comments on commit 7998d80

Please sign in to comment.