From 02eb46020d31a01e488582a04a79662efb8a28cd Mon Sep 17 00:00:00 2001
From: uhensler <urs.hensler@frentix.com>
Date: Mon, 26 Aug 2019 09:13:57 +0200
Subject: [PATCH] OO-4186: Save score in list of identities of check list
 course element

---
 .../manager/AssessmentNotificationsHandler.java |  1 -
 .../nodes/cl/CheckListAssessmentHandler.java    | 17 +++++++++++------
 .../ui/AssessedIdentityCheckListController.java | 14 +++++++-------
 .../ui/AssessedIdentityOverviewController.java  |  7 +++----
 4 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/src/main/java/org/olat/course/assessment/manager/AssessmentNotificationsHandler.java b/src/main/java/org/olat/course/assessment/manager/AssessmentNotificationsHandler.java
index ddba9d33580..b3e11ed7173 100644
--- a/src/main/java/org/olat/course/assessment/manager/AssessmentNotificationsHandler.java
+++ b/src/main/java/org/olat/course/assessment/manager/AssessmentNotificationsHandler.java
@@ -252,7 +252,6 @@ public class AssessmentNotificationsHandler implements NotificationsHandler {
 	 * <code>AssessableCourseNode</code>
 	 * </ul>
 	 */
-	//TODO uh CourseNodeSelector as well
 	private List<CourseNode> getCourseTestNodes(ICourse course) {
 		List<CourseNode> assessableNodes = new ArrayList<>();
 
diff --git a/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java b/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java
index b56ecb55314..a1052e2ebd6 100644
--- a/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java
+++ b/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java
@@ -85,12 +85,17 @@ public class CheckListAssessmentHandler implements AssessmentHandler {
 	public Controller getDetailsEditController(UserRequest ureq, WindowControl wControl, BreadcrumbPanel stackPanel,
 			CourseNode courseNode, UserCourseEnvironment coachCourseEnv,
 			UserCourseEnvironment assessedUserCourseEnvironment) {
-		Identity assessedIdentity = assessedUserCourseEnvironment.getIdentityEnvironment().getIdentity();
-		Long resId = assessedUserCourseEnvironment.getCourseEnvironment().getCourseResourceableId();
-		OLATResourceable courseOres = OresHelper.createOLATResourceableInstance("CourseModule", resId);
-		
-		return new AssessedIdentityCheckListController(ureq, wControl, assessedIdentity, courseOres, coachCourseEnv,
-				assessedUserCourseEnvironment, courseNode, false, false);
+		if (courseNode instanceof CheckListCourseNode) {
+			CheckListCourseNode clCourseNode = (CheckListCourseNode)courseNode;
+			
+			Identity assessedIdentity = assessedUserCourseEnvironment.getIdentityEnvironment().getIdentity();
+			Long resId = assessedUserCourseEnvironment.getCourseEnvironment().getCourseResourceableId();
+			OLATResourceable courseOres = OresHelper.createOLATResourceableInstance("CourseModule", resId);
+			
+			return new AssessedIdentityCheckListController(ureq, wControl, assessedIdentity, courseOres, coachCourseEnv,
+					assessedUserCourseEnvironment, clCourseNode, false, false);
+		}
+		return null;
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityCheckListController.java b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityCheckListController.java
index a10862502af..94835e02006 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityCheckListController.java
+++ b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityCheckListController.java
@@ -44,7 +44,6 @@ import org.olat.core.id.OLATResourceable;
 import org.olat.core.util.StringHelper;
 import org.olat.course.assessment.AssessmentHelper;
 import org.olat.course.nodes.CheckListCourseNode;
-import org.olat.course.nodes.CourseNode;
 import org.olat.course.nodes.MSCourseNode;
 import org.olat.course.nodes.cl.CheckboxManager;
 import org.olat.course.nodes.cl.model.AssessmentBatch;
@@ -54,6 +53,7 @@ import org.olat.course.nodes.cl.model.DBCheck;
 import org.olat.course.nodes.cl.model.DBCheckbox;
 import org.olat.course.run.userview.UserCourseEnvironment;
 import org.olat.modules.ModuleConfiguration;
+import org.olat.modules.assessment.Role;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
@@ -70,7 +70,7 @@ public class AssessedIdentityCheckListController extends FormBasicController {
 	private final boolean withScore;
 	private final boolean saveAndClose;
 	private final ModuleConfiguration config;
-	private final CourseNode courseNode;
+	private final CheckListCourseNode courseNode;
 	private final UserCourseEnvironment coachCourseEnv;
 	private final UserCourseEnvironment assessedUserCourseEnv;
 	private final OLATResourceable courseOres;
@@ -82,9 +82,10 @@ public class AssessedIdentityCheckListController extends FormBasicController {
 	@Autowired
 	private CheckboxManager checkboxManager;
 	
-	public AssessedIdentityCheckListController(UserRequest ureq, WindowControl wControl,
-			Identity assessedIdentity, OLATResourceable courseOres, UserCourseEnvironment coachCourseEnv,
-			UserCourseEnvironment assessedUserCourseEnv, CourseNode courseNode, boolean saveAndClose, boolean cancel) {
+	public AssessedIdentityCheckListController(UserRequest ureq, WindowControl wControl, Identity assessedIdentity,
+			OLATResourceable courseOres, UserCourseEnvironment coachCourseEnv,
+			UserCourseEnvironment assessedUserCourseEnv, CheckListCourseNode courseNode, boolean saveAndClose,
+			boolean cancel) {
 		super(ureq, wControl);
 
 		this.cancel = cancel;
@@ -285,8 +286,7 @@ public class AssessedIdentityCheckListController extends FormBasicController {
 		}
 		checkboxManager.check(courseOres, courseNode.getIdent(), batchElements);
 		
-		//TODO uh enable
-//		courseNode.updateScoreEvaluation(getIdentity(), assessedUserCourseEnv, assessedIdentity, Role.coach);
+		courseNode.updateScoreEvaluation(getIdentity(), assessedUserCourseEnv, assessedIdentity, Role.coach);
 	}
 	
 	private void doUpdateCheck(CheckboxWrapper wrapper, boolean check) {
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityOverviewController.java b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityOverviewController.java
index fd03189eff2..a66feb23839 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityOverviewController.java
+++ b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityOverviewController.java
@@ -65,10 +65,9 @@ public class AssessedIdentityOverviewController extends BasicController {
 	
 	private boolean changes = false;
 	
-	public AssessedIdentityOverviewController(UserRequest ureq, WindowControl wControl,
-			Identity assessedIdentity, OLATResourceable courseOres,
-			UserCourseEnvironment coachCourseEnv, UserCourseEnvironment assessedUserCourseEnv,
-			CheckListCourseNode courseNode) {
+	public AssessedIdentityOverviewController(UserRequest ureq, WindowControl wControl, Identity assessedIdentity,
+			OLATResourceable courseOres, UserCourseEnvironment coachCourseEnv,
+			UserCourseEnvironment assessedUserCourseEnv, CheckListCourseNode courseNode) {
 		super(ureq, wControl);
 		
 		this.courseNode = courseNode;
-- 
GitLab