Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/LearningWebsocketServer.java =================================================================== diff -u -r269c13324c6bb998631af858dc8091ad3102ef78 -r0ac9fd6fe9f8c417393174e0ad1e68ef09ab33c7 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/LearningWebsocketServer.java (.../LearningWebsocketServer.java) (revision 269c13324c6bb998631af858dc8091ad3102ef78) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/LearningWebsocketServer.java (.../LearningWebsocketServer.java) (revision 0ac9fd6fe9f8c417393174e0ad1e68ef09ab33c7) @@ -166,7 +166,8 @@ } } - String optionUidOrAnswer = QbQuestion.TYPE_MULTIPLE_CHOICE == item.getQbQuestion().getType() + boolean isMCQItem = QbQuestion.TYPE_MULTIPLE_CHOICE == item.getQbQuestion().getType(); + String optionUidOrAnswer = isMCQItem ? optionDto.getQbOptionUid().toString() : optionDto.getAnswer(); Boolean isCorrectStoredAnswer = optionDto.isCorrect(); @@ -179,7 +180,10 @@ if (itemJSON == null) { itemJSON = JsonNodeFactory.instance.objectNode(); } - itemJSON.put(optionUidOrAnswer.toString(), isCorrectStoredAnswer); + ObjectNode optionPropertiesJSON = JsonNodeFactory.instance.objectNode(); + optionPropertiesJSON.put("isCorrect", isCorrectStoredAnswer); + optionPropertiesJSON.put("isVSA", !isMCQItem); + itemJSON.set(optionUidOrAnswer, optionPropertiesJSON); } } } Index: lams_tool_scratchie/web/pages/learning/questionlist.jsp =================================================================== diff -u -r269c13324c6bb998631af858dc8091ad3102ef78 -r0ac9fd6fe9f8c417393174e0ad1e68ef09ab33c7 --- lams_tool_scratchie/web/pages/learning/questionlist.jsp (.../questionlist.jsp) (revision 269c13324c6bb998631af858dc8091ad3102ef78) +++ lams_tool_scratchie/web/pages/learning/questionlist.jsp (.../questionlist.jsp) (revision 0ac9fd6fe9f8c417393174e0ad1e68ef09ab33c7) @@ -84,10 +84,9 @@ // only updates come via websockets $.each(input, function(itemUid, options) { - $.each(options, function(optionUid, isCorrect){ + $.each(options, function(optionUid, optionProperties){ - var isVsaItem = !Number.isInteger(optionUid); - if (isVsaItem) { + if (optionProperties.isVSA) { var answer = optionUid; optionUid = hashCode(optionUid); @@ -97,7 +96,7 @@ } } - scratchImage(itemUid, optionUid, isCorrect); + scratchImage(itemUid, optionUid, optionProperties.isCorrect); }); }); };