Пример #1
0
 /**
  * Test the user competency viewed event in course.
  *
  */
 public function test_user_competency_viewed_in_course()
 {
     $this->resetAfterTest(true);
     $this->setAdminUser();
     $dg = $this->getDataGenerator();
     $lpg = $this->getDataGenerator()->get_plugin_generator('core_competency');
     $user = $dg->create_user();
     $course = $dg->create_course();
     $fr = $lpg->create_framework();
     $c = $lpg->create_competency(array('competencyframeworkid' => $fr->get_id()));
     $pc = $lpg->create_course_competency(array('courseid' => $course->id, 'competencyid' => $c->get_id()));
     $params = array('userid' => $user->id, 'competencyid' => $c->get_id(), 'courseid' => $course->id);
     $ucc = $lpg->create_user_competency_course($params);
     // Trigger and capture the event.
     $sink = $this->redirectEvents();
     api::user_competency_viewed_in_course($ucc);
     // Get our event event.
     $events = $sink->get_events();
     $event = reset($events);
     // Check that the event data is valid.
     $this->assertInstanceOf('\\core\\event\\competency_user_competency_viewed_in_course', $event);
     $this->assertEquals($ucc->get_id(), $event->objectid);
     $this->assertEquals(context_course::instance($course->id)->id, $event->contextid);
     $this->assertEquals($ucc->get_userid(), $event->relateduserid);
     $this->assertEquals($course->id, $event->courseid);
     $this->assertEquals($c->get_id(), $event->other['competencyid']);
     $this->assertEventContextNotUsed($event);
     $this->assertDebuggingNotCalled();
     // Test validation.
     $params = array('objectid' => $ucc->get_id(), 'contextid' => $ucc->get_context()->id, 'other' => null);
     // Missing courseid.
     try {
         \core\event\competency_user_competency_viewed_in_course::create($params)->trigger();
         $this->fail('The \'courseid\' value must be set.');
     } catch (coding_exception $e) {
         $this->assertRegExp("/The 'courseid' value must be set./", $e->getMessage());
     }
     $params['contextid'] = context_course::instance($course->id)->id;
     $params['courseid'] = $course->id;
     // Missing competencyid.
     try {
         \core\event\competency_user_competency_viewed_in_course::create($params)->trigger();
         $this->fail('The \'competencyid\' value must be set.');
     } catch (coding_exception $e) {
         $this->assertRegExp("/The 'competencyid' value must be set./", $e->getMessage());
     }
 }
Пример #2
0
 /**
  * Log user competency viewed in course event.
  *
  * @param int $competencyid The competency ID.
  * @param int $userid The user ID.
  * @param int $courseid The course ID.
  * @return boolean
  */
 public static function user_competency_viewed_in_course($competencyid, $userid, $courseid)
 {
     $params = self::validate_parameters(self::user_competency_viewed_in_course_parameters(), array('competencyid' => $competencyid, 'userid' => $userid, 'courseid' => $courseid));
     $ucc = api::get_user_competency_in_course($params['courseid'], $params['userid'], $params['competencyid']);
     $result = api::user_competency_viewed_in_course($ucc);
     return $result;
 }
Пример #3
0
    $user = $DB->get_record('user', array('id' => $userid));
}
$competency = new \core_competency\competency($competencyid);
// Does a permissions check for us.
if ($userid > 0) {
    $usercompetencycourses = \core_competency\api::list_user_competencies_in_course($courseid, $userid);
}
$subtitle = $competency->get_shortname() . ' <em>' . $competency->get_idnumber() . '</em>';
list($title, $subtitle) = \tool_lp\page_helper::setup_for_course($url, $course, $subtitle);
$output = $PAGE->get_renderer('tool_lp');
if ($userid > 0) {
    $userheading = array('heading' => fullname($user), 'user' => $user, 'usercontext' => $usercontext);
}
echo $output->header();
if ($userid > 0) {
    echo $OUTPUT->context_header($userheading, 3);
}
$baseurl = new moodle_url('/admin/tool/lp/user_competency_in_course.php');
$nav = new \tool_lp\output\user_competency_course_navigation($userid, $competencyid, $courseid, $baseurl);
echo $output->render($nav);
if ($userid > 0) {
    $page = new \tool_lp\output\user_competency_summary_in_course($userid, $competencyid, $courseid);
    echo $output->render($page);
    // Trigger the viewed event.
    $uc = \core_competency\api::get_user_competency_in_course($courseid, $userid, $competencyid);
    \core_competency\api::user_competency_viewed_in_course($uc, $courseid);
} else {
    echo $output->container('', 'clearfix');
    echo $output->notify_problem(get_string('noparticipants', 'tool_lp'));
}
echo $output->footer();