added service to mark course competency as required in study plan
This commit is contained in:
parent
932587d2af
commit
82e92eed45
|
@ -894,6 +894,63 @@ class studyplanservice extends \external_api {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************
|
||||||
|
* *
|
||||||
|
* mark/unmark competency required *
|
||||||
|
* *
|
||||||
|
****************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parameter description for webservice function include_grade
|
||||||
|
*/
|
||||||
|
public static function require_competency_parameters() : \external_function_parameters {
|
||||||
|
return new \external_function_parameters( [
|
||||||
|
"competency_id" => new \external_value(PARAM_INT, 'id of competency '),
|
||||||
|
"item_id" => new \external_value(PARAM_INT, 'id of studyitem '),
|
||||||
|
"required" => new \external_value(PARAM_BOOL, 'required grade or not', VALUE_DEFAULT),
|
||||||
|
] );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return value description for webservice function include_grade
|
||||||
|
*/
|
||||||
|
public static function require_competency_returns() : \external_description {
|
||||||
|
return success::structure();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mark a gradable item for inclusion in the studyplan
|
||||||
|
* @param mixed $gradeid Id of gradable
|
||||||
|
* @param mixed $itemid Id of study item
|
||||||
|
* @param bool $include Include grade or not
|
||||||
|
* @param bool $required Mark grade as required or not
|
||||||
|
* @return array Success/Fail model
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function require_competency($competencyid, $itemid, $include, $required = false) {
|
||||||
|
global $USER;
|
||||||
|
$item = studyitem::find_by_id($itemid);
|
||||||
|
// Find related course and course context.
|
||||||
|
if($item->courseid()) {
|
||||||
|
$coursecontext = \context_course::instance($item->courseid());
|
||||||
|
// Do sanity checks.
|
||||||
|
\external_api::validate_context($coursecontext);
|
||||||
|
} else {
|
||||||
|
$coursecontext = null;
|
||||||
|
\external_api::validate_context($item->context());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check correct capabilities.
|
||||||
|
if (has_capability('local/treestudyplan:editstudyplan', $item->context()) ||
|
||||||
|
($coursecontext && is_enrolled($coursecontext, $USER, 'local/treestudyplan:selectowngradables'))) {
|
||||||
|
return coursecompetencyinfo::require_competency($competencyid, $itemid, $include, $required)->model();
|
||||||
|
} else {
|
||||||
|
return success::fail("Access denied")->model();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/****************************
|
/****************************
|
||||||
* *
|
* *
|
||||||
* list aggregators *
|
* list aggregators *
|
||||||
|
|
|
@ -322,6 +322,15 @@ $functions = [
|
||||||
'capabilities' => 'local/treestudyplan:editstudyplan, local/treestudyplan:selectowngradables',
|
'capabilities' => 'local/treestudyplan:editstudyplan, local/treestudyplan:selectowngradables',
|
||||||
'loginrequired' => true,
|
'loginrequired' => true,
|
||||||
],
|
],
|
||||||
|
'local_treestudyplan_require_competency' => [ // Web service function name.
|
||||||
|
'classname' => '\local_treestudyplan\studyplanservice', // Class containing the external function.
|
||||||
|
'methodname' => 'require_competency', // External function name.
|
||||||
|
'description' => 'Mark competency as required in course outcome',
|
||||||
|
'type' => 'read', // Database rights of the web service function (read, write).
|
||||||
|
'ajax' => true,
|
||||||
|
'capabilities' => 'local/treestudyplan:editstudyplan, local/treestudyplan:selectowngradables',
|
||||||
|
'loginrequired' => true,
|
||||||
|
],
|
||||||
'local_treestudyplan_all_associated' => [ // Web service function name.
|
'local_treestudyplan_all_associated' => [ // Web service function name.
|
||||||
'classname' => '\local_treestudyplan\associationservice', // Class containing the external function.
|
'classname' => '\local_treestudyplan\associationservice', // Class containing the external function.
|
||||||
'methodname' => 'all_associated', // External function name.
|
'methodname' => 'all_associated', // External function name.
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
defined('MOODLE_INTERNAL') || die();
|
defined('MOODLE_INTERNAL') || die();
|
||||||
|
|
||||||
$plugin->component = 'local_treestudyplan'; // Recommended since 2.0.2 (MDL-26035). Required since 3.0 (MDL-48494).
|
$plugin->component = 'local_treestudyplan'; // Recommended since 2.0.2 (MDL-26035). Required since 3.0 (MDL-48494).
|
||||||
$plugin->version = 2023112301; // YYYYMMDDHH (year, month, day, iteration).
|
$plugin->version = 2023112400; // YYYYMMDDHH (year, month, day, iteration).
|
||||||
$plugin->requires = 2021051700; // YYYYMMDDHH (This is the release version for Moodle 3.11).
|
$plugin->requires = 2021051700; // YYYYMMDDHH (This is the release version for Moodle 3.11).
|
||||||
|
|
||||||
$plugin->release = "1.1.0-b";
|
$plugin->release = "1.1.0-b";
|
||||||
|
|
Loading…
Reference in New Issue
Block a user