/** * Export the data. * * @param renderer_base $output * @return stdClass */ public function export_for_template(renderer_base $output) { global $DB; $usercompetencycourse = api::get_user_competency_in_course($this->courseid, $this->userid, $this->competencyid); $competency = $usercompetencycourse->get_competency(); if (empty($usercompetencycourse) || empty($competency)) { throw new \invalid_parameter_exception('Invalid params. The competency does not belong to the course.'); } $relatedcompetencies = api::list_related_competencies($competency->get_id()); $user = $DB->get_record('user', array('id' => $this->userid)); $evidence = api::list_evidence_in_course($this->userid, $this->courseid, $this->competencyid); $course = $DB->get_record('course', array('id' => $this->courseid)); $params = array('competency' => $competency, 'usercompetencycourse' => $usercompetencycourse, 'evidence' => $evidence, 'user' => $user, 'course' => $course, 'scale' => $competency->get_scale(), 'relatedcompetencies' => $relatedcompetencies); $exporter = new user_competency_summary_in_course_exporter(null, $params); $data = $exporter->export($output); return $data; }
/** * Get a user competency in a course. */ public function test_get_user_competency_in_course() { $this->resetAfterTest(true); $dg = $this->getDataGenerator(); $lpg = $dg->get_plugin_generator('core_competency'); $this->setAdminUser(); $user = $dg->create_user(); $c1 = $dg->create_course(); // Enrol the user so they can be rated in the course. $studentarch = get_archetype_roles('student'); $studentrole = array_shift($studentarch); $coursecontext = context_course::instance($c1->id); $dg->role_assign($studentrole->id, $user->id, $coursecontext->id); $dg->enrol_user($user->id, $c1->id, $studentrole->id); $framework = $lpg->create_framework(); $comp1 = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id())); $comp2 = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id())); $lpg->create_course_competency(array('competencyid' => $comp1->get_id(), 'courseid' => $c1->id)); $lpg->create_course_competency(array('competencyid' => $comp2->get_id(), 'courseid' => $c1->id)); // Create a user competency for comp1. api::grade_competency_in_course($c1, $user->id, $comp1->get_id(), 3, 'Unit test'); // Test for competency already exist in user_competency. $uc = api::get_user_competency_in_course($c1->id, $user->id, $comp1->get_id()); $this->assertEquals($comp1->get_id(), $uc->get_competencyid()); $this->assertEquals($user->id, $uc->get_userid()); $this->assertEquals(3, $uc->get_grade()); $this->assertEquals(true, $uc->get_proficiency()); // Test for competency does not exist in user_competency. $uc2 = api::get_user_competency_in_course($c1->id, $user->id, $comp2->get_id()); $this->assertEquals($comp2->get_id(), $uc2->get_competencyid()); $this->assertEquals($user->id, $uc2->get_userid()); $this->assertEquals(null, $uc2->get_grade()); $this->assertEquals(null, $uc2->get_proficiency()); }
/** * 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; }
$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();