From f1255e8c11ff09efc460a0141d1b0a4b8356e30f Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 2 Dec 2015 15:05:31 +0100
Subject: [PATCH] OO-1593: remove double scoreInfoChanged, remove the method
 too as it was an alias for evaluateAll

---
 .../elements/table/FlexiTableElementImpl.java |  2 --
 .../archiver/ScoreAccountingHelper.java       |  6 +++--
 .../assessment/AssessmentEditController.java  |  3 ---
 .../manager/BulkAssessmentTask.java           |  2 --
 .../manager/CourseAssessmentManagerImpl.java  |  2 +-
 .../tool/IdentityCertificatesController.java  |  3 ++-
 .../course/nodes/CheckListCourseNode.java     |  4 ----
 .../course/nodes/iq/IQPreviewController.java  |  3 +--
 .../course/run/scoring/ScoreAccounting.java   | 22 -------------------
 .../assessment/model/AssessmentEntryImpl.java | 13 ++++++++---
 .../olat/modules/scorm/ScormAPIMapper.java    |  6 -----
 .../NewCachePersistingAssessmentManager.java  |  4 ++--
 .../database/mysql/alter_10_x_0_to_11_0_0.sql |  1 +
 .../database/mysql/setupDatabase.sql          |  1 +
 .../postgresql/alter_10_x_0_to_11_0_0.sql     |  1 +
 .../database/postgresql/setupDatabase.sql     |  1 +
 16 files changed, 24 insertions(+), 50 deletions(-)

diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
index 0f70bd7cd9d..557d697c9dd 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
@@ -828,8 +828,6 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 			saveCustomSettings(ureq);
 		} else if(doSelect(ureq)) {
 			//do select
-		} else {
-			System.out.println("");
 		}
 	}
 	
diff --git a/src/main/java/org/olat/course/archiver/ScoreAccountingHelper.java b/src/main/java/org/olat/course/archiver/ScoreAccountingHelper.java
index c9eed9a88e0..c79c58040cc 100644
--- a/src/main/java/org/olat/course/archiver/ScoreAccountingHelper.java
+++ b/src/main/java/org/olat/course/archiver/ScoreAccountingHelper.java
@@ -56,6 +56,7 @@ import org.olat.course.nodes.AssessableCourseNode;
 import org.olat.course.nodes.CourseNode;
 import org.olat.course.nodes.STCourseNode;
 import org.olat.course.run.environment.CourseEnvironment;
+import org.olat.course.run.scoring.ScoreAccounting;
 import org.olat.course.run.scoring.ScoreEvaluation;
 import org.olat.course.run.userview.UserCourseEnvironment;
 import org.olat.course.run.userview.UserCourseEnvironmentImpl;
@@ -166,7 +167,8 @@ public class ScoreAccountingHelper {
 			IdentityEnvironment ienv = new IdentityEnvironment();
 			ienv.setIdentity(identity);
 			UserCourseEnvironment uce = new UserCourseEnvironmentImpl(ienv, course.getCourseEnvironment());
-			uce.getScoreAccounting().evaluateAll();
+			ScoreAccounting scoreAccount = uce.getScoreAccounting();
+			scoreAccount.evaluateAll();
 			AssessmentManager am = course.getCourseEnvironment().getAssessmentManager();
 
 			for (AssessableCourseNode acnode:myNodes) {
@@ -176,7 +178,7 @@ public class ScoreAccountingHelper {
 				boolean commentOk = acnode.hasCommentConfigured();
 
 				if (scoreOk || passedOk || commentOk || attemptsOk) {
-					ScoreEvaluation se = uce.getScoreAccounting().getScoreEvaluation(acnode);
+					ScoreEvaluation se = scoreAccount.evalCourseNode(acnode);
 					boolean nodeColumnOk = false;
 					StringBuilder tabs = new StringBuilder();
 
diff --git a/src/main/java/org/olat/course/assessment/AssessmentEditController.java b/src/main/java/org/olat/course/assessment/AssessmentEditController.java
index 3c3db616b9b..db8f2a0b34b 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentEditController.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentEditController.java
@@ -320,9 +320,6 @@ public class AssessmentEditController extends BasicController {
 			// Update properties in db
 			courseNode.updateUserCoachComment(newCoachComment, userCourseEnvironment);
 		}
-		
-		// Refresh score view
-		userCourseEnvironment.getScoreAccounting().scoreInfoChanged(courseNode, scoreEval);
 	}
 	
 	public void reloadData(UserRequest ureq) {
diff --git a/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java b/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java
index a8c37aa922e..31b8fd744a7 100644
--- a/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java
+++ b/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java
@@ -387,7 +387,6 @@ public class BulkAssessmentTask implements LongRunnable, TaskAwareRunnable, Sequ
 					
 					// Update score,passed properties in db, and the user's efficiency statement
 					courseNode.updateUserScoreEvaluation(se, uce, coachIdentity, false);
-					uce.getScoreAccounting().scoreInfoChanged(courseNode, se);
 				}
 			}
 			
@@ -399,7 +398,6 @@ public class BulkAssessmentTask implements LongRunnable, TaskAwareRunnable, Sequ
 				// Update score,passed properties in db, and the user's efficiency statement
 				boolean incrementAttempts = false;
 				courseNode.updateUserScoreEvaluation(se, uce, coachIdentity, incrementAttempts);
-				uce.getScoreAccounting().scoreInfoChanged(courseNode, se);
 			}
 			
 			boolean identityHasReturnFile = false;
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 f34bb86232f..2ffa0830b59 100644
--- a/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java
+++ b/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java
@@ -277,7 +277,7 @@ public class CourseAssessmentManagerImpl implements AssessmentManager {
 					LoggingResourceable.wrapNonOlatResource(StringResourceableType.qtiAttempts, "", String.valueOf(attempts)));	
 		}
 		
