mirror of
https://github.com/moodle/moodle.git
synced 2025-08-07 09:56:38 +02:00
MDL-49617 webservices: Return additional fields in get_assignments WS
This commit is contained in:
parent
20d38830ae
commit
4e2e3c9528
1 changed files with 47 additions and 4 deletions
|
@ -269,7 +269,8 @@ class mod_assign_external extends external_api {
|
||||||
* @since Moodle 2.4
|
* @since Moodle 2.4
|
||||||
*/
|
*/
|
||||||
public static function get_assignments($courseids = array(), $capabilities = array()) {
|
public static function get_assignments($courseids = array(), $capabilities = array()) {
|
||||||
global $USER, $DB;
|
global $USER, $DB, $CFG;
|
||||||
|
require_once("$CFG->dirroot/mod/assign/locallib.php");
|
||||||
|
|
||||||
$params = self::validate_parameters(
|
$params = self::validate_parameters(
|
||||||
self::get_assignments_parameters(),
|
self::get_assignments_parameters(),
|
||||||
|
@ -336,7 +337,9 @@ class mod_assign_external extends external_api {
|
||||||
'm.maxattempts, ' .
|
'm.maxattempts, ' .
|
||||||
'm.markingworkflow, ' .
|
'm.markingworkflow, ' .
|
||||||
'm.markingallocation, ' .
|
'm.markingallocation, ' .
|
||||||
'm.requiresubmissionstatement';
|
'm.requiresubmissionstatement, '.
|
||||||
|
'm.intro, '.
|
||||||
|
'm.introformat';
|
||||||
$coursearray = array();
|
$coursearray = array();
|
||||||
foreach ($courses as $id => $course) {
|
foreach ($courses as $id => $course) {
|
||||||
$assignmentarray = array();
|
$assignmentarray = array();
|
||||||
|
@ -370,7 +373,7 @@ class mod_assign_external extends external_api {
|
||||||
}
|
}
|
||||||
$configrecords->close();
|
$configrecords->close();
|
||||||
|
|
||||||
$assignmentarray[]= array(
|
$assignment = array(
|
||||||
'id' => $module->assignmentid,
|
'id' => $module->assignmentid,
|
||||||
'cmid' => $module->id,
|
'cmid' => $module->id,
|
||||||
'course' => $module->course,
|
'course' => $module->course,
|
||||||
|
@ -398,6 +401,34 @@ class mod_assign_external extends external_api {
|
||||||
'requiresubmissionstatement' => $module->requiresubmissionstatement,
|
'requiresubmissionstatement' => $module->requiresubmissionstatement,
|
||||||
'configs' => $configarray
|
'configs' => $configarray
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Return or not intro and file attachments depending on the plugin settings.
|
||||||
|
$assign = new assign($context, null, null);
|
||||||
|
|
||||||
|
if ($assign->show_intro()) {
|
||||||
|
|
||||||
|
list($assignment['intro'], $assignment['introformat']) = external_format_text($module->intro,
|
||||||
|
$module->introformat, $context->id, 'mod_assign', ASSIGN_INTROATTACHMENT_FILEAREA, 0);
|
||||||
|
|
||||||
|
$fs = get_file_storage();
|
||||||
|
if ($files = $fs->get_area_files($context->id, 'mod_assign', ASSIGN_INTROATTACHMENT_FILEAREA,
|
||||||
|
0, 'timemodified', false)) {
|
||||||
|
|
||||||
|
$assignment['introattachments'] = array();
|
||||||
|
foreach ($files as $file) {
|
||||||
|
$filename = $file->get_filename();
|
||||||
|
|
||||||
|
$assignment['introattachments'][] = array(
|
||||||
|
'filename' => $filename,
|
||||||
|
'mimetype' => $file->get_mimetype(),
|
||||||
|
'fileurl' => moodle_url::make_webservice_pluginfile_url(
|
||||||
|
$context->id, 'mod_assign', ASSIGN_INTROATTACHMENT_FILEAREA, 0, '/', $filename)->out(false)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$assignmentarray[] = $assignment;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$coursearray[]= array(
|
$coursearray[]= array(
|
||||||
|
@ -450,7 +481,19 @@ class mod_assign_external extends external_api {
|
||||||
'markingworkflow' => new external_value(PARAM_INT, 'enable marking workflow'),
|
'markingworkflow' => new external_value(PARAM_INT, 'enable marking workflow'),
|
||||||
'markingallocation' => new external_value(PARAM_INT, 'enable marking allocation'),
|
'markingallocation' => new external_value(PARAM_INT, 'enable marking allocation'),
|
||||||
'requiresubmissionstatement' => new external_value(PARAM_INT, 'student must accept submission statement'),
|
'requiresubmissionstatement' => new external_value(PARAM_INT, 'student must accept submission statement'),
|
||||||
'configs' => new external_multiple_structure(self::get_assignments_config_structure(), 'configuration settings')
|
'configs' => new external_multiple_structure(self::get_assignments_config_structure(), 'configuration settings'),
|
||||||
|
'intro' => new external_value(PARAM_RAW,
|
||||||
|
'assignment intro, not allways returned because it deppends on the activity configuration', VALUE_OPTIONAL),
|
||||||
|
'introformat' => new external_format_value('intro', VALUE_OPTIONAL),
|
||||||
|
'introattachments' => new external_multiple_structure(
|
||||||
|
new external_single_structure(
|
||||||
|
array (
|
||||||
|
'filename' => new external_value(PARAM_FILE, 'file name'),
|
||||||
|
'mimetype' => new external_value(PARAM_RAW, 'mime type'),
|
||||||
|
'fileurl' => new external_value(PARAM_URL, 'file download url')
|
||||||
|
)
|
||||||
|
), 'intro attachments files', VALUE_OPTIONAL
|
||||||
|
)
|
||||||
), 'assignment information object');
|
), 'assignment information object');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue