Merge branch 'MDL-49606-master' of git://github.com/jleyva/moodle
This commit is contained in:
+17
-2
@@ -299,7 +299,8 @@ class core_enrol_external extends external_api {
|
||||
// If any problems are found then exceptions are thrown with helpful error messages
|
||||
$params = self::validate_parameters(self::get_users_courses_parameters(), array('userid'=>$userid));
|
||||
|
||||
$courses = enrol_get_users_courses($params['userid'], true, 'id, shortname, fullname, idnumber, visible');
|
||||
$courses = enrol_get_users_courses($params['userid'], true, 'id, shortname, fullname, idnumber, visible,
|
||||
summary, summaryformat, format, showgrades, lang, enablecompletion');
|
||||
$result = array();
|
||||
|
||||
foreach ($courses as $course) {
|
||||
@@ -320,7 +321,14 @@ class core_enrol_external extends external_api {
|
||||
$enrolledsql = "SELECT COUNT('x') FROM ($enrolledsqlselect) enrolleduserids";
|
||||
$enrolledusercount = $DB->count_records_sql($enrolledsql, $enrolledparams);
|
||||
|
||||
$result[] = array('id'=>$course->id, 'shortname'=>$course->shortname, 'fullname'=>$course->fullname, 'idnumber'=>$course->idnumber,'visible'=>$course->visible, 'enrolledusercount'=>$enrolledusercount);
|
||||
list($course->summary, $course->summaryformat) =
|
||||
external_format_text($course->summary, $course->summaryformat, $context->id, 'course', 'summary', 0);
|
||||
|
||||
$result[] = array('id' => $course->id, 'shortname' => $course->shortname, 'fullname' => $course->fullname,
|
||||
'idnumber' => $course->idnumber, 'visible' => $course->visible, 'enrolledusercount' => $enrolledusercount,
|
||||
'summary' => $course->summary, 'summaryformat' => $course->summaryformat, 'format' => $course->format,
|
||||
'showgrades' => $course->showgrades, 'lang' => $course->lang, 'enablecompletion' => $course->enablecompletion
|
||||
);
|
||||
}
|
||||
|
||||
return $result;
|
||||
@@ -341,6 +349,13 @@ class core_enrol_external extends external_api {
|
||||
'enrolledusercount' => new external_value(PARAM_INT, 'Number of enrolled users in this course'),
|
||||
'idnumber' => new external_value(PARAM_RAW, 'id number of course'),
|
||||
'visible' => new external_value(PARAM_INT, '1 means visible, 0 means hidden course'),
|
||||
'summary' => new external_value(PARAM_RAW, 'summary', VALUE_OPTIONAL),
|
||||
'summaryformat' => new external_format_value('summary', VALUE_OPTIONAL),
|
||||
'format' => new external_value(PARAM_PLUGIN, 'course format: weeks, topics, social, site', VALUE_OPTIONAL),
|
||||
'showgrades' => new external_value(PARAM_BOOL, 'true if grades are shown, otherwise false', VALUE_OPTIONAL),
|
||||
'lang' => new external_value(PARAM_LANG, 'forced course language', VALUE_OPTIONAL),
|
||||
'enablecompletion' => new external_value(PARAM_BOOL, 'true if completion is enabled, otherwise false',
|
||||
VALUE_OPTIONAL)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
@@ -96,17 +96,26 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
|
||||
|
||||
$this->resetAfterTest(true);
|
||||
|
||||
$course1 = self::getDataGenerator()->create_course();
|
||||
$coursedata1 = array(
|
||||
'summary' => 'Lightwork Course 1 description',
|
||||
'summaryformat' => FORMAT_MOODLE,
|
||||
'lang' => 'en',
|
||||
'enablecompletion' => true,
|
||||
'showgrades' => true
|
||||
);
|
||||
|
||||
$course1 = self::getDataGenerator()->create_course($coursedata1);
|
||||
$course2 = self::getDataGenerator()->create_course();
|
||||
$courses = array($course1, $course2);
|
||||
|
||||
// Enrol $USER in the courses.
|
||||
// We use the manual plugin.
|
||||
$roleid = null;
|
||||
$contexts = array();
|
||||
foreach ($courses as $course) {
|
||||
$context = context_course::instance($course->id);
|
||||
$contexts[$course->id] = context_course::instance($course->id);
|
||||
$roleid = $this->assignUserCapability('moodle/course:viewparticipants',
|
||||
$context->id, $roleid);
|
||||
$contexts[$course->id]->id, $roleid);
|
||||
|
||||
$this->getDataGenerator()->enrol_user($USER->id, $course->id, $roleid, 'manual');
|
||||
}
|
||||
@@ -119,6 +128,20 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
|
||||
|
||||
// Check we retrieve the good total number of enrolled users.
|
||||
$this->assertEquals(2, count($enrolledincourses));
|
||||
|
||||
// We need to format summary and summaryformat before to compare them with those values returned by the webservice.
|
||||
list($course1->summary, $course1->summaryformat) =
|
||||
external_format_text($course1->summary, $course1->summaryformat, $contexts[$course1->id]->id, 'course', 'summary', 0);
|
||||
|
||||
// Check there are no differences between $course1 properties and course values returned by the webservice
|
||||
// only for those fields listed in the $coursedata1 array.
|
||||
foreach ($enrolledincourses as $courseenrol) {
|
||||
if ($courseenrol['id'] == $course1->id) {
|
||||
foreach ($coursedata1 as $fieldname => $value) {
|
||||
$this->assertEquals($courseenrol[$fieldname], $course1->$fieldname);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user