diff --git a/competency/classes/external.php b/competency/classes/external.php index f03c9ef5600..06369a5e0d9 100644 --- a/competency/classes/external.php +++ b/competency/classes/external.php @@ -2705,9 +2705,8 @@ class external extends external_api { $params = (object) $params; $result = api::update_plan($params); - $exporter = plan_exporter($result); - $record = $exporter->export($output); - return external_api::clean_returnvalue(self::update_plan_returns(), $record); + $exporter = new plan_exporter($result, ['template' => $plan->get_template()]); + return $exporter->export($output); } /** diff --git a/competency/tests/external_test.php b/competency/tests/external_test.php index 609a2cbaf67..38d7af31be2 100644 --- a/competency/tests/external_test.php +++ b/competency/tests/external_test.php @@ -1207,6 +1207,11 @@ class core_competency_external_testcase extends externallib_advanced_testcase { $plan2 = $this->create_plan(3, $this->user->id, 0, plan::STATUS_DRAFT, 0); + // Basic update on the plan. + $this->assertNotEquals('Updated plan 2 name', $plan2->name); + $plan2 = external::update_plan(['id' => $plan2->id, 'name' => 'Updated plan 2 name']); + $this->assertEquals('Updated plan 2 name', $plan2->name); + try { $plan3 = $this->create_plan(4, $this->user->id, 0, plan::STATUS_ACTIVE, 0); $this->fail('Exception expected due to not permissions to create active plans');