From 20060b3b2e654e17271bc0f72116bc5b23019db9 Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Tue, 20 Jun 2017 15:46:08 +0800 Subject: [PATCH] MDL-59055 grades: provide backward-compatibility of changes --- grade/report/grader/lib.php | 2 +- grade/report/lib.php | 4 ++-- lib/grade/grade_grade.php | 9 ++++++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index 55b26462713..b4de80a1623 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -974,7 +974,7 @@ class grade_report_grader extends grade_report { $usergrades = $this->allgrades[$userid]; $hidingaffected = grade_grade::get_hiding_affected($usergrades, $allgradeitems); $altered = $hidingaffected['altered']; - $unknown = $hidingaffected['unknown']; + $unknown = $hidingaffected['unknowngrades']; unset($hidingaffected); } diff --git a/grade/report/lib.php b/grade/report/lib.php index 4b0ad2e331d..45c652eca28 100644 --- a/grade/report/lib.php +++ b/grade/report/lib.php @@ -525,14 +525,14 @@ abstract class grade_report { $aggregationweight = null; } } - } else if (array_key_exists($course_item->id, $hiding_affected['unknown'])) { + } else if (array_key_exists($course_item->id, $hiding_affected['unknowngrades'])) { //not sure whether or not this item depends on a hidden item if (!$this->showtotalsifcontainhidden[$courseid]) { //hide the grade $finalgrade = null; } else { //use reprocessed marks that exclude hidden items - $finalgrade = $hiding_affected['unknown'][$course_item->id]; + $finalgrade = $hiding_affected['unknowngrades'][$course_item->id]; if (array_key_exists($course_item->id, $hiding_affected['alteredgrademin'])) { $grademin = $hiding_affected['alteredgrademin'][$course_item->id]; diff --git a/lib/grade/grade_grade.php b/lib/grade/grade_grade.php index dc265650c35..f2b30af4606 100644 --- a/lib/grade/grade_grade.php +++ b/lib/grade/grade_grade.php @@ -727,8 +727,9 @@ class grade_grade extends grade_object { * * @param array $grade_grades all course grades of one user, & used for better internal caching * @param array $grade_items array of grade items, & used for better internal caching - * @return array This is an array of 3 arrays: - * unknown => list of item ids that may be affected by hiding (with the calculated grade as the value) + * @return array This is an array of following arrays: + * unknown => list of item ids that may be affected by hiding (with the ITEM ID as both the key and the value) - for BC with old gradereport plugins + * unknowngrades => list of item ids that may be affected by hiding (with the calculated grade as the value) * altered => list of item ids that are definitely affected by hiding (with the calculated grade as the value) * alteredgrademax => for each item in altered or unknown, the new value of the grademax * alteredgrademin => for each item in altered or unknown, the new value of the grademin @@ -779,6 +780,7 @@ class grade_grade extends grade_object { if (!$hiddenfound) { return array('unknown' => array(), + 'unknowngrades' => array(), 'altered' => array(), 'alteredgrademax' => array(), 'alteredgrademin' => array(), @@ -953,7 +955,8 @@ class grade_grade extends grade_object { } } - return array('unknown' => $unknown, + return array('unknown' => array_combine(array_keys($unknown), array_keys($unknown)), // Left for BC in case some gradereport plugins expect it. + 'unknowngrades' => $unknown, 'altered' => $altered, 'alteredgrademax' => $alteredgrademax, 'alteredgrademin' => $alteredgrademin,