diff --git a/src/main/java/org/olat/ims/qti/editor/EssayItemController.java b/src/main/java/org/olat/ims/qti/editor/EssayItemController.java index 48eb4c21e5e49557e2524024d1f4d45cdf715648..4dcc69d94c3ec31d2acb0c0e260d67eaaba1077c 100644 --- a/src/main/java/org/olat/ims/qti/editor/EssayItemController.java +++ b/src/main/java/org/olat/ims/qti/editor/EssayItemController.java @@ -131,6 +131,7 @@ public class EssayItemController extends DefaultController implements Controller } essayQuestion.setMinValue(0.0f); essayQuestion.setMaxValue(sc); + essayQuestion.setSingleCorrectScore(sc); } catch(Exception e) { if(!qtiPackage.getQTIDocument().isSurvey()) { getWindowControl().setWarning(trnsltr.translate("editor.info.mc.zero.points")); diff --git a/src/main/java/org/olat/ims/qti/editor/beecom/objects/EssayQuestion.java b/src/main/java/org/olat/ims/qti/editor/beecom/objects/EssayQuestion.java index 6884ea69e212b289c8902edd1f7b02975d57ad50..b340b1986d1549910ea8c3127b788755091cccbb 100644 --- a/src/main/java/org/olat/ims/qti/editor/beecom/objects/EssayQuestion.java +++ b/src/main/java/org/olat/ims/qti/editor/beecom/objects/EssayQuestion.java @@ -87,8 +87,24 @@ public class EssayQuestion extends Question implements QTIObject { responses.add(response); instance.setResponses(responses); - // No resprocessing since used only in survey mode - + Element resprocessingXML = item.element("resprocessing"); + if (resprocessingXML != null) { + // set min/max score + Element decvar = (Element)resprocessingXML.selectSingleNode(".//decvar"); + if(decvar != null) { + String min = decvar.attributeValue("minvalue"); + if (min != null) { + instance.setMinValue(min); + } + String max = decvar.attributeValue("maxvalue"); + if (max != null) { + if(instance.isSingleCorrect()) { + instance.setSingleCorrectScore(max); + } + instance.setMaxValue(max); + } + } + } return instance; } @@ -128,11 +144,12 @@ public class EssayQuestion extends Question implements QTIObject { decvar.addAttribute("defaultval", "0"); decvar.addAttribute("minvalue", "" + getMinValue()); float maxScore = QTIEditHelper.calculateMaxScore(this); - maxScore = maxScore > getMaxValue() ? getMaxValue() : maxScore; - decvar.addAttribute("maxvalue", "" + maxScore); - decvar.addAttribute("cutvalue", "" + maxScore); + float maxValue = getMaxValue(); + float max = maxScore > maxValue ? maxValue : maxScore; + decvar.addAttribute("maxvalue", "" + max); + decvar.addAttribute("cutvalue", "" + max); - Element procExtension = resprocessingXML.addElement("itemproc_extension"); + resprocessingXML.addElement("itemproc_extension"); // hint if (getHintText() != null) {