Esempio n. 1
0
 /**
  * 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;
 }