Exemplo n.º 1
0
 /**
  * Convenience method to instantiate the event.
  *
  * @param competency $competency The competency.
  * @return self
  */
 public static function create_from_competency(competency $competency)
 {
     if (!$competency->get_id()) {
         throw new \coding_exception('The competency ID must be set.');
     }
     $event = static::create(array('contextid' => $competency->get_context()->id, 'objectid' => $competency->get_id()));
     $event->add_record_snapshot(competency::TABLE, $competency->to_record());
     return $event;
 }
Exemplo n.º 2
0
 /**
  * Construct this renderable.
  *
  * @param \core_competency\competency $competency Competency persistent.
  * @param \core_competency\competency_framework $framework framework persistent.
  * @param boolean $includerelated Include or not related competencies.
  * @param boolean $includecourses Include or not competency courses.
  */
 public function __construct($competency, $framework, $includerelated, $includecourses)
 {
     $this->competency = $competency;
     $this->framework = $framework;
     if ($includerelated) {
         $this->relatedcompetencies = api::list_related_competencies($competency->get_id());
     }
     if ($includecourses) {
         $this->courses = api::list_courses_using_competency($competency->get_id());
     }
 }
Exemplo n.º 3
0
 /**
  * List the competencies in this course.
  *
  * @param int $courseid The course id
  * @return competency[] Indexed by competency ID.
  */
 public static function list_competencies($courseid)
 {
     global $DB;
     $sql = 'SELECT comp.*
               FROM {' . competency::TABLE . '} comp
               JOIN {' . self::TABLE . '} coursecomp
                 ON coursecomp.competencyid = comp.id
              WHERE coursecomp.courseid = ?';
     $params = array($courseid);
     $sql .= ' ORDER BY coursecomp.sortorder ASC';
     $results = $DB->get_recordset_sql($sql, $params);
     $instances = array();
     foreach ($results as $result) {
         $comp = new competency(0, $result);
         $instances[$comp->get_id()] = $comp;
     }
     $results->close();
     return $instances;
 }
Exemplo n.º 4
0
 /**
  * Add a related competency.
  *
  * @param int $competencyid The id of the competency
  * @param int $relatedcompetencyid The id of the related competency.
  * @return bool False when create failed, true on success, or if the relation already existed.
  */
 public static function add_related_competency($competencyid, $relatedcompetencyid)
 {
     static::require_enabled();
     $competency1 = new competency($competencyid);
     $competency2 = new competency($relatedcompetencyid);
     require_capability('moodle/competency:competencymanage', $competency1->get_context());
     $relatedcompetency = related_competency::get_relation($competency1->get_id(), $competency2->get_id());
     if (!$relatedcompetency->get_id()) {
         $relatedcompetency->create();
         return true;
     }
     return true;
 }
Exemplo n.º 5
0
 /**
  * Get descendant ids.
  *
  * @param competency $competency The competency.
  * @return array Array of competencies ids.
  */
 public static function get_descendants_ids($competency)
 {
     global $DB;
     $path = $DB->sql_like_escape($competency->get_path() . $competency->get_id() . '/') . '%';
     $like = $DB->sql_like('path', ':likepath');
     return $DB->get_fieldset_select(self::TABLE, 'id', $like, array('likepath' => $path));
 }