Merged in fix/661 (pull request #308)

fix: re-define completed for self-evaluation

Approved-by: Christian Cueni
This commit is contained in:
Livio Bieri 2024-03-25 06:54:45 +00:00 committed by Christian Cueni
commit b2b5bcc1a9
2 changed files with 22 additions and 5 deletions

View File

@ -41,7 +41,6 @@ const someFinished = computed(() => {
if (props.learningSequence) { if (props.learningSequence) {
return someFinishedInLearningSequence(props.learningSequence); return someFinishedInLearningSequence(props.learningSequence);
} }
return false; return false;
}); });
@ -235,7 +234,11 @@ type LearninContentWithCompetenceCertificate =
: 'no-status' : 'no-status'
" "
> >
<CompletionStatus /> <CompletionStatus
:completed="
performanceCriteriaHasStatus(learningUnit.performance_criteria)
"
/>
{{ $t("a.Selbsteinschätzung") }} {{ $t("a.Selbsteinschätzung") }}
</div> </div>

View File

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