Example #1
0
 protected function get_other_values(renderer_base $output)
 {
     $other = array();
     if (!empty($this->related['actionuser'])) {
         $exporter = new user_summary_exporter($this->related['actionuser']);
         $actionuser = $exporter->export($output);
         $other['actionuser'] = $actionuser;
     }
     $other['description'] = $this->persistent->get_description();
     $other['userdate'] = userdate($this->persistent->get_timecreated());
     if ($this->persistent->get_grade() === null) {
         $gradename = '-';
     } else {
         $gradename = $this->related['scale']->scale_items[$this->persistent->get_grade() - 1];
     }
     $other['gradename'] = $gradename;
     // Try to guess the user from the user competency.
     $userid = null;
     if ($this->related['usercompetency']) {
         $userid = $this->related['usercompetency']->get_userid();
     } else {
         if ($this->related['usercompetencyplan']) {
             $userid = $this->related['usercompetencyplan']->get_userid();
         } else {
             $uc = user_competency::get_record(['id' => $this->persistent->get_usercompetencyid()]);
             $userid = $uc->get_userid();
         }
     }
     $other['candelete'] = evidence::can_delete_user($userid);
     return $other;
 }
 /**
  * Convenience method to instantiate the event.
  *
  * @param evidence $evidence The evidence.
  * @param user_competency $usercompetency The user competency object linked to the evidence.
  * @param bool $recommend The recommend flag.
  * @return evidence_created
  * @throws \coding_exception
  */
 public static final function create_from_evidence(evidence $evidence, user_competency $usercompetency, $recommend)
 {
     // Make sure we have a valid evidence.
     if (!$evidence->get_id()) {
         throw new \coding_exception('The evidence ID must be set.');
     }
     // Make sure we have a valid user competency.
     if (!$usercompetency->get_id()) {
         throw new \coding_exception('The user competency ID must be set.');
     }
     // Make sure that the a proper user competecy is linked to the evidence.
     if ($evidence->get_usercompetencyid() != $usercompetency->get_id()) {
         throw new \coding_exception('The user competency linked with this evidence is invalid.');
     }
     $event = static::create(['contextid' => $evidence->get_contextid(), 'objectid' => $evidence->get_id(), 'userid' => $evidence->get_actionuserid(), 'relateduserid' => $usercompetency->get_userid(), 'other' => ['usercompetencyid' => $usercompetency->get_id(), 'competencyid' => $usercompetency->get_competencyid(), 'action' => $evidence->get_action(), 'recommend' => $recommend]]);
     // Add record snapshot for the evidence.
     $event->add_record_snapshot(evidence::TABLE, $evidence->to_record());
     // Add record snapshot for the user competency.
     $event->add_record_snapshot(user_competency::TABLE, $usercompetency->to_record());
     return $event;
 }
Example #3
0
 public function test_delete_evidence()
 {
     $this->resetAfterTest();
     $dg = $this->getDataGenerator();
     $ccg = $dg->get_plugin_generator('core_competency');
     $u1 = $dg->create_user();
     $f1 = $ccg->create_framework();
     $comp1 = $ccg->create_competency(['competencyframeworkid' => $f1->get_id()]);
     $uc1 = $ccg->create_user_competency(['userid' => $u1->id, 'competencyid' => $comp1->get_id()]);
     $ev1 = $ccg->create_evidence(['usercompetencyid' => $uc1->get_id()]);
     $ev2 = $ccg->create_evidence(['usercompetencyid' => $uc1->get_id()]);
     $this->setAdminUser($u1);
     $this->assertEquals(2, evidence::count_records());
     api::delete_evidence($ev1);
     $this->assertEquals(1, evidence::count_records());
     $this->assertFalse(evidence::record_exists($ev1->get_id()));
     $this->assertTrue(evidence::record_exists($ev2->get_id()));
 }
Example #4
0
 /**
  * Delete an evidence.
  *
  * @param evidence|int $evidenceorid The evidence, or its ID.
  * @return bool
  */
 public static function delete_evidence($evidenceorid)
 {
     $evidence = $evidenceorid;
     if (!is_object($evidence)) {
         $evidence = new evidence($evidenceorid);
     }
     $uc = new user_competency($evidence->get_usercompetencyid());
     if (!evidence::can_delete_user($uc->get_userid())) {
         throw new required_capability_exception($uc->get_context(), 'moodle/competency:evidencedelete', 'nopermissions', '');
     }
     return $evidence->delete();
 }
Example #5
0
 /**
  * Create a new evidence.
  *
  * @param array|stdClass $record
  * @return evidence
  */
 public function create_evidence($record = null)
 {
     $record = (object) $record;
     if (!isset($record->usercompetencyid)) {
         throw new coding_exception('The usercompetencyid value is required.');
     }
     if (!isset($record->action) && !isset($record->grade)) {
         $record->action = evidence::ACTION_LOG;
     }
     if (!isset($record->action)) {
         throw new coding_exception('The action value is required with a grade.');
     }
     if (!isset($record->contextid)) {
         $record->contextid = context_system::instance()->id;
     }
     if (!isset($record->descidentifier)) {
         $record->descidentifier = 'invalidevidencedesc';
     }
     if (!isset($record->desccomponent)) {
         $record->desccomponent = 'core_competency';
     }
     $evidence = new evidence(0, $record);
     $evidence->create();
     return $evidence;
 }
Example #6
0
 public function test_create_evidence()
 {
     $this->resetAfterTest(true);
     $user = $this->getDataGenerator()->create_user();
     $lpg = $this->getDataGenerator()->get_plugin_generator('core_competency');
     $framework = $lpg->create_framework();
     $c1 = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id()));
     $c2 = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id()));
     $rc1 = $lpg->create_user_competency(array('userid' => $user->id, 'competencyid' => $c1->get_id()));
     $rc2 = $lpg->create_user_competency(array('userid' => $user->id, 'competencyid' => $c2->get_id()));
     $e = $lpg->create_evidence(array('usercompetencyid' => $rc1->get_id()));
     $e = $lpg->create_evidence(array('usercompetencyid' => $rc2->get_id()));
     $this->assertEquals(2, evidence::count_records());
     $this->assertInstanceOf('\\core_competency\\evidence', $e);
 }