-		userCourseEnv.getScoreAccounting().scoreInfoChanged(courseNode, scoreEvaluation);
+		userCourseEnv.getScoreAccounting().evaluateAll();//.scoreInfoChanged(courseNode, scoreEvaluation);
 		// Update users efficiency statement
 		efficiencyStatementManager.updateUserEfficiencyStatement(userCourseEnv);
 
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/IdentityCertificatesController.java b/src/main/java/org/olat/course/assessment/ui/tool/IdentityCertificatesController.java
index 3a54e5f37c9..03ccba1573b 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/IdentityCertificatesController.java
+++ b/src/main/java/org/olat/course/assessment/ui/tool/IdentityCertificatesController.java
@@ -49,6 +49,7 @@ import org.olat.course.certificate.CertificatesManager;
 import org.olat.course.certificate.model.CertificateInfos;
 import org.olat.course.certificate.ui.DownloadCertificateCellRenderer;
 import org.olat.course.config.CourseConfig;
+import org.olat.course.nodes.AssessableCourseNode;
 import org.olat.course.nodes.CourseNode;
 import org.olat.course.run.scoring.ScoreAccounting;
 import org.olat.course.run.scoring.ScoreEvaluation;
@@ -208,7 +209,7 @@ public class IdentityCertificatesController extends BasicController implements G
 		UserCourseEnvironment assessedUserCourseEnv = new UserCourseEnvironmentImpl(identityEnv, course.getCourseEnvironment());
 		ScoreAccounting scoreAccounting = assessedUserCourseEnv.getScoreAccounting();
 		scoreAccounting.evaluateAll();
-		ScoreEvaluation scoreEval = scoreAccounting.getScoreEvaluation(rootNode);
+		ScoreEvaluation scoreEval = scoreAccounting.evalCourseNode((AssessableCourseNode)rootNode);
 
 		CertificateTemplate template = null;
 		Long templateKey = course.getCourseConfig().getCertificateTemplate();
diff --git a/src/main/java/org/olat/course/nodes/CheckListCourseNode.java b/src/main/java/org/olat/course/nodes/CheckListCourseNode.java
index 70f7c65ae6a..27cc580066e 100644
--- a/src/main/java/org/olat/course/nodes/CheckListCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/CheckListCourseNode.java
@@ -590,8 +590,6 @@ public class CheckListCourseNode extends AbstractAccessableCourseNode implements
 		AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager();
 		Identity mySelf = userCourseEnv.getIdentityEnvironment().getIdentity();
 		am.saveScoreEvaluation(this, mySelf, assessedIdentity, sceval, userCourseEnv, false);
