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:
Damyon Wiese
2015-11-13 16:01:15 +08:00
committed by Frederic Massart
parent a214d35ec2
commit 5db5c22c15
14 changed files with 40 additions and 41 deletions
+20 -20
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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;
+2 -2
View File
@@ -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;
}
+1 -1
View File
@@ -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;