/** * Add a competency to a plan. * * @param int $planid The id of the plan * @param int $competencyid The id of the competency * @return bool */ public static function add_competency_to_plan($planid, $competencyid) { static::require_enabled(); $plan = new plan($planid); // First we do a permissions check. if (!$plan->can_manage()) { throw new required_capability_exception($plan->get_context(), 'moodle/competency:planmanage', 'nopermissions', ''); } else { if ($plan->is_based_on_template()) { throw new coding_exception('A competency can not be added to a learning plan based on a template'); } } if (!$plan->can_be_edited()) { throw new coding_exception('A competency can not be added to a learning plan completed'); } $competency = new competency($competencyid); // Can not add a competency that belong to a hidden framework. if ($competency->get_framework()->get_visible() == false) { throw new coding_exception('A competency belonging to hidden framework can not be added'); } $exists = plan_competency::get_record(array('planid' => $planid, 'competencyid' => $competencyid)); if (!$exists) { $record = new stdClass(); $record->planid = $planid; $record->competencyid = $competencyid; $plancompetency = new plan_competency(0, $record); $plancompetency->create(); } return true; }
/** * Create a new plan competency. * * @param array|stdClass $record * @return plan_competency */ public function create_plan_competency($record = null) { $record = (object) $record; if (!isset($record->planid)) { throw new coding_exception('The planid value is required.'); } if (!isset($record->competencyid)) { throw new coding_exception('The competencyid value is required.'); } $plancompetency = new plan_competency(0, $record); $plancompetency->create(); return $plancompetency; }