fix: apply new definition of completed to allFinishedInLearningSequence

This commit is contained in:
Livio Bieri 2024-03-22 11:22:53 +01:00
parent 3573a6f54b
commit 1831dcc363
1 changed files with 19 additions and 3 deletions

View File

@ -43,10 +43,26 @@ export function someFinishedInLearningSequence(ls: LearningSequence) {
});
}
/**
* Completed is defined as having completed all learning contents,
* ranked at least one performance criteria (but not necessarily all)
* was ranked as success or fail.
*/
export function allFinishedInLearningSequence(ls: LearningSequence) {
return learningSequenceFlatChildren(ls).every((lc) => {
return lc.completion_status === "SUCCESS";
});
const allLearningContentsCompleted = ls.learning_units
.flatMap((lu) => lu.learning_contents)
.every((lc) => lc.completion_status === "SUCCESS");
const performanceCriteria = ls.learning_units.flatMap(
(lu) => lu.performance_criteria
);
const somePerformanceCriteriaRanked =
performanceCriteria.some((pc) => pc.completion_status === "SUCCESS") ||
performanceCriteria.some((pc) => pc.completion_status === "FAIL") ||
performanceCriteria.length === 0;
return allLearningContentsCompleted && somePerformanceCriteriaRanked;
}
export function performanceCriteriaStatusCount(