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