. /** * Activity custom completion subclass for the adaptive quiz activity. * * @copyright 2022 onwards Vitaly Potenko * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace mod_adaptivequiz\completion; use core_completion\activity_custom_completion; use mod_adaptivequiz\local\attempt; class custom_completion extends activity_custom_completion { /** * @inheritDoc */ public function get_state(string $rule): int { $this->validate_rule($rule); return attempt::user_has_completed_on_quiz($this->cm->instance, $this->userid) ? COMPLETION_COMPLETE : COMPLETION_INCOMPLETE; } /** * @inheritDoc */ public static function get_defined_custom_rules(): array { return ['completionattemptcompleted']; } /** * @inheritDoc */ public function get_custom_rule_descriptions(): array { return ['completionattemptcompleted' => get_string('completionattemptcompletedcminfo', 'adaptivequiz')]; } /** * @inheritDoc */ public function get_sort_order(): array { return ['completionview', 'completionusegrade', 'completionattemptcompleted']; } }