Merge branch 'MDL-52999-master' of git://github.com/jleyva/moodle

This commit is contained in:
Dan Poltawski
2016-03-01 10:43:12 +08:00
6 changed files with 64 additions and 13 deletions
+15 -9
View File
@@ -1639,9 +1639,11 @@ class mod_assign_external extends external_api {
$pluginsubmissionparams = array();
foreach ($instance->get_submission_plugins() as $plugin) {
$pluginparams = $plugin->get_external_parameters();
if (!empty($pluginparams)) {
$pluginsubmissionparams = array_merge($pluginsubmissionparams, $pluginparams);
if ($plugin->is_visible()) {
$pluginparams = $plugin->get_external_parameters();
if (!empty($pluginparams)) {
$pluginsubmissionparams = array_merge($pluginsubmissionparams, $pluginparams);
}
}
}
@@ -1716,9 +1718,11 @@ class mod_assign_external extends external_api {
$pluginfeedbackparams = array();
foreach ($instance->get_feedback_plugins() as $plugin) {
$pluginparams = $plugin->get_external_parameters();
if (!empty($pluginparams)) {
$pluginfeedbackparams = array_merge($pluginfeedbackparams, $pluginparams);
if ($plugin->is_visible()) {
$pluginparams = $plugin->get_external_parameters();
if (!empty($pluginparams)) {
$pluginfeedbackparams = array_merge($pluginfeedbackparams, $pluginparams);
}
}
}
@@ -1856,9 +1860,11 @@ class mod_assign_external extends external_api {
$pluginfeedbackparams = array();
foreach ($instance->get_feedback_plugins() as $plugin) {
$pluginparams = $plugin->get_external_parameters();
if (!empty($pluginparams)) {
$pluginfeedbackparams = array_merge($pluginfeedbackparams, $pluginparams);
if ($plugin->is_visible()) {
$pluginparams = $plugin->get_external_parameters();
if (!empty($pluginparams)) {
$pluginfeedbackparams = array_merge($pluginfeedbackparams, $pluginparams);
}
}
}
+1 -1
View File
@@ -513,7 +513,7 @@ class assign_feedback_comments extends assign_feedback_plugin {
public function get_external_parameters() {
$editorparams = array('text' => new external_value(PARAM_RAW, 'The text for this feedback.'),
'format' => new external_value(PARAM_INT, 'The format for this feedback'));
$editorstructure = new external_single_structure($editorparams);
$editorstructure = new external_single_structure($editorparams, 'Editor structure', VALUE_OPTIONAL);
return array('assignfeedbackcomments_editor' => $editorstructure);
}
+2 -1
View File
@@ -682,7 +682,8 @@ class assign_feedback_file extends assign_feedback_plugin {
return array(
'files_filemanager' => new external_value(
PARAM_INT,
'The id of a draft area containing files for this feedback.'
'The id of a draft area containing files for this feedback.',
VALUE_OPTIONAL
)
);
}
+2 -1
View File
@@ -528,7 +528,8 @@ class assign_submission_file extends assign_submission_plugin {
return array(
'files_filemanager' => new external_value(
PARAM_INT,
'The id of a draft area containing files for this submission.'
'The id of a draft area containing files for this submission.',
VALUE_OPTIONAL
)
);
}
@@ -618,7 +618,7 @@ class assign_submission_onlinetext extends assign_submission_plugin {
$editorparams = array('text' => new external_value(PARAM_TEXT, 'The text for this submission.'),
'format' => new external_value(PARAM_INT, 'The format for this submission'),
'itemid' => new external_value(PARAM_INT, 'The draft area id for files attached to the submission'));
$editorstructure = new external_single_structure($editorparams);
$editorstructure = new external_single_structure($editorparams, 'Editor structure', VALUE_OPTIONAL);
return array('onlinetext_editor' => $editorstructure);
}
+43
View File
@@ -1557,4 +1557,47 @@ class mod_assign_external_testcase extends externallib_advanced_testcase {
}
/**
* Test subplugins availability
*/
public function test_subplugins_availability() {
global $CFG;
require_once($CFG->dirroot . '/mod/assign/adminlib.php');
$this->resetAfterTest(true);
// Hide assignment file submissiong plugin.
$pluginmanager = new assign_plugin_manager('assignsubmission');
$pluginmanager->hide_plugin('file');
$parameters = mod_assign_external::save_submission_parameters();
$this->assertTrue(!isset($parameters->keys['plugindata']->keys['files_filemanager']));
// Show it again and check that the value is returned as optional.
$pluginmanager->show_plugin('file');
$parameters = mod_assign_external::save_submission_parameters();
$this->assertTrue(isset($parameters->keys['plugindata']->keys['files_filemanager']));
$this->assertEquals(VALUE_OPTIONAL, $parameters->keys['plugindata']->keys['files_filemanager']->required);
// Hide feedback file submissiong plugin.
$pluginmanager = new assign_plugin_manager('assignfeedback');
$pluginmanager->hide_plugin('file');
$parameters = mod_assign_external::save_grade_parameters();
$this->assertTrue(!isset($parameters->keys['plugindata']->keys['files_filemanager']));
// Show it again and check that the value is returned as optional.
$pluginmanager->show_plugin('file');
$parameters = mod_assign_external::save_grade_parameters();
$this->assertTrue(isset($parameters->keys['plugindata']->keys['files_filemanager']));
$this->assertEquals(VALUE_OPTIONAL, $parameters->keys['plugindata']->keys['files_filemanager']->required);
// Check a different one.
$pluginmanager->show_plugin('comments');
$this->assertTrue(isset($parameters->keys['plugindata']->keys['assignfeedbackcomments_editor']));
$this->assertEquals(VALUE_OPTIONAL, $parameters->keys['plugindata']->keys['assignfeedbackcomments_editor']->required);
}
}