Index: lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r1387fe8af57326cbd56493d2d1be5228ee98c729 -r43fb0f7cdc24246ee4b4469e4e8f22b5035f4daa --- lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 1387fe8af57326cbd56493d2d1be5228ee98c729) +++ lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 43fb0f7cdc24246ee4b4469e4e8f22b5035f4daa) @@ -288,7 +288,8 @@ label.option.correct =Correct? label.assign.hedging.mark =Assign marks to answers. Max possible mark: {0} label.learning.submit =Submit -warn.mark.hedging.wrong.total =In order to continue, all mark hedging questions should have all available marks assigned. +warn.mark.hedging.wrong.total =In order to continue, mark hedging type of questions should have all available marks assigned. +label.justify.hedging.marks =Please, justify your hedging marks. label.incorrect.answer.nullifies.mark =Only correct answer selection assigns full mark Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java =================================================================== diff -u -re511a4de2300f78a53f44e4e3d1d3ea7bed4858f -r43fb0f7cdc24246ee4b4469e4e8f22b5035f4daa --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision e511a4de2300f78a53f44e4e3d1d3ea7bed4858f) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision 43fb0f7cdc24246ee4b4469e4e8f22b5035f4daa) @@ -792,13 +792,20 @@ } else if (questionType == AssessmentConstants.QUESTION_TYPE_ORDERING) { } else if (questionType == AssessmentConstants.QUESTION_TYPE_MARK_HEDGING) { + + //store hedging marks for (AssessmentQuestionOption option : question.getOptions()) { Integer markHedging = WebUtil.readIntParam(request, AssessmentConstants.ATTR_QUESTION_PREFIX + i + "_" + option.getSequenceId(), true); if (markHedging != null) { option.setAnswerInt(markHedging); } } + + //store justificaion of hedging + String answerString = request.getParameter(AssessmentConstants.ATTR_QUESTION_PREFIX + i); + answerString = answerString.replaceAll("[\n\r\f]", ""); + question.setAnswerString(answerString); } } } @@ -821,13 +828,15 @@ int pageCount; for (pageCount = 0; pageCount < pagedQuestions.size(); pageCount++) { LinkedHashSet questionsForOnePage = pagedQuestions.get(pageCount); - + for (AssessmentQuestion question : questionsForOnePage) { - if (question.isAnswerRequired()) { + int questionType = question.getType(); + + //enforce all hedging marks question type to be answered as well + if (question.isAnswerRequired() || (questionType == AssessmentConstants.QUESTION_TYPE_MARK_HEDGING)) { boolean isAnswered = false; - int questionType = question.getType(); if (questionType == AssessmentConstants.QUESTION_TYPE_MULTIPLE_CHOICE) { for (AssessmentQuestionOption option : question.getOptions()) { @@ -850,11 +859,15 @@ } else if (questionType == AssessmentConstants.QUESTION_TYPE_MARK_HEDGING) { + //verify sum of all hedging marks is equal to question's grade int sumMarkHedging = 0; for (AssessmentQuestionOption option : question.getOptions()) { sumMarkHedging += option.getAnswerInt(); } - isAnswered = sumMarkHedging == question.getGrade(); + isAnswered = sumMarkHedging == question.getGrade(); + + //verify justification of hedging is provided + isAnswered &= StringUtils.isNotBlank(question.getAnswerString()); } // check all questions were answered Index: lams_tool_assessment/web/pages/learning/learning.jsp =================================================================== diff -u -r0340817df8d420d1feafa8ad9a43f667023515b2 -r43fb0f7cdc24246ee4b4469e4e8f22b5035f4daa --- lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision 0340817df8d420d1feafa8ad9a43f667023515b2) +++ lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision 43fb0f7cdc24246ee4b4469e4e8f22b5035f4daa) @@ -86,21 +86,29 @@