MDL-53062 cbe: Fix errors in course_module_summary_exporter
We should take the cm_info as required related data so we can pick the fields we want to export from it.
This commit is contained in:
committed by
Frederic Massart
parent
e3ceb79a3f
commit
24fc4e30b6
@@ -1624,10 +1624,11 @@ class external extends external_api {
|
||||
$coursemodules = api::list_course_modules_using_competency($params['competencyid'], $params['courseid']);
|
||||
$result = array();
|
||||
|
||||
$fastmodinfo = get_fast_modinfo($cm->course);
|
||||
|
||||
foreach ($coursemodules as $cmid) {
|
||||
$cmrecord = get_coursemodule_from_id(null, $cmid);
|
||||
$context = context_module::instance($cmrecord->id);
|
||||
$exporter = new course_module_summary_exporter($cmrecord, array('context' => $context));
|
||||
$cminfo = $fastmodinfo->cms[$cmid];
|
||||
$exporter = new course_module_summary_exporter(null, array('cm' => $cminfo));
|
||||
$coursemodulesummary = $exporter->export($output);
|
||||
|
||||
$result[] = $coursemodulesummary;
|
||||
|
||||
@@ -29,41 +29,36 @@ use moodle_url;
|
||||
|
||||
|
||||
/**
|
||||
* Class for exporting a course module summary from an stdClass.
|
||||
* Class for exporting a course module summary from a cm_info class.
|
||||
*
|
||||
* @copyright 2015 Damyon Wiese
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class course_module_summary_exporter extends exporter {
|
||||
|
||||
protected static function define_related() {
|
||||
return array('cm' => 'cm_info');
|
||||
}
|
||||
|
||||
protected function get_other_values(renderer_base $output) {
|
||||
global $CFG;
|
||||
|
||||
require_once($CFG->libdir . '/modinfolib.php');
|
||||
|
||||
$cm = get_coursemodule_from_id(null, $this->data->id);
|
||||
$fastmodinfo = get_fast_modinfo($cm->course)->cms[$cm->id];
|
||||
$context = $this->related['cm']->context;
|
||||
|
||||
return array(
|
||||
'name' => $fastmodinfo->name,
|
||||
'url' => $fastmodinfo->url->out(),
|
||||
'iconurl' => $fastmodinfo->get_icon_url()->out()
|
||||
'id' => $this->related['cm']->id,
|
||||
'name' => external_format_string($this->related['cm']->name, $context->id),
|
||||
'url' => $this->related['cm']->url->out(),
|
||||
'iconurl' => $this->related['cm']->get_icon_url()->out()
|
||||
);
|
||||
}
|
||||
|
||||
public static function define_properties() {
|
||||
|
||||
public static function define_other_properties() {
|
||||
return array(
|
||||
'id' => array(
|
||||
'type' => PARAM_INT,
|
||||
),
|
||||
'visible' => array(
|
||||
'type' => PARAM_BOOL
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public static function define_other_properties() {
|
||||
return array(
|
||||
'name' => array(
|
||||
'type' => PARAM_TEXT
|
||||
),
|
||||
|
||||
+3
-1
@@ -78,9 +78,11 @@ class user_competency_summary_in_course_exporter extends exporter {
|
||||
$coursemodules = api::list_course_modules_using_competency($this->related['competency']->get_id(),
|
||||
$this->related['course']->id);
|
||||
|
||||
$fastmodinfo = get_fast_modinfo($this->related['course']->id);
|
||||
$exportedmodules = array();
|
||||
foreach ($coursemodules as $cm) {
|
||||
$cmexporter = new course_module_summary_exporter($cm);
|
||||
$cminfo = $fastmodinfo->cms[$cm];
|
||||
$cmexporter = new course_module_summary_exporter(null, array('cm' => $cminfo));
|
||||
$exportedmodules[] = $cmexporter->export($output);
|
||||
}
|
||||
$result->coursemodules = $exportedmodules;
|
||||
|
||||
@@ -133,9 +133,11 @@ class course_competencies_page implements renderable, templatable {
|
||||
|
||||
$coursemodules = api::list_course_modules_using_competency($competency->get_id(), $this->courseid);
|
||||
|
||||
$fastmodinfo = get_fast_modinfo($this->courseid);
|
||||
$exportedmodules = array();
|
||||
foreach ($coursemodules as $cm) {
|
||||
$cmexporter = new course_module_summary_exporter($cm);
|
||||
foreach ($coursemodules as $cmid) {
|
||||
$cminfo = $fastmodinfo->cms[$cmid];
|
||||
$cmexporter = new course_module_summary_exporter(null, array('cm' => $cminfo));
|
||||
$exportedmodules[] = $cmexporter->export($output);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user