diff --git a/mod/assign/classes/completion/custom_completion.php b/mod/assign/classes/completion/custom_completion.php index 4753324f9c1c0..79d2d0b24332c 100644 --- a/mod/assign/classes/completion/custom_completion.php +++ b/mod/assign/classes/completion/custom_completion.php @@ -78,5 +78,17 @@ public function get_custom_rule_descriptions(): array { 'completionsubmit' => get_string('completiondetail:submit', 'assign') ]; } -} + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + return [ + 'completionview', + 'completionsubmit', + 'completionusegrade', + ]; + } +} diff --git a/mod/choice/classes/completion/custom_completion.php b/mod/choice/classes/completion/custom_completion.php index 5f04988dc0b30..e925c1e46db8b 100644 --- a/mod/choice/classes/completion/custom_completion.php +++ b/mod/choice/classes/completion/custom_completion.php @@ -69,4 +69,16 @@ public function get_custom_rule_descriptions(): array { 'completionsubmit' => get_string('completiondetail:submit', 'choice') ]; } + + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + return [ + 'completionview', + 'completionsubmit', + ]; + } } diff --git a/mod/data/classes/completion/custom_completion.php b/mod/data/classes/completion/custom_completion.php index 4ace7a58e50bd..0f00b797762fb 100644 --- a/mod/data/classes/completion/custom_completion.php +++ b/mod/data/classes/completion/custom_completion.php @@ -69,4 +69,17 @@ public function get_custom_rule_descriptions(): array { 'completionentries' => get_string('completiondetail:entries', 'data', $entries), ]; } + + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + return [ + 'completionview', + 'completionentries', + 'completionusegrade', + ]; + } } diff --git a/mod/feedback/classes/completion/custom_completion.php b/mod/feedback/classes/completion/custom_completion.php index 1a17c713a546b..1a8018fbaaf77 100644 --- a/mod/feedback/classes/completion/custom_completion.php +++ b/mod/feedback/classes/completion/custom_completion.php @@ -67,4 +67,16 @@ public function get_custom_rule_descriptions(): array { 'completionsubmit' => get_string('completiondetail:submit', 'feedback') ]; } + + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + return [ + 'completionview', + 'completionsubmit', + ]; + } } diff --git a/mod/forum/classes/completion/custom_completion.php b/mod/forum/classes/completion/custom_completion.php index b168abd44addb..ffe5b98b90451 100644 --- a/mod/forum/classes/completion/custom_completion.php +++ b/mod/forum/classes/completion/custom_completion.php @@ -99,4 +99,19 @@ public function get_custom_rule_descriptions(): array { 'completionposts' => get_string('completiondetail:posts', 'forum', $completionposts), ]; } + + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + return [ + 'completionview', + 'completiondiscussions', + 'completionreplies', + 'completionposts', + 'completionusegrade', + ]; + } } diff --git a/mod/glossary/classes/completion/custom_completion.php b/mod/glossary/classes/completion/custom_completion.php index 60deecbea2398..4145644721323 100644 --- a/mod/glossary/classes/completion/custom_completion.php +++ b/mod/glossary/classes/completion/custom_completion.php @@ -73,4 +73,17 @@ public function get_custom_rule_descriptions(): array { 'completionentries' => get_string('completiondetail:entries', 'glossary', $completionentries), ]; } + + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + return [ + 'completionview', + 'completionentries', + 'completionusegrade', + ]; + } } diff --git a/mod/label/classes/completion/custom_completion.php b/mod/label/classes/completion/custom_completion.php index b6c7546b06db3..c8ccd58d39b3e 100644 --- a/mod/label/classes/completion/custom_completion.php +++ b/mod/label/classes/completion/custom_completion.php @@ -70,4 +70,14 @@ public function get_custom_rule_descriptions(): array { public function manual_completion_always_shown(): bool { return true; } + + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + // This module only supports manual completion. + return []; + } } diff --git a/mod/lesson/classes/completion/custom_completion.php b/mod/lesson/classes/completion/custom_completion.php index 133581261fc97..c3ce80d264d2e 100644 --- a/mod/lesson/classes/completion/custom_completion.php +++ b/mod/lesson/classes/completion/custom_completion.php @@ -91,4 +91,18 @@ public function get_custom_rule_descriptions(): array { 'completionendreached' => get_string('completiondetail:reachend', 'lesson'), ]; } + + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + return [ + 'completionview', + 'completiontimespent', + 'completionendreached', + 'completionusegrade', + ]; + } } diff --git a/mod/quiz/classes/completion/custom_completion.php b/mod/quiz/classes/completion/custom_completion.php index c647b3b0e8428..4c4085920fcc4 100644 --- a/mod/quiz/classes/completion/custom_completion.php +++ b/mod/quiz/classes/completion/custom_completion.php @@ -159,4 +159,18 @@ public function get_custom_rule_descriptions(): array { 'completionminattempts' => get_string('completiondetail:minattempts', 'mod_quiz', $minattempts), ]; } + + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + return [ + 'completionview', + 'completionminattempts', + 'completionusegrade', + 'completionpassorattemptsexhausted', + ]; + } } diff --git a/mod/resource/classes/completion/custom_completion.php b/mod/resource/classes/completion/custom_completion.php index 504d13ef99c57..b09e75e2c5e08 100644 --- a/mod/resource/classes/completion/custom_completion.php +++ b/mod/resource/classes/completion/custom_completion.php @@ -79,4 +79,14 @@ public function manual_completion_always_shown(): bool { return in_array($display, $displaytypes); } + + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + // This module only supports manual completion. + return []; + } } diff --git a/mod/scorm/classes/completion/custom_completion.php b/mod/scorm/classes/completion/custom_completion.php index aae539bbe5962..6c2f70770596e 100644 --- a/mod/scorm/classes/completion/custom_completion.php +++ b/mod/scorm/classes/completion/custom_completion.php @@ -202,4 +202,20 @@ public function get_custom_rule_descriptions(): array { 'completionstatusallscos' => get_string('completiondetail:allscos', 'scorm'), ]; } + + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + return [ + 'completionview', + 'completionstatusallscos', + 'completionstatusrequired', + 'completionusegrade', + 'completionscorerequired', + ]; + } } + diff --git a/mod/survey/classes/completion/custom_completion.php b/mod/survey/classes/completion/custom_completion.php index 27819934d7b11..8b53b19aed3bd 100644 --- a/mod/survey/classes/completion/custom_completion.php +++ b/mod/survey/classes/completion/custom_completion.php @@ -67,4 +67,16 @@ public function get_custom_rule_descriptions(): array { 'completionsubmit' => get_string('completiondetail:submit', 'survey') ]; } + + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + return [ + 'completionview', + 'completionsubmit', + ]; + } } diff --git a/mod/url/classes/completion/custom_completion.php b/mod/url/classes/completion/custom_completion.php index 1fa0eded6bbb2..fe0bbd04da9ce 100644 --- a/mod/url/classes/completion/custom_completion.php +++ b/mod/url/classes/completion/custom_completion.php @@ -82,4 +82,13 @@ public function manual_completion_always_shown(): bool { return in_array($display, $displaytypes); } + /** + * Returns an array of all completion rules, in the order they should be displayed to users. + * + * @return array + */ + public function get_sort_order(): array { + // This module only supports manual completion. + return []; + } }