MDL-53700 competency: Splitting competency rules logic and UI

This commit is contained in:
Frederic Massart
2016-04-18 11:06:00 +08:00
parent e6dc03d7c4
commit ca94bcdbdb
5 changed files with 22 additions and 38 deletions
@@ -97,12 +97,27 @@ class manage_competencies_page implements renderable, templatable {
$data->pagecontextid = $this->pagecontext->id;
$data->pluginbaseurl = (new moodle_url('/admin/tool/lp'))->out(true);
$rulesmodules = array();
$rules = competency::get_available_rules();
foreach ($rules as $type => $rule) {
$rule->name = (string) $rule->name;
$rule->type = $type;
foreach ($rules as $type => $rulename) {
$amd = null;
if ($type == 'core_competency\\competency_rule_all') {
$amd = 'tool_lp/competency_rule_all';
} else if ($type == 'core_competency\\competency_rule_points') {
$amd = 'tool_lp/competency_rule_points';
} else {
// We do not know how to display that rule.
continue;
}
$rulesmodules[] = [
'name' => (string) $rulename,
'type' => $type,
'amd' => $amd,
];
}
$data->rulesmodules = json_encode(array_values($rules));
$data->rulesmodules = json_encode(array_values($rulesmodules));
return $data;
}
+3 -7
View File
@@ -686,18 +686,14 @@ class competency extends persistent {
/**
* Get the available rules.
*
* @return array Keys are the class names, values is an object containing name and amd.
* @return array Keys are the class names, values are the name of the rule.
*/
public static function get_available_rules() {
// Fully qualified class names without leading slashes because get_class() does not add them either.
$rules = array(
'core_competency\\competency_rule_all' => (object) array(),
'core_competency\\competency_rule_points' => (object) array(),
'core_competency\\competency_rule_all' => competency_rule_all::get_name(),
'core_competency\\competency_rule_points' => competency_rule_points::get_name(),
);
foreach ($rules as $class => $rule) {
$rule->name = $class::get_name();
$rule->amd = $class::get_amd_module();
}
return $rules;
}
-9
View File
@@ -81,15 +81,6 @@ abstract class competency_rule {
*/
abstract public function validate_config($value);
/**
* Get the fully qualified name of the AMD module to use.
*
* @return string
*/
public static function get_amd_module() {
throw new coding_exception('Method not implemented.');
}
/**
* The name of the rule.
*
@@ -81,15 +81,6 @@ class competency_rule_all extends competency_rule {
return $value === null;
}
/**
* Validate the rule config.
*
* @return bool
*/
public static function get_amd_module() {
return 'tool_lp/competency_rule_all';
}
/**
* The name of the rule.
*
@@ -182,15 +182,6 @@ class competency_rule_points extends competency_rule {
return $this->competency->is_parent_of($compids);
}
/**
* Validate the rule config.
*
* @return bool
*/
public static function get_amd_module() {
return 'tool_lp/competency_rule_points';
}
/**
* The name of the rule.
*