From e1204e49914e90af2a965cb0b8d5e437d0f7d4b6 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Fri, 26 May 2017 11:21:38 +0200
Subject: [PATCH] OO-2784: add manual / auto / final score in results reportss

---
 .../qti21/ui/AssessmentResultController.java  | 39 ++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java
index 354bf454f13..fc0d6cc2b61 100644
--- a/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java
@@ -210,6 +210,10 @@ public class AssessmentResultController extends FormBasicController {
 			TestResult testResult = assessmentResult.getTestResult();
 			if(testResult != null) {
 				extractOutcomeVariable(testResult.getItemVariables(), testResults);
+				if(candidateSession.getManualScore() != null) {
+					testResults.addScore(candidateSession.getManualScore());
+					testResults.setManualScore(candidateSession.getManualScore());
+				}
 				
 				AssessmentTest assessmentTest = resolvedAssessmentTest.getRootNodeLookup().extractIfSuccessful();
 				Double cutValue = QtiNodesExtractor.extractCutValue(assessmentTest);
@@ -293,6 +297,7 @@ public class AssessmentResultController extends FormBasicController {
 		if(itemSession != null) {
 			if(itemSession.getManualScore() != null) {
 				r.setScore(itemSession.getManualScore());
+				r.setManualScore(itemSession.getManualScore());
 			}
 			r.setComment(itemSession.getCoachComment());
 		}
@@ -424,7 +429,9 @@ public class AssessmentResultController extends FormBasicController {
 		for(ItemVariable itemVariable:itemVariables) {
 			if(itemVariable instanceof OutcomeVariable) {
 				if(QTI21Constants.SCORE_IDENTIFIER.equals(itemVariable.getIdentifier())) {
-					results.setScore(getOutcomeNumberVariable(itemVariable));
+					Double score = getOutcomeNumberVariable(itemVariable);
+					results.setScore(score);
+					results.setAutoScore(score);
 				} else if(QTI21Constants.MAXSCORE_IDENTIFIER.equals(itemVariable.getIdentifier())) {
 					results.setMaxScore(getOutcomeNumberVariable(itemVariable));
 				} else if(QTI21Constants.PASS_IDENTIFIER.equals(itemVariable.getIdentifier())) {
@@ -507,6 +514,9 @@ public class AssessmentResultController extends FormBasicController {
 		private Long duration;
 		
 		private Double score;
+		private Double manualScore;
+		private Double autoScore;
+		
 		private Double maxScore;
 		private Double cutValue;
 		private Boolean pass;
@@ -630,6 +640,33 @@ public class AssessmentResultController extends FormBasicController {
 			}
 		}
 		
+		public void addScore(BigDecimal additionalScore) {
+			if(score == null) {
+				score = 0.0d;
+			}
+			score = score.doubleValue() + additionalScore.doubleValue();
+		}
+		
+		public String getAutoScore() {
+			return AssessmentHelper.getRoundedScore(autoScore);
+		}
+		
+		public void setAutoScore(Double autoScore) {
+			if(autoScore != null) {
+				this.autoScore = autoScore.doubleValue();
+			}
+		}
+		
+		public String getManualScore() {
+			return AssessmentHelper.getRoundedScore(manualScore);
+		}
+		
+		public void setManualScore(BigDecimal manualScore) {
+			if(manualScore != null) {
+				this.manualScore = manualScore.doubleValue();
+			}
+		}
+		
 		public boolean hasMaxScore() {
 			return maxScore != null;
 		}
-- 
GitLab