MDL-58795 gradereport_grader: Prevent duplicates in grader report

Currently, the sorting being used for the grader report table
(asc/desc arrows) is just the grade_grades.finalgrade.
This adds grade_grades.userid in the sort to prevent duplicate
in records returned when using pages.
This commit is contained in:
Josh Ebarvia 2017-05-03 13:38:38 +09:30
parent 17fb1d84a2
commit 0a0e2843fd

View File

@ -448,22 +448,22 @@ class grade_report_grader extends grade_report {
$this->groupwheresql_params, $enrolledparams, $relatedctxparams);
$sortjoin = "LEFT JOIN {grade_grades} g ON g.userid = u.id AND g.itemid = $this->sortitemid";
$sort = "g.finalgrade $this->sortorder";
$sort = "g.finalgrade $this->sortorder, u.idnumber, u.lastname, u.firstname, u.email";
} else {
$sortjoin = '';
switch($this->sortitemid) {
case 'lastname':
$sort = "u.lastname $this->sortorder, u.firstname $this->sortorder";
$sort = "u.lastname $this->sortorder, u.firstname $this->sortorder, u.idnumber, u.email";
break;
case 'firstname':
$sort = "u.firstname $this->sortorder, u.lastname $this->sortorder";
$sort = "u.firstname $this->sortorder, u.lastname $this->sortorder, u.idnumber, u.email";
break;
case 'email':
$sort = "u.email $this->sortorder";
$sort = "u.email $this->sortorder, u.firstname, u.lastname, u.idnumber";
break;
case 'idnumber':
default:
$sort = "u.idnumber $this->sortorder";
$sort = "u.idnumber $this->sortorder, u.firstname, u.lastname, u.email";
break;
}