diff --git a/mod/assign/classes/completion/custom_completion.php b/mod/assign/classes/completion/custom_completion.php index 4753324f9c1..79d2d0b2433 100644 --- a/mod/assign/classes/completion/custom_completion.php +++ b/mod/assign/classes/completion/custom_completion.php @@ -78,5 +78,17 @@ class custom_completion extends activity_custom_completion { '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 5f04988dc0b..e925c1e46db 100644 --- a/mod/choice/classes/completion/custom_completion.php +++ b/mod/choice/classes/completion/custom_completion.php @@ -69,4 +69,16 @@ class custom_completion extends activity_custom_completion { '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 4ace7a58e50..0f00b797762 100644 --- a/mod/data/classes/completion/custom_completion.php +++ b/mod/data/classes/completion/custom_completion.php @@ -69,4 +69,17 @@ class custom_completion extends activity_custom_completion { '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 1a17c713a54..1a8018fbaaf 100644 --- a/mod/feedback/classes/completion/custom_completion.php +++ b/mod/feedback/classes/completion/custom_completion.php @@ -67,4 +67,16 @@ class custom_completion extends activity_custom_completion { '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 b168abd44ad..ffe5b98b904 100644 --- a/mod/forum/classes/completion/custom_completion.php +++ b/mod/forum/classes/completion/custom_completion.php @@ -99,4 +99,19 @@ class custom_completion extends activity_custom_completion { '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 60deecbea23..41456447213 100644 --- a/mod/glossary/classes/completion/custom_completion.php +++ b/mod/glossary/classes/completion/custom_completion.php @@ -73,4 +73,17 @@ class custom_completion extends activity_custom_completion { '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 b6c7546b06d..c8ccd58d39b 100644 --- a/mod/label/classes/completion/custom_completion.php +++ b/mod/label/classes/completion/custom_completion.php @@ -70,4 +70,14 @@ class custom_completion extends activity_custom_completion { 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 133581261fc..c3ce80d264d 100644 --- a/mod/lesson/classes/completion/custom_completion.php +++ b/mod/lesson/classes/completion/custom_completion.php @@ -91,4 +91,18 @@ class custom_completion extends activity_custom_completion { '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 c647b3b0e84..4c4085920fc 100644 --- a/mod/quiz/classes/completion/custom_completion.php +++ b/mod/quiz/classes/completion/custom_completion.php @@ -159,4 +159,18 @@ class custom_completion extends activity_custom_completion { '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 504d13ef99c..b09e75e2c5e 100644 --- a/mod/resource/classes/completion/custom_completion.php +++ b/mod/resource/classes/completion/custom_completion.php @@ -79,4 +79,14 @@ class custom_completion extends activity_custom_completion { 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 aae539bbe59..6c2f7077059 100644 --- a/mod/scorm/classes/completion/custom_completion.php +++ b/mod/scorm/classes/completion/custom_completion.php @@ -202,4 +202,20 @@ class custom_completion extends activity_custom_completion { '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 27819934d7b..8b53b19aed3 100644 --- a/mod/survey/classes/completion/custom_completion.php +++ b/mod/survey/classes/completion/custom_completion.php @@ -67,4 +67,16 @@ class custom_completion extends activity_custom_completion { '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 1fa0eded6bb..fe0bbd04da9 100644 --- a/mod/url/classes/completion/custom_completion.php +++ b/mod/url/classes/completion/custom_completion.php @@ -82,4 +82,13 @@ class custom_completion extends activity_custom_completion { 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 []; + } }