/** * Test the competency framework updated event. * */ public function test_competency_framework_updated() { $this->resetAfterTest(true); $this->setAdminUser(); $lpg = $this->getDataGenerator()->get_plugin_generator('core_competency'); $framework = $lpg->create_framework(); // Trigger and capture the event. $sink = $this->redirectEvents(); $framework->set_shortname('Shortname modified'); api::update_framework($framework->to_record()); // Get our event event. $events = $sink->get_events(); $event = reset($events); // Check that the event data is valid. $this->assertInstanceOf('\\core\\event\\competency_framework_updated', $event); $this->assertEquals($framework->get_id(), $event->objectid); $this->assertEquals($framework->get_contextid(), $event->contextid); $this->assertEventContextNotUsed($event); $this->assertDebuggingNotCalled(); }
/** * Update an existing competency framework * * @param array $competencyframework An array with all the fields for a competency framework. * @return boolean */ public static function update_competency_framework($competencyframework) { $params = self::validate_parameters(self::update_competency_framework_parameters(), array('competencyframework' => $competencyframework)); $params = $params['competencyframework']; $framework = api::read_framework($params['id']); self::validate_context($framework->get_context()); $params = (object) $params; return api::update_framework($params); }
// We check that we have the permission to edit this framework, in its own context. require_login(); \core_competency\api::require_enabled(); require_capability('moodle/competency:competencymanage', $context); // Set up the framework page. list($pagetitle, $pagesubtitle, $url, $frameworksurl) = tool_lp\page_helper::setup_for_framework($id, $pagecontextid, $framework, $returntype); $output = $PAGE->get_renderer('tool_lp'); $form = new \tool_lp\form\competency_framework($url->out(false), array('context' => $context, 'persistent' => $framework)); if ($form->is_cancelled()) { redirect($frameworksurl); } else { if ($data = $form->get_data()) { if (empty($data->id)) { // Create new framework. $data->contextid = $context->id; $framework = \core_competency\api::create_framework($data); $frameworkmanageurl = new moodle_url('/admin/tool/lp/competencies.php', array('pagecontextid' => $pagecontextid, 'competencyframeworkid' => $framework->get_id())); $messagesuccess = get_string('competencyframeworkcreated', 'tool_lp'); redirect($frameworkmanageurl, $messagesuccess, 0, \core\output\notification::NOTIFY_SUCCESS); } else { \core_competency\api::update_framework($data); $messagesuccess = get_string('competencyframeworkupdated', 'tool_lp'); redirect($frameworksurl, $messagesuccess, 0, \core\output\notification::NOTIFY_SUCCESS); } } } echo $output->header(); echo $output->heading($pagetitle, 2); echo $output->heading($pagesubtitle, 3); $form->display(); echo $output->footer();