diff --git a/report/competency/classes/output/report.php b/report/competency/classes/output/report.php index a1ac94270d9df..0011aa211ce6e 100644 --- a/report/competency/classes/output/report.php +++ b/report/competency/classes/output/report.php @@ -115,6 +115,7 @@ public function export_for_template(renderer_base $output) { $data->pluginbaseurl = (new moodle_url('/admin/tool/lp/'))->out(false); $data->usercompetencies = array(); $scalecache = array(); + $frameworkcache = array(); foreach ($this->users as $user) { $usercompetencies = api::list_user_competencies_in_course($this->courseid, $user->id); $onerow = new stdClass(); @@ -131,7 +132,20 @@ public function export_for_template(renderer_base $output) { break; } } - if (!isset($scalecache[$competency->get_scaleid()])) { + + // Fetch the scale. + $scaleid = $competency->get_scaleid(); + if ($scaleid === null) { + if (!isset($frameworkcache[$competency->get_competencyframeworkid()])) { + $frameworkcache[$competency->get_competencyframeworkid()] = $competency->get_framework(); + } + $framework = $frameworkcache[$competency->get_competencyframeworkid()]; + $scaleid = $framework->get_scaleid(); + if (!isset($scalecache[$scaleid])) { + $scalecache[$competency->get_scaleid()] = $framework->get_scale(); + } + + } else if (!isset($scalecache[$scaleid])) { $scalecache[$competency->get_scaleid()] = $competency->get_scale(); } $scale = $scalecache[$competency->get_scaleid()];