From 5786563ea04b92e91fcf4c1273fbd2aaaa9ddb7a Mon Sep 17 00:00:00 2001
From: uhensler <urs.hensler@frentix.com>
Date: Mon, 4 May 2020 14:04:19 +0200
Subject: [PATCH] OO-4207: Update efficiency statement and generate certificate
 if progress is 100%

---
 .../manager/CourseAssessmentManagerImpl.java          | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java b/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java
index b2f45a79438..448eb80fc83 100644
--- a/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java
+++ b/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java
@@ -472,6 +472,9 @@ public class CourseAssessmentManagerImpl implements AssessmentManager {
 		ScoreAccounting scoreAccounting = userCourseEnvironment.getScoreAccounting();
 		scoreAccounting.evaluateAll(true);
 		DBFactory.getInstance().commit();
+		
+		updateUserEfficiencyStatement(userCourseEnvironment);
+		generateCertificate(userCourseEnvironment, course);
 	}
 
 	@Override
@@ -569,7 +572,7 @@ public class CourseAssessmentManagerImpl implements AssessmentManager {
 			}
 		}
 		
-		updateUserEfficiencyStatement(userCourseEnv, courseNode);
+		updateUserEfficiencyStatement(userCourseEnv);
 		generateCertificate(userCourseEnv, course);
 	}
 	
@@ -615,7 +618,7 @@ public class CourseAssessmentManagerImpl implements AssessmentManager {
 		AssessmentChangedEvent ace = new AssessmentChangedEvent(AssessmentChangedEvent.TYPE_SCORE_EVAL_CHANGED, assessedIdentity);
 		CoordinatorManager.getInstance().getCoordinator().getEventBus().fireEventToListenersOf(ace, course);
 		
-		updateUserEfficiencyStatement(userCourseEnvironment, rootNode);
+		updateUserEfficiencyStatement(userCourseEnvironment);
 		generateCertificate(userCourseEnvironment, course);
 		
 		return assessmentEntry.getPassedOverridable();
@@ -653,7 +656,7 @@ public class CourseAssessmentManagerImpl implements AssessmentManager {
 		AssessmentChangedEvent ace = new AssessmentChangedEvent(AssessmentChangedEvent.TYPE_SCORE_EVAL_CHANGED, assessedIdentity);
 		CoordinatorManager.getInstance().getCoordinator().getEventBus().fireEventToListenersOf(ace, course);
 		
-		updateUserEfficiencyStatement(userCourseEnvironment, rootNode);
+		updateUserEfficiencyStatement(userCourseEnvironment);
 		generateCertificate(userCourseEnvironment, course);
 		
 		return assessmentEntry.getPassedOverridable();
@@ -684,7 +687,7 @@ public class CourseAssessmentManagerImpl implements AssessmentManager {
 		}
 	}
 
-	private void updateUserEfficiencyStatement(UserCourseEnvironment userCourseEnvironment, CourseNode courseNode) {
+	private void updateUserEfficiencyStatement(UserCourseEnvironment userCourseEnvironment) {
 		CourseEnvironment courseEnv = userCourseEnvironment.getCourseEnvironment();
 		// write only when enabled for this course
 		if (courseEnv.getCourseConfig().isEfficencyStatementEnabled()) {
-- 
GitLab