MDL-52064 cbe: Exporters are generic exporters - not for output
Making the persistent_exporter implement templatable, implies that the exporters are designed for output - but they are not - they are designed for any data returned through an external function. So lets not make them templatable, and make the default function name "export".
This commit is contained in:
committed by
Frederic Massart
parent
a214d35ec2
commit
5db5c22c15
@@ -316,7 +316,7 @@ class external extends external_api {
|
||||
$params = (object) $params;
|
||||
$result = api::create_framework($params);
|
||||
$exporter = new competency_framework_exporter($result);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
return $record;
|
||||
}
|
||||
|
||||
@@ -365,7 +365,7 @@ class external extends external_api {
|
||||
self::validate_context($framework->get_context());
|
||||
$output = $PAGE->get_renderer('tool_lp');
|
||||
$exporter = new competency_framework_exporter($framework);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
return $record;
|
||||
}
|
||||
|
||||
@@ -671,7 +671,7 @@ class external extends external_api {
|
||||
$records = array();
|
||||
foreach ($results as $result) {
|
||||
$exporter = new competency_framework_exporter($result);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
array_push($records, $record);
|
||||
}
|
||||
return $records;
|
||||
@@ -1130,7 +1130,7 @@ class external extends external_api {
|
||||
$params = (object) $params;
|
||||
$result = api::create_competency($params);
|
||||
$exporter = new competency_exporter($result, array('context' => $context));
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
return $record;
|
||||
}
|
||||
|
||||
@@ -1181,7 +1181,7 @@ class external extends external_api {
|
||||
self::validate_context($context);
|
||||
$output = $PAGE->get_renderer('tool_lp');
|
||||
$exporter = new competency_exporter($competency, array('context' => $context));
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
return $record;
|
||||
}
|
||||
|
||||
@@ -1426,7 +1426,7 @@ class external extends external_api {
|
||||
$records = array();
|
||||
foreach ($results as $result) {
|
||||
$exporter = new competency_exporter($result, array('context' => $context));
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
array_push($records, $record);
|
||||
}
|
||||
return $records;
|
||||
@@ -1499,14 +1499,14 @@ class external extends external_api {
|
||||
$records = array();
|
||||
foreach ($results as $result) {
|
||||
$exporter = new competency_exporter($result, array('context' => $context));
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
|
||||
if ($params['includerelated']) {
|
||||
$record->relatedcompetencies = array();
|
||||
$relatedcomps = $result->get_related_competencies();
|
||||
foreach ($relatedcomps as $comp) {
|
||||
$exporter = new competency_exporter($comp, array('context' => $context));
|
||||
$comprecord = $exporter->export_for_template($output);
|
||||
$comprecord = $exporter->export($output);
|
||||
$record->relatedcompetencies[] = $comprecord;
|
||||
}
|
||||
}
|
||||
@@ -1995,7 +1995,7 @@ class external extends external_api {
|
||||
}
|
||||
$context = $contextcache[$competency->get_competencyframeworkid()];
|
||||
$exporter = new competency_exporter($competency, array('context' => $context));
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
array_push($results, $record);
|
||||
}
|
||||
return $results;
|
||||
@@ -2431,7 +2431,7 @@ class external extends external_api {
|
||||
|
||||
$result = api::create_template($params);
|
||||
$exporter = new template_exporter($result);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
return $record;
|
||||
}
|
||||
|
||||
@@ -2481,7 +2481,7 @@ class external extends external_api {
|
||||
$output = $PAGE->get_renderer('tool_lp');
|
||||
|
||||
$exporter = new template_exporter($template);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
return $record;
|
||||
}
|
||||
|
||||
@@ -2669,7 +2669,7 @@ class external extends external_api {
|
||||
|
||||
$result = api::duplicate_template($params['id']);
|
||||
$exporter = new template_exporter($result);
|
||||
return $exporter->export_for_template($output);
|
||||
return $exporter->export($output);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2771,7 +2771,7 @@ class external extends external_api {
|
||||
$records = array();
|
||||
foreach ($results as $result) {
|
||||
$exporter = new template_exporter($result);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
array_push($records, $record);
|
||||
}
|
||||
return $records;
|
||||
@@ -2969,7 +2969,7 @@ class external extends external_api {
|
||||
|
||||
foreach ($templates as $template) {
|
||||
$exporter = new template_exporter($template);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
$records[] = $record;
|
||||
}
|
||||
}
|
||||
@@ -3072,7 +3072,7 @@ class external extends external_api {
|
||||
}
|
||||
$context = $contextcache[$competency->get_competencyframeworkid()];
|
||||
$exporter = new competency_exporter($competency, array('context' => $context));
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
array_push($results, $record);
|
||||
}
|
||||
return $results;
|
||||
@@ -3642,7 +3642,7 @@ class external extends external_api {
|
||||
|
||||
$result = api::create_plan($params);
|
||||
$exporter = new plan_exporter($result);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
$record->usercanupdate = $result->can_manage();
|
||||
return external_api::clean_returnvalue(self::create_plan_returns(), $record);
|
||||
}
|
||||
@@ -3756,7 +3756,7 @@ class external extends external_api {
|
||||
$params = (object) $params;
|
||||
$result = api::update_plan($params);
|
||||
$exporter = plan_exporter($result);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
$record->usercanupdate = $result->can_manage();
|
||||
return external_api::clean_returnvalue(self::update_plan_returns(), $record);
|
||||
}
|
||||
@@ -3803,7 +3803,7 @@ class external extends external_api {
|
||||
$output = $PAGE->get_renderer('tool_lp');
|
||||
|
||||
$exporter = new plan_exporter($plan);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
$record->usercanupdate = $plan->can_manage();
|
||||
return external_api::clean_returnvalue(self::read_plan_returns(), $record);
|
||||
}
|
||||
@@ -3966,7 +3966,7 @@ class external extends external_api {
|
||||
$context = $contextcache[$r->competency->get_competencyframeworkid()];
|
||||
|
||||
$exporter = new competency_exporter($r->competency, array('context' => $context));
|
||||
$r->competency = $exporter->export_for_template($output);
|
||||
$r->competency = $exporter->export($output);
|
||||
} else {
|
||||
if (!isset($scalecache[$r->competency->get_competencyframeworkid()])) {
|
||||
$scalecache[$r->competency->get_competencyframeworkid()] = $r->competency->get_framework()->get_scale();
|
||||
@@ -3974,7 +3974,7 @@ class external extends external_api {
|
||||
$scale = $scalecache[$r->competency->get_competencyframeworkid()];
|
||||
|
||||
$exporter = new user_competency_exporter($r->usercompetency, array('scale' => $scale));
|
||||
$r->usercompetency = $exporter->export_for_template($output);
|
||||
$r->usercompetency = $exporter->export($output);
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
|
||||
+3
-4
@@ -26,19 +26,18 @@ namespace tool_lp\external;
|
||||
require_once($CFG->libdir . '/externallib.php');
|
||||
|
||||
use stdClass;
|
||||
use templatable;
|
||||
use renderer_base;
|
||||
use context;
|
||||
use context_system;
|
||||
use coding_exception;
|
||||
|
||||
/**
|
||||
* An extended version of the persistent class with a default implementation of export_for_template
|
||||
* An extended version of the persistent class with a default implementation of export
|
||||
*
|
||||
* @copyright 2015 Damyon Wiese
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
abstract class persistent_exporter implements templatable {
|
||||
abstract class persistent_exporter {
|
||||
|
||||
/** @var \tool_lp\persistent The persistent object we will export. */
|
||||
var $persistent = null;
|
||||
@@ -112,7 +111,7 @@ abstract class persistent_exporter implements templatable {
|
||||
* @param renderer_base $output Used to do a final render of any components that need to be rendered for export.
|
||||
* @return stdClass|array
|
||||
*/
|
||||
public function export_for_template(renderer_base $output) {
|
||||
public function export(renderer_base $output) {
|
||||
$data = new stdClass();
|
||||
$properties = $this->persistent->properties_definition();
|
||||
$context = $this->get_context();
|
||||
|
||||
+2
-2
@@ -37,8 +37,8 @@ class plan_exporter extends persistent_exporter {
|
||||
return 'tool_lp\\plan';
|
||||
}
|
||||
|
||||
public function export_for_template(renderer_base $output) {
|
||||
$result = parent::export_for_template($output);
|
||||
public function export(renderer_base $output) {
|
||||
$result = parent::export($output);
|
||||
$result->statusname = $this->persistent->get_statusname();
|
||||
return $result;
|
||||
}
|
||||
|
||||
+2
-2
@@ -37,8 +37,8 @@ class template_exporter extends persistent_exporter {
|
||||
return 'tool_lp\\template';
|
||||
}
|
||||
|
||||
public function export_for_template(renderer_base $output) {
|
||||
$result = parent::export_for_template($output);
|
||||
public function export(renderer_base $output) {
|
||||
$result = parent::export($output);
|
||||
$result->duedateformatted = userdate($result->duedate);
|
||||
return $result;
|
||||
}
|
||||
|
||||
@@ -44,8 +44,8 @@ class user_competency_exporter extends persistent_exporter {
|
||||
return array('scale' => 'grade_scale');
|
||||
}
|
||||
|
||||
public function export_for_template(renderer_base $output) {
|
||||
$result = parent::export_for_template($output);
|
||||
public function export(renderer_base $output) {
|
||||
$result = parent::export($output);
|
||||
$context = context_user::instance($result->userid);
|
||||
if ($result->grade === null) {
|
||||
$gradename = '-';
|
||||
|
||||
@@ -37,8 +37,8 @@ class user_plan_competency_exporter extends persistent_exporter {
|
||||
return 'tool_lp\\user_plan_competency';
|
||||
}
|
||||
|
||||
public function export_for_template(renderer_base $output) {
|
||||
$result = parent::export_for_template($output);
|
||||
public function export(renderer_base $output) {
|
||||
$result = parent::export($output);
|
||||
$result->statusname = $this->persistent->get_statusname();
|
||||
return $result;
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ class course_competencies_page implements renderable, templatable {
|
||||
$context = $contextcache[$competency->get_competencyframeworkid()];
|
||||
|
||||
$exporter = new competency_exporter($competency, array('context' => $context));
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
array_push($data->competencies, $record);
|
||||
}
|
||||
$data->canmanagecompetencyframeworks = $this->canmanagecompetencyframeworks;
|
||||
|
||||
@@ -90,7 +90,7 @@ class manage_competencies_page implements renderable, templatable {
|
||||
public function export_for_template(renderer_base $output) {
|
||||
$data = new stdClass();
|
||||
$exporter = new competency_framework_exporter($this->framework);
|
||||
$data->framework = $exporter->export_for_template($output);
|
||||
$data->framework = $exporter->export($output);
|
||||
$data->canmanage = $this->canmanage;
|
||||
$data->search = $this->search;
|
||||
$data->pagecontextid = $this->pagecontext->id;
|
||||
|
||||
@@ -85,7 +85,7 @@ class manage_competency_frameworks_page implements renderable, templatable {
|
||||
$data->pagecontextid = $this->pagecontext->id;
|
||||
foreach ($this->competencyframeworks as $framework) {
|
||||
$exporter = new competency_framework_exporter($framework);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
$filters = array('competencyframeworkid' => $framework->get_id());
|
||||
$record->canmanage = has_capability('tool/lp:competencymanage', $framework->get_context());
|
||||
$record->competencies_count = api::count_competencies($filters);
|
||||
|
||||
@@ -79,7 +79,7 @@ class manage_templates_page implements renderable, templatable {
|
||||
$data->templates = array();
|
||||
foreach ($this->templates as $template) {
|
||||
$exporter = new template_exporter($template);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
$record->canmanage = has_capability('tool/lp:templatemanage', $template->get_context());
|
||||
$record->contextname = $template->get_context()->get_context_name();
|
||||
$data->templates[] = $record;
|
||||
|
||||
@@ -93,9 +93,9 @@ class plan_page implements renderable, templatable {
|
||||
|
||||
// Prepare the data.
|
||||
$exporter = new competency_exporter($comp, array('context' => $framework->get_context()));
|
||||
$competency = $exporter->export_for_template($output);
|
||||
$competency = $exporter->export($output);
|
||||
$exporter = new user_competency_exporter($usercomp, array('scale' => $scale));
|
||||
$competency->usercompetency = $exporter->export_for_template($output);
|
||||
$competency->usercompetency = $exporter->export($output);
|
||||
|
||||
$data->competencies[] = $competency;
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ class plans_page implements renderable, templatable {
|
||||
if ($this->plans) {
|
||||
foreach ($this->plans as $plan) {
|
||||
$exporter = new plan_exporter($plan);
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
$record->usercanupdate = $plan->can_manage();
|
||||
$data->plans[] = $record;
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ class related_competencies implements renderable, templatable {
|
||||
if ($this->relatedcompetencies) {
|
||||
foreach ($this->relatedcompetencies as $competency) {
|
||||
$exporter = new competency_exporter($competency, array('context' => $this->context));
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
$data->relatedcompetencies[] = $record;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ class template_competencies_page implements renderable, templatable {
|
||||
$context = $contextcache[$competency->get_competencyframeworkid()];
|
||||
|
||||
$exporter = new competency_exporter($competency, array('context' => $context));
|
||||
$record = $exporter->export_for_template($output);
|
||||
$record = $exporter->export($output);
|
||||
array_push($data->competencies, $record);
|
||||
}
|
||||
$data->canmanagecompetencyframeworks = $this->canmanagecompetencyframeworks;
|
||||
|
||||
Reference in New Issue
Block a user