From b0c2492906938d9defc8346c6de117defedff5d2 Mon Sep 17 00:00:00 2001 From: David Monllao Date: Fri, 9 Jun 2017 13:29:56 +0200 Subject: [PATCH] MDL-59057 analytics: Standarize indicators and targets ids Part of MDL-57791 epic. --- admin/tool/models/db/install.php | 3 +-- admin/tool/models/db/uninstall.php | 2 +- analytics/classes/calculable.php | 9 +++++++++ analytics/classes/manager.php | 2 +- analytics/classes/model.php | 4 ++-- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/admin/tool/models/db/install.php b/admin/tool/models/db/install.php index 3c75eba6265..5d3ca8f0efe 100644 --- a/admin/tool/models/db/install.php +++ b/admin/tool/models/db/install.php @@ -42,6 +42,5 @@ function xmldb_tool_models_install() { $target = \core_analytics\manager::get_target('\tool_models\analytics\target\no_teaching_activity'); $weekbeforestart = '\core_analytics\local\time_splitting\week_before_course_start'; $noteacher = \core_analytics\manager::get_indicator('\core_course\analytics\indicator\no_teacher'); - $key = '\\' . get_class($noteacher); - \core_analytics\model::create($target, array($key => $noteacher), $weekbeforestart); + \core_analytics\model::create($target, array($noteacher->get_id() => $noteacher), $weekbeforestart); } diff --git a/admin/tool/models/db/uninstall.php b/admin/tool/models/db/uninstall.php index 6034777c889..d1db7817a87 100644 --- a/admin/tool/models/db/uninstall.php +++ b/admin/tool/models/db/uninstall.php @@ -33,7 +33,7 @@ function xmldb_tool_models_uninstall() { $options = array(); foreach ($targets as $classname => $unused) { $target = \core_analytics\manager::get_target($classname); - $options[] = '\\' . get_class($target); + $options[] = $target->get_id(); } list($sql, $params) = $DB->get_in_or_equal($options); $models = $DB->get_records_select('analytics_models', "target $sql", $params); diff --git a/analytics/classes/calculable.php b/analytics/classes/calculable.php index e23d6a649e1..34f26fc4af2 100644 --- a/analytics/classes/calculable.php +++ b/analytics/classes/calculable.php @@ -54,6 +54,15 @@ abstract class calculable { } /** + * The class id is the calculable class full qualified class name. + * + * @return string + */ + public function get_id() { + return '\\' . get_class($this); + } + + /** * add_sample_data * * @param array $data diff --git a/analytics/classes/manager.php b/analytics/classes/manager.php index 2b0d240b329..a2d8a2b89be 100644 --- a/analytics/classes/manager.php +++ b/analytics/classes/manager.php @@ -206,7 +206,7 @@ class manager { $instance = self::get_indicator($fullclassname); if ($instance) { // Using get_class as get_component_classes_in_namespace returns double escaped fully qualified class names. - self::$allindicators['\\' . get_class($instance)] = $instance; + self::$allindicators[$instance->get_id()] = $instance; } } diff --git a/analytics/classes/model.php b/analytics/classes/model.php index 33d43aad61c..082c3ba5711 100644 --- a/analytics/classes/model.php +++ b/analytics/classes/model.php @@ -268,7 +268,7 @@ class model { $now = time(); $modelobj = new \stdClass(); - $modelobj->target = '\\' . get_class($target); + $modelobj->target = $target->get_id(); $modelobj->indicators = json_encode($indicatorclasses); $modelobj->version = $now; $modelobj->timecreated = $now; @@ -1057,7 +1057,7 @@ class model { } throw new \moodle_exception('errorinvalidindicator', 'analytics', '', $indicator); } - $indicatorclasses[] = '\\' . get_class($indicator); + $indicatorclasses[] = $indicator->get_id(); } return $indicatorclasses; -- 2.11.4.GIT