Project: moodle
Issue MDL-51026: A competency framework can customise the terms for up to 4 competency levels
We will restrict the depth of the competency frameworks so that we can allow customisable language to describe each level of a competency. From the spec: "The taxonomy refers to the naming for each level in the framework. Up to 4 levels are supported, and the name for each level can be set from the following list: Domain, Competency, Behaviour, Indicator, Outcome, Level, Concept, Value, Practice, Skill, Proficiency" These will be provided by language strings, so they can be displayed in different languages (not taken from user input). All other screens should replace the word "Competency" and "Competencies" with the correct term depending on the depth of the competency. The number of terms will be fetched from a method in the framework class, just to ensure that later on we can change this number, or make it match a configuration variable. The term levels can either be saved in 4 columns, or in 1 column (_taxonomies_) with serialised data. The serialised data is less flexible but it seems unlikely that we will need to fetch just 1 term, or filter per term without loading the framework object. The terms are using constants and will be mapped to language strings, e.g.: {noformat} const TAXONOMY_DOMAIN = 'domain'; const TAXONOMY_COMPETENCY = 'competency'; public function get_taxonomy($level); public static function get_taxonomy_for_term($constant); {noformat}
Story points: 3