-	
-		userCourseEnv.getScoreAccounting().scoreInfoChanged(this, sceval);
 	}
 	
 	private void doUpdateAssessmentBySum(UserCourseEnvironment userCourseEnv, Identity assessedIdentity) {
@@ -623,8 +621,6 @@ public class CheckListCourseNode extends AbstractAccessableCourseNode implements
 		AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager();
 		Identity mySelf = userCourseEnv.getIdentityEnvironment().getIdentity();
 		am.saveScoreEvaluation(this, mySelf, assessedIdentity, sceval, userCourseEnv, false);
-		
-		userCourseEnv.getScoreAccounting().scoreInfoChanged(this, sceval);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/course/nodes/iq/IQPreviewController.java b/src/main/java/org/olat/course/nodes/iq/IQPreviewController.java
index e6f82f133f6..cc285dbc592 100644
--- a/src/main/java/org/olat/course/nodes/iq/IQPreviewController.java
+++ b/src/main/java/org/olat/course/nodes/iq/IQPreviewController.java
@@ -79,8 +79,7 @@ public class IQPreviewController extends BasicController {
 				boolean passed = score >= (cutValue == null ? 0 : cutValue.floatValue());
 				ScoreEvaluation sceval = new ScoreEvaluation(new Float(score), new Boolean(passed));
 				boolean incrementUserAttempts = true;
-				cn.updateUserScoreEvaluation(sceval, userCourseEnv, ureq.getIdentity(), incrementUserAttempts);
-				userCourseEnv.getScoreAccounting().scoreInfoChanged(cn, sceval);				
+				cn.updateUserScoreEvaluation(sceval, userCourseEnv, ureq.getIdentity(), incrementUserAttempts);				
 				getWindowControl().setInfo(translate("preview.points.set"));
 			}
 		}
diff --git a/src/main/java/org/olat/course/run/scoring/ScoreAccounting.java b/src/main/java/org/olat/course/run/scoring/ScoreAccounting.java
index 630dfa574c0..7f7c2e7360d 100644
--- a/src/main/java/org/olat/course/run/scoring/ScoreAccounting.java
+++ b/src/main/java/org/olat/course/run/scoring/ScoreAccounting.java
@@ -219,32 +219,10 @@ public class ScoreAccounting {
 		return passed;
 	}
 
-	/**
-	 * Change the score information for the given course node
-	 * @param acn
-	 * @param se
-	 */
-	public void scoreInfoChanged(AssessableCourseNode acn, ScoreEvaluation se) {
-		evaluateAll();
-	}
-
 	private CourseNode findChildByID(String id) {
 		return userCourseEnvironment.getCourseEnvironment().getRunStructure().getNode(id);
 	}
 
-	/**
-	 * @see org.olat.core.util.tree.Visitor#visit(org.olat.core.util.nodes.INode)
-	 */
-	public void visit(INode node) {
-		CourseNode cn = (CourseNode) node;
-		if (cn instanceof AssessableCourseNode) {
-			AssessableCourseNode acn = (AssessableCourseNode) cn;
-			evalCourseNode(acn);
-			// evalCourseNode will cache all infos
-		}
-		// else: non assessable nodes are not interesting here
-	}
-
 	/**
 	 * @return true if an error occured
 	 */
diff --git a/src/main/java/org/olat/modules/assessment/model/AssessmentEntryImpl.java b/src/main/java/org/olat/modules/assessment/model/AssessmentEntryImpl.java
index 80fc7bf7ce8..09d1afc8954 100644
--- a/src/main/java/org/olat/modules/assessment/model/AssessmentEntryImpl.java
+++ b/src/main/java/org/olat/modules/assessment/model/AssessmentEntryImpl.java
@@ -62,9 +62,6 @@ import org.olat.repository.RepositoryEntry;
 		query="select data from assessmententry data where data.repositoryEntry.key=:repositoryEntryKey and data.identity.key=:identityKey and data.subIdent is null"),
 	@NamedQuery(name="loadAssessmentEntryByRepositoryEntryAndSubIdent",
 		query="select data from assessmententry data where data.repositoryEntry.key=:repositoryEntryKey and data.subIdent=:subIdent")
-	
-	
-	
 })
 public class AssessmentEntryImpl implements Persistable, ModifiedInfo, CreateInfo, AssessmentEntry {
 	
@@ -90,6 +87,8 @@ public class AssessmentEntryImpl implements Persistable, ModifiedInfo, CreateInf
 	private Boolean passed;
 	@Column(name="a_status", nullable=true, insertable=true, updatable=true)
 	private String status;
+	@Column(name="a_details", nullable=true, insertable=true, updatable=true)
+	private String details;
 
 	@Column(name="a_completion", nullable=true, insertable=true, updatable=true)
 	private Double completion;
@@ -175,6 +174,14 @@ public class AssessmentEntryImpl implements Persistable, ModifiedInfo, CreateInf
 		this.passed = passed;
 	}
 	
