From 53d94d30cdef36ac48e778dff0c3f113ccd7213a Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 28 Jun 2017 10:06:30 +0200
Subject: [PATCH] OO-2847: aggregate the max score from the questions and not
 from the test variable

---
 .../org/olat/ims/qti21/ui/AssessmentResultController.java   | 6 +++++-
 .../olat/ims/qti21/ui/AssessmentTestDisplayController.java  | 5 -----
 2 files changed, 5 insertions(+), 6 deletions(-)

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 22384ff38a1..1239e173bd4 100644
--- a/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java
@@ -246,7 +246,8 @@ public class AssessmentResultController extends FormBasicController {
 					String signatureUrl = signatureMapperUri + "/assessmentResultSignature.xml";
 					layoutCont.contextPut("signatureUrl", signatureUrl);
 				}
-	
+				
+				testResults.setMaxScore(null);//reset max score and aggregate
 				initFormSections(layoutCont, testResults);
 			}
 		}
@@ -286,6 +287,9 @@ public class AssessmentResultController extends FormBasicController {
 				if(results.sessionStatus == SessionStatus.FINAL) {
 					testResults.setNumberOfAnsweredQuestions(testResults.getNumberOfAnsweredQuestions() + 1);
 				}
+				if(results.hasMaxScore()) {
+					testResults.addMaxScore(results);
+				}
 			}
 		}
 	}
diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
index ccf1d08e577..54da0a8e831 100644
--- a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
@@ -2019,11 +2019,6 @@ public class AssessmentTestDisplayController extends BasicController implements
 					if(assessmentTestScoreValue instanceof FloatValue) {
 						score = ((FloatValue)assessmentTestScoreValue).doubleValue();
 					}
-					Value assessmentTestMaxScoreValue = testSessionController.getTestSessionState()
-							.getOutcomeValue(QTI21Constants.MAXSCORE_IDENTIFIER);
-					if(assessmentTestMaxScoreValue instanceof FloatValue) {
-						maxScore = ((FloatValue)assessmentTestMaxScoreValue).doubleValue();
-					}
 					
 					qtiWorksStatus.setScore(score);
 					qtiWorksStatus.setMaxScore(maxScore);
-- 
GitLab