diff --git a/admin/tool/lp/classes/external.php b/admin/tool/lp/classes/external.php index 4fd5762bf4b..8657355d29d 100644 --- a/admin/tool/lp/classes/external.php +++ b/admin/tool/lp/classes/external.php @@ -40,6 +40,7 @@ use invalid_parameter_exception; use grade_scale; use tool_lp\external\competency_framework_exporter; use tool_lp\external\user_competency_exporter; +use tool_lp\external\user_competency_plan_exporter; use tool_lp\external\competency_exporter; use tool_lp\external\plan_exporter; use tool_lp\external\template_exporter; @@ -3956,25 +3957,27 @@ class external extends external_api { $scalecache = array(); foreach ($result as $key => $r) { - $r->competency = null; - $r->usercompetency = null; + if (!isset($scalecache[$r->competency->get_competencyframeworkid()])) { + $scalecache[$r->competency->get_competencyframeworkid()] = $r->competency->get_framework()->get_scale(); + } + $scale = $scalecache[$r->competency->get_competencyframeworkid()]; - if ($plan->get_status() == plan::STATUS_COMPLETE) { - if (!isset($contextcache[$r->competency->get_competencyframeworkid()])) { - $contextcache[$r->competency->get_competencyframeworkid()] = $r->competency->get_context(); - } - $context = $contextcache[$r->competency->get_competencyframeworkid()]; + if (!isset($contextcache[$r->competency->get_competencyframeworkid()])) { + $contextcache[$r->competency->get_competencyframeworkid()] = $r->competency->get_context(); + } + $context = $contextcache[$r->competency->get_competencyframeworkid()]; - $exporter = new competency_exporter($r->competency, array('context' => $context)); - $r->competency = $exporter->export($output); - } else { - if (!isset($scalecache[$r->competency->get_competencyframeworkid()])) { - $scalecache[$r->competency->get_competencyframeworkid()] = $r->competency->get_framework()->get_scale(); - } - $scale = $scalecache[$r->competency->get_competencyframeworkid()]; + $exporter = new competency_exporter($r->competency, array('context' => $context)); + $r->competency = $exporter->export($output); + if ($r->usercompetency) { $exporter = new user_competency_exporter($r->usercompetency, array('scale' => $scale)); $r->usercompetency = $exporter->export($output); + unset($r->usercompetencyplan); + } else { + $exporter = new user_competency_plan_exporter($r->usercompetencyplan); + $r->usercompetencyplan = $exporter->export($output); + unset($r->usercompetency); } } return $result; diff --git a/admin/tool/lp/classes/external/user_competency_plan_exporter.php b/admin/tool/lp/classes/external/user_competency_plan_exporter.php index c258c6dc454..eff82499fff 100644 --- a/admin/tool/lp/classes/external/user_competency_plan_exporter.php +++ b/admin/tool/lp/classes/external/user_competency_plan_exporter.php @@ -31,15 +31,10 @@ use renderer_base; * @copyright 2015 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class user_plan_competency_exporter extends persistent_exporter { +class user_competency_plan_exporter extends persistent_exporter { protected function get_persistent_class() { - return 'tool_lp\\user_plan_competency'; + return 'tool_lp\\user_competency_plan'; } - public function export(renderer_base $output) { - $result = parent::export($output); - $result->statusname = $this->persistent->get_statusname(); - return $result; - } } diff --git a/admin/tool/lp/tests/externallib_test.php b/admin/tool/lp/tests/externallib_test.php index 81533aa50c9..55a228e8b96 100644 --- a/admin/tool/lp/tests/externallib_test.php +++ b/admin/tool/lp/tests/externallib_test.php @@ -1403,9 +1403,10 @@ class tool_lp_external_testcase extends externallib_advanced_testcase { $lpg = $this->getDataGenerator()->get_plugin_generator('tool_lp'); $syscontext = context_system::instance(); + $onehour = time() + 60*60; // Create a template. - $template = external::create_template('shortname', time(), 'description', FORMAT_HTML, true, + $template = external::create_template('shortname', $onehour, 'description', FORMAT_HTML, true, array('contextid' => $syscontext->id)); $template = (object) external_api::clean_returnvalue(external::create_template_returns(), $template); @@ -1445,9 +1446,10 @@ class tool_lp_external_testcase extends externallib_advanced_testcase { $this->setUser($this->creator); $syscontext = context_system::instance(); + $onehour = time() + 60*60; // Create a template. - $template = external::create_template('shortname', time(), 'description', FORMAT_HTML, true, + $template = external::create_template('shortname', $onehour, 'description', FORMAT_HTML, true, array('contextid' => $syscontext->id)); $template = (object) external_api::clean_returnvalue(external::create_template_returns(), $template); @@ -1507,9 +1509,10 @@ class tool_lp_external_testcase extends externallib_advanced_testcase { $this->setUser($this->creator); $syscontext = context_system::instance(); + $onehour = time() + 60*60; // Create a template. - $template = external::create_template('shortname', time(), 'description', FORMAT_HTML, true, + $template = external::create_template('shortname', $onehour, 'description', FORMAT_HTML, true, array('contextid' => $syscontext->id)); $template = (object) external_api::clean_returnvalue(external::create_template_returns(), $template); @@ -1774,8 +1777,8 @@ class tool_lp_external_testcase extends externallib_advanced_testcase { $result = external_api::clean_returnvalue(external::read_template_returns(), $result); $this->assertEquals($cattemplate->id, $result['id']); $this->assertEquals('a', $result['shortname']); - $this->assertEquals('c', $result['description']); - $this->assertEquals(FORMAT_MARKDOWN, $result['descriptionformat']); + $this->assertEquals("
c
\n", $result['description']); + $this->assertEquals(FORMAT_HTML, $result['descriptionformat']); $this->assertEquals(0, $result['visible']); $this->assertEquals($duedateupdated, $result['duedate']); $this->assertEquals(userdate($duedateupdated), $result['duedateformatted']); @@ -1790,7 +1793,7 @@ class tool_lp_external_testcase extends externallib_advanced_testcase { $this->assertEquals($systemplate->id, $result['id']); $this->assertEquals('x1', $result['shortname']); $this->assertEquals('z1', $result['description']); - $this->assertEquals(FORMAT_PLAIN, $result['descriptionformat']); + $this->assertEquals(FORMAT_HTML, $result['descriptionformat']); $this->assertEquals(0, $result['visible']); $this->assertEquals($duedateupdated, $result['duedate']); $this->assertEquals(userdate($duedateupdated), $result['duedateformatted']); @@ -1803,7 +1806,7 @@ class tool_lp_external_testcase extends externallib_advanced_testcase { $this->assertEquals($cattemplate->id, $result['id']); $this->assertEquals('x2', $result['shortname']); $this->assertEquals('z2', $result['description']); - $this->assertEquals(FORMAT_PLAIN, $result['descriptionformat']); + $this->assertEquals(FORMAT_HTML, $result['descriptionformat']); $this->assertEquals(1, $result['visible']); $this->assertEquals($duedateupdated, $result['duedate']); $this->assertEquals(userdate($duedateupdated), $result['duedateformatted']);