Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java,v diff -u -r1.48.2.42 -r1.48.2.43 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java 24 Jan 2017 12:06:02 -0000 1.48.2.42 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java 1 Feb 2017 14:05:19 -0000 1.48.2.43 @@ -675,10 +675,10 @@ pattern = Pattern.compile(regexWithOnlyAsteriskSymbolActive, java.util.regex.Pattern.CASE_INSENSITIVE | java.util.regex.Pattern.UNICODE_CASE); } - boolean isAnswerCorrect = (question.getAnswerString() != null) + boolean isAnswerMatchedCurrentOption = (question.getAnswerString() != null) ? pattern.matcher(question.getAnswerString().trim()).matches() : false; - if (isAnswerCorrect) { + if (isAnswerMatchedCurrentOption) { mark = option.getGrade() * maxMark; questionResult.setSubmittedOptionUid(option.getUid()); break; @@ -689,15 +689,15 @@ String answerString = question.getAnswerString(); if (answerString != null) { for (AssessmentQuestionOption option : question.getOptions()) { - boolean isAnswerCorrect = false; + boolean isAnswerMatchedCurrentOption = false; try { float answerFloat = Float.valueOf(question.getAnswerString()); - isAnswerCorrect = ((answerFloat >= (option.getOptionFloat() - option.getAcceptedError())) + isAnswerMatchedCurrentOption = ((answerFloat >= (option.getOptionFloat() - option.getAcceptedError())) && (answerFloat <= (option.getOptionFloat() + option.getAcceptedError()))); } catch (Exception e) { } - if (!isAnswerCorrect) { + if (!isAnswerMatchedCurrentOption) { for (AssessmentUnit unit : question.getUnits()) { String regex = ".*" + unit.getUnit() + "$"; Pattern pattern = Pattern.compile(regex, @@ -708,18 +708,18 @@ try { float answerFloat = Float.valueOf(answerFloatStr); answerFloat = answerFloat / unit.getMultiplier(); - isAnswerCorrect = ((answerFloat >= (option.getOptionFloat() + isAnswerMatchedCurrentOption = ((answerFloat >= (option.getOptionFloat() - option.getAcceptedError())) && (answerFloat <= (option.getOptionFloat() + option.getAcceptedError()))); - if (isAnswerCorrect) { + if (isAnswerMatchedCurrentOption) { break; } } catch (Exception e) { } } } } - if (isAnswerCorrect) { + if (isAnswerMatchedCurrentOption) { mark = option.getGrade() * maxMark; questionResult.setSubmittedOptionUid(option.getUid()); break; Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java,v diff -u -r1.42.2.18 -r1.42.2.19 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java 2 Dec 2016 11:46:07 -0000 1.42.2.18 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java 1 Feb 2017 14:05:19 -0000 1.42.2.19 @@ -1024,7 +1024,13 @@ //required for showing right/wrong answers icons on results page correctly if (question.getType() == AssessmentConstants.QUESTION_TYPE_SHORT_ANSWER || question.getType() == AssessmentConstants.QUESTION_TYPE_NUMERICAL) { - boolean isAnsweredCorrectly = questionResult.getSubmittedOptionUid() != null; + boolean isAnsweredCorrectly = false; + for (AssessmentQuestionOption option : question.getOptions()) { + if (option.getUid().equals(questionResult.getSubmittedOptionUid())) { + isAnsweredCorrectly = option.getGrade() > 0; + break; + } + } question.setAnswerBoolean(isAnsweredCorrectly); } Index: lams_tool_assessment/web/pages/learning/parts/numerical.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/learning/parts/numerical.jsp,v diff -u -r1.11.2.5 -r1.11.2.6 --- lams_tool_assessment/web/pages/learning/parts/numerical.jsp 25 Jan 2017 07:15:13 -0000 1.11.2.5 +++ lams_tool_assessment/web/pages/learning/parts/numerical.jsp 1 Feb 2017 14:05:20 -0000 1.11.2.6 @@ -9,16 +9,15 @@