MDL-84304 mod_scorm: Remove the COMPLETION_COMPLETE_FAIL status

This commit is contained in:
Magnus Samuelsson
2025-05-19 11:56:40 +02:00
committed by Laurent David
parent 328810e933
commit 4de4029044
2 changed files with 21 additions and 32 deletions
@@ -148,16 +148,6 @@ class custom_completion extends activity_custom_completion {
break;
}
// If not yet meeting the requirement and no attempts remain to complete it, mark it as failed.
if ($status === COMPLETION_INCOMPLETE) {
$scorm = $DB->get_record('scorm', ['id' => $this->cm->instance]);
$attemptcount = scorm_get_attempt_count($this->userid, $scorm);
if ($scorm->maxattempt > 0 && $attemptcount >= $scorm->maxattempt) {
$status = COMPLETION_COMPLETE_FAIL;
}
}
return $status;
}
@@ -217,4 +207,3 @@ class custom_completion extends activity_custom_completion {
];
}
}
+21 -21
View File
@@ -84,67 +84,67 @@ final class custom_completion_test extends advanced_testcase {
return [
'Undefined completion requirement' => [
'somenonexistentrule', COMPLETION_ENABLED, [$completionincomplete], 0, null, coding_exception::class
'somenonexistentrule', COMPLETION_ENABLED, [$completionincomplete], 0, null, coding_exception::class,
],
'Completion status requirement not available' => [
'completionstatusrequired', COMPLETION_DISABLED, [$completionincomplete], 0, null, moodle_exception::class
'completionstatusrequired', COMPLETION_DISABLED, [$completionincomplete], 0, null, moodle_exception::class,
],
'Completion status Passed required, user has no completion status recorded' => [
'completionstatusrequired', 2, [], 0, COMPLETION_INCOMPLETE, null
'completionstatusrequired', 2, [], 0, COMPLETION_INCOMPLETE, null,
],
'Completion status Passed required, user has not passed, can make another attempt' => [
'completionstatusrequired', 2, [$completionincomplete], 0, COMPLETION_INCOMPLETE, null
'completionstatusrequired', 2, [$completionincomplete], 0, COMPLETION_INCOMPLETE, null,
],
'Completion status Passed required, user has passed' => [
'completionstatusrequired', 2, [$completionpassed], 0, COMPLETION_COMPLETE, null
'completionstatusrequired', 2, [$completionpassed], 0, COMPLETION_COMPLETE, null,
],
'Completion status Completed required, user has not completed, can make another attempt' => [
'completionstatusrequired', 4, [$completionincomplete], 2, COMPLETION_INCOMPLETE, null
'completionstatusrequired', 4, [$completionincomplete], 2, COMPLETION_INCOMPLETE, null,
],
'Completion status Completed required, user has completed' => [
'completionstatusrequired', 4, [$completioncompleted], 1, COMPLETION_COMPLETE, null
'completionstatusrequired', 4, [$completioncompleted], 1, COMPLETION_COMPLETE, null,
],
'Completion status Passed or Completed required, user has only completed, can make another attempt' => [
'completionstatusrequired', 6, [$completioncompleted], 0, COMPLETION_COMPLETE, null
'completionstatusrequired', 6, [$completioncompleted], 0, COMPLETION_COMPLETE, null,
],
'Completion status Passed or Completed required, user has completed and passed' => [
'completionstatusrequired', 6, [$completionpassed, $completioncompleted], 0, COMPLETION_COMPLETE, null
'completionstatusrequired', 6, [$completionpassed, $completioncompleted], 0, COMPLETION_COMPLETE, null,
],
'Completion status Passed or Completed required, user has not passed or completed, but has another attempt' => [
'completionstatusrequired', 6, [$completionincomplete], 2, COMPLETION_INCOMPLETE, null
'completionstatusrequired', 6, [$completionincomplete], 2, COMPLETION_INCOMPLETE, null,
],
'Completion status Passed or Completed required, user has used all attempts, but not passed or completed' => [
'completionstatusrequired', 6, [$completionincomplete], 1, COMPLETION_COMPLETE_FAIL, null
'completionstatusrequired', 6, [$completionincomplete], 1, COMPLETION_INCOMPLETE, null,
],
'Completion status Passed required, user has used all attempts and completed, but not passed' => [
'completionstatusrequired', 2, [$completioncompleted], 1, COMPLETION_COMPLETE_FAIL, null
'completionstatusrequired', 2, [$completioncompleted], 1, COMPLETION_INCOMPLETE, null,
],
'Completion status Completed required, user has used all attempts, but not completed' => [
'completionstatusrequired', 4, [$completionincomplete], 1, COMPLETION_COMPLETE_FAIL, null
'completionstatusrequired', 4, [$completionincomplete], 1, COMPLETION_INCOMPLETE, null,
],
'Completion status Passed or Completed required, user has used all attempts, but not passed' => [
'completionstatusrequired', 6, [$completionincomplete, $completioncompleted], 2, COMPLETION_COMPLETE, null
'completionstatusrequired', 6, [$completionincomplete, $completioncompleted], 2, COMPLETION_COMPLETE, null,
],
'Completion score required, user has no score' => [
'completionscorerequired', 80, [], 0, COMPLETION_INCOMPLETE, null
'completionscorerequired', 80, [], 0, COMPLETION_INCOMPLETE, null,
],
'Completion score required, user score does not meet requirement, can make another attempt' => [
'completionscorerequired', 80, [$completionscorefail], 0, COMPLETION_INCOMPLETE, null
'completionscorerequired', 80, [$completionscorefail], 0, COMPLETION_INCOMPLETE, null,
],
'Completion score required, user has used all attempts, but not reached the score' => [
'completionscorerequired', 80, [$completionscorefail], 1, COMPLETION_COMPLETE_FAIL, null
'completionscorerequired', 80, [$completionscorefail], 1, COMPLETION_INCOMPLETE, null,
],
'Completion score required, user score meets requirement' => [
'completionscorerequired', 80, [$completionscorepass], 0, COMPLETION_COMPLETE, null
'completionscorerequired', 80, [$completionscorepass], 0, COMPLETION_COMPLETE, null,
],
'Completion of all scos required, user has not completed, can make another attempt' => [
'completionstatusallscos', 1, [$completionincomplete, $completioncompleted], 3, COMPLETION_INCOMPLETE, null
'completionstatusallscos', 1, [$completionincomplete, $completioncompleted], 3, COMPLETION_INCOMPLETE, null,
],
'Completion of all scos required, user has completed' => [
'completionstatusallscos', 1, [$completionpassed, $completioncompleted], 2, COMPLETION_COMPLETE, null
'completionstatusallscos', 1, [$completionpassed, $completioncompleted], 2, COMPLETION_COMPLETE, null,
],
'Completion of all scos required, user has used all attempts, but not completed all scos' => [
'completionstatusallscos', 1, [$completionincomplete, $completioncompleted], 2, COMPLETION_COMPLETE_FAIL, null
'completionstatusallscos', 1, [$completionincomplete, $completioncompleted], 2, COMPLETION_INCOMPLETE, null,
],
];
}