mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
MDL-77701 mod_h5pactivity: Return admin settings in by_courses WS
This commit is contained in:
parent
09fd61415e
commit
349774a9f3
@ -96,8 +96,16 @@ class get_h5pactivities_by_courses extends external_api {
|
||||
}
|
||||
}
|
||||
|
||||
$h5pglobalsettings = [
|
||||
'enablesavestate' => get_config('mod_h5pactivity', 'enablesavestate'),
|
||||
];
|
||||
if (!empty($h5pglobalsettings['enablesavestate'])) {
|
||||
$h5pglobalsettings['savestatefreq'] = get_config('mod_h5pactivity', 'savestatefreq');
|
||||
}
|
||||
|
||||
$result = [
|
||||
'h5pactivities' => $returnedh5pactivities,
|
||||
'h5pglobalsettings' => $h5pglobalsettings,
|
||||
'warnings' => $warnings
|
||||
];
|
||||
return $result;
|
||||
@ -115,6 +123,14 @@ class get_h5pactivities_by_courses extends external_api {
|
||||
'h5pactivities' => new external_multiple_structure(
|
||||
h5pactivity_summary_exporter::get_read_structure()
|
||||
),
|
||||
'h5pglobalsettings' => new external_single_structure(
|
||||
[
|
||||
'enablesavestate' => new external_value(PARAM_BOOL, 'Whether saving state is enabled.'),
|
||||
'savestatefreq' => new external_value(PARAM_INT, 'How often (in seconds) state is saved.', VALUE_OPTIONAL),
|
||||
],
|
||||
'H5P global settings',
|
||||
VALUE_OPTIONAL,
|
||||
),
|
||||
'warnings' => new external_warnings(),
|
||||
]
|
||||
);
|
||||
|
@ -104,6 +104,10 @@ class get_h5pactivities_by_courses_test extends externallib_advanced_testcase {
|
||||
$manual->enrol_user($maninstance1, $user->id, $studentrole->id);
|
||||
$manual->enrol_user($maninstance2, $user->id, $studentrole->id);
|
||||
|
||||
// Set admin settings.
|
||||
set_config('enablesavestate', 1, 'mod_h5pactivity');
|
||||
set_config('savestatefreq', 120, 'mod_h5pactivity');
|
||||
|
||||
// Check the activities returned by the first course.
|
||||
$this->setUser($user);
|
||||
$courseids = [$course1->id];
|
||||
@ -114,6 +118,8 @@ class get_h5pactivities_by_courses_test extends externallib_advanced_testcase {
|
||||
$this->assert_activities($activities, $result);
|
||||
$this->assertNotContains('deployedfile', $result['h5pactivities'][0]);
|
||||
$this->assertNotContains('deployedfile', $result['h5pactivities'][1]);
|
||||
$this->assertEquals(1, $result['h5pglobalsettings']['enablesavestate']);
|
||||
$this->assertEquals(120, $result['h5pglobalsettings']['savestatefreq']);
|
||||
|
||||
// Call the external function without passing course id.
|
||||
// Expected result, all the courses, course1 and course2.
|
||||
@ -136,18 +142,25 @@ class get_h5pactivities_by_courses_test extends externallib_advanced_testcase {
|
||||
$this->assertEquals($deployedfile['timemodified'], $result['h5pactivities'][2]['deployedfile']['timemodified']);
|
||||
$this->assertEquals($deployedfile['mimetype'], $result['h5pactivities'][2]['deployedfile']['mimetype']);
|
||||
$this->assertEquals($deployedfile['fileurl'], $result['h5pactivities'][2]['deployedfile']['fileurl']);
|
||||
$this->assertEquals(1, $result['h5pglobalsettings']['enablesavestate']);
|
||||
$this->assertEquals(120, $result['h5pglobalsettings']['savestatefreq']);
|
||||
|
||||
// Unenrol user from second course.
|
||||
$manual->unenrol_user($maninstance2, $user->id);
|
||||
// Remove the last activity from the array.
|
||||
array_pop($activities);
|
||||
|
||||
// Disable save state.
|
||||
set_config('enablesavestate', 0, 'mod_h5pactivity');
|
||||
|
||||
// Call the external function without passing course id.
|
||||
$result = get_h5pactivities_by_courses::execute([]);
|
||||
$result = external_api::clean_returnvalue(get_h5pactivities_by_courses::execute_returns(), $result);
|
||||
$this->assertCount(0, $result['warnings']);
|
||||
$this->assertCount(2, $result['h5pactivities']);
|
||||
$this->assert_activities($activities, $result);
|
||||
$this->assertEquals(0, $result['h5pglobalsettings']['enablesavestate']);
|
||||
$this->assertNotContains('savestatefreq', $result['h5pglobalsettings']);
|
||||
|
||||
// Call for the second course we unenrolled the user from, expected warning.
|
||||
$result = get_h5pactivities_by_courses::execute([$course2->id]);
|
||||
@ -166,7 +179,7 @@ class get_h5pactivities_by_courses_test extends externallib_advanced_testcase {
|
||||
*/
|
||||
protected function assert_activities(array $activities, array $result): void {
|
||||
|
||||
$total = count($result);
|
||||
$total = count($result['h5pactivities']);
|
||||
for ($i = 0; $i < $total; $i++) {
|
||||
$this->assertEquals($activities[$i]->id, $result['h5pactivities'][$i]['id']);
|
||||
$this->assertEquals($activities[$i]->course, $result['h5pactivities'][$i]['course']);
|
||||
|
@ -1,6 +1,10 @@
|
||||
This files describes API changes in /mod/h5pactivity/*,
|
||||
information provided here is intended especially for developers.
|
||||
|
||||
=== 4.2 ===
|
||||
|
||||
* The WebService mod_h5pactivity_get_h5pactivities_by_courses now returns a `h5pglobalsettings` property that includes the global settings for H5P activities.
|
||||
|
||||
=== 4.1 ===
|
||||
|
||||
* The following methods now accept an optional `$currentgroup` parameter in order to better support groups:
|
||||
|
Loading…
x
Reference in New Issue
Block a user