Index: lams_common/src/java/org/lamsfoundation/lams/qb/QbUtils.java =================================================================== diff -u -rb074034d65483c22c90989799ad534947078bd98 -reebd98dce318486b1b04b5d683404622517af1e8 --- lams_common/src/java/org/lamsfoundation/lams/qb/QbUtils.java (.../QbUtils.java) (revision b074034d65483c22c90989799ad534947078bd98) +++ lams_common/src/java/org/lamsfoundation/lams/qb/QbUtils.java (.../QbUtils.java) (revision eebd98dce318486b1b04b5d683404622517af1e8) @@ -100,12 +100,12 @@ Collectors.toCollection(LinkedHashSet::new))); } - public static boolean isVSAnswerAllocated(String option, String answer, boolean isCaseSensitive) { - if (StringUtils.isBlank(option) || StringUtils.isBlank(answer)) { + public static boolean isVSAnswerAllocated(String option, String normalisedAnswer, boolean isCaseSensitive) { + if (StringUtils.isBlank(option) || StringUtils.isBlank(normalisedAnswer)) { return false; } return QbUtils.normaliseVSOption(option).stream() - .anyMatch(s -> isCaseSensitive ? s.equals(answer) : s.equalsIgnoreCase(answer)); + .anyMatch(s -> isCaseSensitive ? s.equals(normalisedAnswer) : s.equalsIgnoreCase(normalisedAnswer)); } /** Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== diff -u -r0e096dc12d51aa84a925f05454e6dd973c99d94f -reebd98dce318486b1b04b5d683404622517af1e8 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 0e096dc12d51aa84a925f05454e6dd973c99d94f) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision eebd98dce318486b1b04b5d683404622517af1e8) @@ -1100,7 +1100,8 @@ String name = correctAnswersGroup.getName(); for (String userAnswer : userAnswers) { - if (QbUtils.isVSAnswerAllocated(name, userAnswer, qbQuestion.isCaseSensitive())) { + String normalisedQuestionAnswer = QbUtils.normaliseVSAnswer(userAnswer); + if (QbUtils.isVSAnswerAllocated(name, normalisedQuestionAnswer, qbQuestion.isCaseSensitive())) { return true; } } @@ -1144,7 +1145,8 @@ for (ScratchieAnswerVisitLog userLog : userLogs) { if (userLog.getQbToolQuestion().getUid().equals(item.getUid())) { itemAttempts++; - if (correctVsaOption != null && QbUtils.isVSAnswerAllocated(correctVsaOption, userLog.getAnswer(), + String normalisedQuestionAnswer = QbUtils.normaliseVSAnswer(userLog.getAnswer()); + if (correctVsaOption != null && QbUtils.isVSAnswerAllocated(correctVsaOption, normalisedQuestionAnswer, qbQuestion.isCaseSensitive())) { break; }