+	public String getDetails() {
+		return details;
+	}
+
+	public void setDetails(String details) {
+		this.details = details;
+	}
+
 	public String getStatus() {
 		return status;
 	}
diff --git a/src/main/java/org/olat/modules/scorm/ScormAPIMapper.java b/src/main/java/org/olat/modules/scorm/ScormAPIMapper.java
index 29d5de14f99..6454c4021d0 100644
--- a/src/main/java/org/olat/modules/scorm/ScormAPIMapper.java
+++ b/src/main/java/org/olat/modules/scorm/ScormAPIMapper.java
@@ -200,7 +200,6 @@ public class ScormAPIMapper implements Mapper, ScormAPICallback, Serializable {
 				boolean increment = !attemptsIncremented && finish;
 				ScoreEvaluation sceval = new ScoreEvaluation(new Float(0.0f), Boolean.valueOf(passed));
 				scormNode.updateUserScoreEvaluation(sceval, userCourseEnv, identity, increment);
-				userCourseEnv.getScoreAccounting().scoreInfoChanged(scormNode, sceval);
 				if(increment) {
 					attemptsIncremented = true;
 				}
@@ -208,7 +207,6 @@ public class ScormAPIMapper implements Mapper, ScormAPICallback, Serializable {
 				boolean increment = !attemptsIncremented && finish;
 				ScoreEvaluation sceval = scormNode.getUserScoreEvaluation(userCourseEnv);
 				scormNode.updateUserScoreEvaluation(sceval, userCourseEnv, identity, increment);
-				userCourseEnv.getScoreAccounting().scoreInfoChanged(scormNode, sceval);
 				if(increment) {
 					attemptsIncremented = true;
 				}
@@ -217,7 +215,6 @@ public class ScormAPIMapper implements Mapper, ScormAPICallback, Serializable {
 			boolean increment = !attemptsIncremented && finish;
 			ScoreEvaluation sceval = new ScoreEvaluation(new Float(0.0f), Boolean.valueOf(passed));
 			scormNode.updateUserScoreEvaluation(sceval, userCourseEnv, identity, false);
-			userCourseEnv.getScoreAccounting().scoreInfoChanged(scormNode, sceval);
 			if(increment) {
 				attemptsIncremented = true;
 			}
@@ -258,7 +255,6 @@ public class ScormAPIMapper implements Mapper, ScormAPICallback, Serializable {
 				boolean increment = !attemptsIncremented && finish;
 				ScoreEvaluation sceval = new ScoreEvaluation(new Float(score), Boolean.valueOf(passed));
 				scormNode.updateUserScoreEvaluation(sceval, userCourseEnv, identity, increment);
-				userCourseEnv.getScoreAccounting().scoreInfoChanged(scormNode, sceval);
 				if(increment) {
 					attemptsIncremented = true;
 				}
@@ -266,7 +262,6 @@ public class ScormAPIMapper implements Mapper, ScormAPICallback, Serializable {
 				boolean increment = !attemptsIncremented && finish;
 				ScoreEvaluation sceval = scormNode.getUserScoreEvaluation(userCourseEnv);
 				scormNode.updateUserScoreEvaluation(sceval, userCourseEnv, identity, increment);
-				userCourseEnv.getScoreAccounting().scoreInfoChanged(scormNode, sceval);
 				if(increment) {
 					attemptsIncremented = true;
 				}
@@ -280,7 +275,6 @@ public class ScormAPIMapper implements Mapper, ScormAPICallback, Serializable {
 			boolean increment = !attemptsIncremented && finish;
 			ScoreEvaluation sceval = new ScoreEvaluation(new Float(score), Boolean.valueOf(passed));
 			scormNode.updateUserScoreEvaluation(sceval, userCourseEnv, identity, false);
-			userCourseEnv.getScoreAccounting().scoreInfoChanged(scormNode, sceval);
 			if(increment) {
 				attemptsIncremented = true;
 			}
diff --git a/src/main/java/org/olat/upgrade/legacy/NewCachePersistingAssessmentManager.java b/src/main/java/org/olat/upgrade/legacy/NewCachePersistingAssessmentManager.java
index 1324a688b0f..7238da08f94 100644
--- a/src/main/java/org/olat/upgrade/legacy/NewCachePersistingAssessmentManager.java
+++ b/src/main/java/org/olat/upgrade/legacy/NewCachePersistingAssessmentManager.java
@@ -876,7 +876,7 @@ public class NewCachePersistingAssessmentManager {
 					attempts = incrementNodeAttemptsProperty(courseNode, assessedIdentity, cpm);
 				}
 				if(courseNode instanceof AssessableCourseNode) {
-				  userCourseEnv.getScoreAccounting().scoreInfoChanged((AssessableCourseNode)courseNode, scoreEvaluation);
+				  userCourseEnv.getScoreAccounting().evaluateAll();
 				  // Update users efficiency statement
 				  EfficiencyStatementManager esm =	CoreSpringFactory.getImpl(EfficiencyStatementManager.class);
 				  esm.updateUserEfficiencyStatement(userCourseEnv);
@@ -968,7 +968,7 @@ public class NewCachePersistingAssessmentManager {
 		log.debug("successfully saved node fullyAssessed : " + scoreEvaluation.getFullyAssessed());
 		DBFactory.getInstance().commitAndCloseSession();
 		if (courseNode instanceof AssessableCourseNode) {
-			userCourseEnv.getScoreAccounting().scoreInfoChanged((AssessableCourseNode) courseNode, scoreEvaluation);
+			userCourseEnv.getScoreAccounting().evaluateAll();
 			EfficiencyStatementManager esm = CoreSpringFactory.getImpl(EfficiencyStatementManager.class);
 			esm.updateUserEfficiencyStatement(userCourseEnv);
 		}
diff --git a/src/main/resources/database/mysql/alter_10_x_0_to_11_0_0.sql b/src/main/resources/database/mysql/alter_10_x_0_to_11_0_0.sql
index 267ab3332a1..9dfac8b4756 100644
--- a/src/main/resources/database/mysql/alter_10_x_0_to_11_0_0.sql
+++ b/src/main/resources/database/mysql/alter_10_x_0_to_11_0_0.sql
@@ -6,6 +6,7 @@ create table o_as_entry (
    a_score float(65,30) default null,
    a_passed bit default null,
    a_status varchar(16) default null,
+   a_details varchar(1024) default null,
    a_fully_assessed bit default null,
    a_assessment_id bigint default null,
    a_completion float(65,30),
diff --git a/src/main/resources/database/mysql/setupDatabase.sql b/src/main/resources/database/mysql/setupDatabase.sql
index 38509c4e70a..9775c96795b 100644
--- a/src/main/resources/database/mysql/setupDatabase.sql
+++ b/src/main/resources/database/mysql/setupDatabase.sql
@@ -1077,6 +1077,7 @@ create table o_as_entry (
    a_score float(65,30) default null,
    a_passed bit default null,
    a_status varchar(16) default null,
+   a_details varchar(1024) default null,
    a_fully_assessed bit default null,
    a_assessment_id bigint default null,
    a_completion float(65,30),
diff --git a/src/main/resources/database/postgresql/alter_10_x_0_to_11_0_0.sql b/src/main/resources/database/postgresql/alter_10_x_0_to_11_0_0.sql
index 05367cc260e..2857f23f12d 100644
--- a/src/main/resources/database/postgresql/alter_10_x_0_to_11_0_0.sql
+++ b/src/main/resources/database/postgresql/alter_10_x_0_to_11_0_0.sql
@@ -6,6 +6,7 @@ create table o_as_entry (
    a_score decimal default null,
    a_passed bool default null,
    a_status varchar(16) default null,
+   a_details varchar(1024) default null,
    a_fully_assessed bool default null,
    a_assessment_id int8 default null,
    a_completion float(24),
diff --git a/src/main/resources/database/postgresql/setupDatabase.sql b/src/main/resources/database/postgresql/setupDatabase.sql
index 1ad970cffcd..8ade1d1d185 100644
--- a/src/main/resources/database/postgresql/setupDatabase.sql
+++ b/src/main/resources/database/postgresql/setupDatabase.sql
@@ -1075,6 +1075,7 @@ create table o_as_entry (
    a_score decimal default null,
    a_passed bool default null,
    a_status varchar(16) default null,
+   a_details varchar(1024) default null,
    a_fully_assessed bool default null,
    a_assessment_id int8 default null,
    a_completion float(24),
-- 
GitLab