diff --git a/src/main/java/org/olat/course/run/scoring/AverageCompletionEvaluator.java b/src/main/java/org/olat/course/run/scoring/AverageCompletionEvaluator.java index 3a996d3c9332535f8250cc279c14db879054cd17..bd56c32895314ba5524088e0ea44db30c4a7047d 100644 --- a/src/main/java/org/olat/course/run/scoring/AverageCompletionEvaluator.java +++ b/src/main/java/org/olat/course/run/scoring/AverageCompletionEvaluator.java @@ -76,7 +76,9 @@ public class AverageCompletionEvaluator implements CompletionEvaluator { AssessmentConfig assessmentConfig = courseAssessmentService.getAssessmentConfig(child); int nodeCount = 0; double nodeCompletion = 0.0; - if (isFullyAssessed(assessmentEvaluation)) { + if (Mode.evaluated.equals(assessmentConfig.getCompletionMode())) { + continue; // do not count twice + } else if (isFullyAssessed(assessmentEvaluation)) { nodeCount = 1; nodeCompletion = 1.0; } else if (Mode.setByNode.equals(assessmentConfig.getCompletionMode())) { diff --git a/src/test/java/org/olat/course/run/scoring/AverageCompletionEvaluatorTest.java b/src/test/java/org/olat/course/run/scoring/AverageCompletionEvaluatorTest.java index 47b6c0d0971afe8cd65e46f48eef02b06f18b40f..ca4405a5a0e7f21211395b3df1f01578b179a01b 100644 --- a/src/test/java/org/olat/course/run/scoring/AverageCompletionEvaluatorTest.java +++ b/src/test/java/org/olat/course/run/scoring/AverageCompletionEvaluatorTest.java @@ -92,10 +92,16 @@ public class AverageCompletionEvaluatorTest { AssessmentEvaluation childCalculatedEvaluation = createAssessmentEvaluation(mandatory, null, Double.valueOf(0.1), null, null); scoreAccounting.put(childCalculated, childCalculatedEvaluation); when(courseAssessmentService.getAssessmentConfig(childCalculated)).thenReturn(configEvaluated); + // Child: Calculated, fully assessed + CourseNode childCalculated2 = new STCourseNode(); + parent.addChild(childCalculated2); + AssessmentEvaluation childCalculatedEvaluation2 = createAssessmentEvaluation(mandatory, null, Double.valueOf(0.1), null, Boolean.TRUE); + scoreAccounting.put(childCalculated2, childCalculatedEvaluation2); + when(courseAssessmentService.getAssessmentConfig(childCalculated2)).thenReturn(configEvaluated); // Child level 2: calculated CourseNode child2Uncalculated = new SPCourseNode(); - childCalculated.addChild(child2Uncalculated); + childCalculated2.addChild(child2Uncalculated); AssessmentEvaluation child2UncalculatedEvaluation = createAssessmentEvaluation(mandatory, null, Double.valueOf(1.0), null, null); scoreAccounting.put(child2Uncalculated, child2UncalculatedEvaluation); when(courseAssessmentService.getAssessmentConfig(child2Uncalculated)).thenReturn(configSetByNode);