MDL-53700 competency: Splitting competency rules logic and UI
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user