/**
  * 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;
 }
示例#2
0
文件: api_test.php 项目: dg711/moodle
 /**
  * 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());
 }
示例#3
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;
 }
    $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();