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; }
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())); }
/** * 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(); }
/** * 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; }
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); }