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 46c96bd7291b056103fdb246be624b50d9f9190e..182f48efcfb0634153e66b3cddd3b5b866c2aa4e 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 c7ddcbfbb59e8d10942fa91a788330dff8ecd222..eb7168745f1681dbd794f8ef778645a107431201 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()); } }