From 3e9f74f5d7f54924c040217b6da4d81447f67fdc Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 22 Feb 2017 13:54:56 +0100
Subject: [PATCH] OO-2566: sum score every time, convert section objective with
 some magic to be 2.1 conform

---
 .../MultipleChoiceAssessmentItemBuilder.java    | 17 +++++++++++++++++
 .../olat/ims/qti21/pool/QTI12To21Converter.java |  5 +++--
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/ims/qti21/model/xml/interactions/MultipleChoiceAssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/interactions/MultipleChoiceAssessmentItemBuilder.java
index 46c96bd7291..182f48efcfb 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/interactions/MultipleChoiceAssessmentItemBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/interactions/MultipleChoiceAssessmentItemBuilder.java
@@ -371,6 +371,23 @@ public class MultipleChoiceAssessmentItemBuilder extends SimpleChoiceAssessmentI
 		ResponseElse responseElse = new ResponseElse(rule);
 		rule.setResponseElse(responseElse);
 		
+		{//outcome score
+			SetOutcomeValue scoreOutcome = new SetOutcomeValue(responseElse);
+			scoreOutcome.setIdentifier(QTI21Constants.SCORE_IDENTIFIER);
+			responseElse.getResponseRules().add(scoreOutcome);
+			
+			Sum sum = new Sum(scoreOutcome);
+			scoreOutcome.getExpressions().add(sum);
+			
+			Variable scoreVar = new Variable(sum);
+			scoreVar.setIdentifier(QTI21Constants.SCORE_CLX_IDENTIFIER);
+			sum.getExpressions().add(scoreVar);
+			
+			MapResponse mapResponse = new MapResponse(sum);
+			mapResponse.setIdentifier(choiceInteraction.getResponseIdentifier());
+			sum.getExpressions().add(mapResponse);
+		}
+		
 		{// outcome feedback
 			SetOutcomeValue incorrectOutcomeValue = new SetOutcomeValue(responseElse);
 			incorrectOutcomeValue.setIdentifier(QTI21Constants.FEEDBACKBASIC_IDENTIFIER);
diff --git a/src/main/java/org/olat/ims/qti21/pool/QTI12To21Converter.java b/src/main/java/org/olat/ims/qti21/pool/QTI12To21Converter.java
index c7ddcbfbb59..eb7168745f1 100644
--- a/src/main/java/org/olat/ims/qti21/pool/QTI12To21Converter.java
+++ b/src/main/java/org/olat/ims/qti21/pool/QTI12To21Converter.java
@@ -207,7 +207,8 @@ public class QTI12To21Converter {
 		
 		RubricBlock rubricBlock = assessmentSection.getRubricBlocks().get(0);
 		rubricBlock.getBlocks().clear();
-		htmlBuilder.appendHtml(rubricBlock, section.getObjectives());
+		String objectives = section.getObjectives();
+		htmlBuilder.appendHtml(rubricBlock, prepareContent(objectives));
 
 		boolean shuffle = SelectionOrdering.RANDOM.equals(section.getSelection_ordering().getOrderType());
 		assessmentSection.getOrdering().setShuffle(shuffle);
@@ -263,7 +264,7 @@ public class QTI12To21Converter {
 				
 				//collect max score
 				Double maxScore = QtiNodesExtractor.extractMaxScore(assessmentItem);
-				if(maxScore != null) {
+				if(maxScore != null && maxScore.doubleValue() > 0.0d) {
 					atomicMaxScore.add(maxScore.doubleValue());
 				}
 			}
-- 
GitLab