Index: lams_tool_assessment/conf/hibernate/mappings/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.hbm.xml =================================================================== diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -rb32657226efa9a6bb90a1c12a69e82a5acde2e80 --- lams_tool_assessment/conf/hibernate/mappings/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.hbm.xml (.../AssessmentQuestion.hbm.xml) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e) +++ lams_tool_assessment/conf/hibernate/mappings/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.hbm.xml (.../AssessmentQuestion.hbm.xml) (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -258,6 +258,15 @@ column="groups_answers_disclosed" /> + + + \ No newline at end of file Index: lams_tool_assessment/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rc42bcefca986365cbe681c165e45a3f1d2409f47 -rb32657226efa9a6bb90a1c12a69e82a5acde2e80 --- lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision c42bcefca986365cbe681c165e45a3f1d2409f47) +++ lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -338,5 +338,6 @@ label.disclose.all.correct.answers =Disclose all correct answers label.disclose.all.groups.answers =Disclose all groups' answers +label.prefix.sequential.letters.for.each.answer =Prefix sequential letters for each answer #======= End labels: Exported 331 labels for en AU ===== Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20180515.sql =================================================================== diff -u --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20180515.sql (revision 0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20180515.sql (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -0,0 +1,14 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +----------------------Put all sql statements below here------------------------- + +-- LDEV-4582 Option to add prefix letter to assessment MCQ answers +ALTER TABLE tl_laasse10_assessment_question ADD COLUMN prefix_answers_with_letters TINYINT(1); + +----------------------Put all sql statements above here------------------------- + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/OptionDTO.java =================================================================== diff -u -rc97b41d72e071f6293126bd85f6eba0b756f7836 -rb32657226efa9a6bb90a1c12a69e82a5acde2e80 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/OptionDTO.java (.../OptionDTO.java) (revision c97b41d72e071f6293126bd85f6eba0b756f7836) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/OptionDTO.java (.../OptionDTO.java) (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -126,4 +126,7 @@ this.answerBoolean = answerBoolean; } + public String formatPrefixLetter(int index) { + return new String(Character.toChars(97 + index)) + ")"; + } } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/QuestionDTO.java =================================================================== diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -rb32657226efa9a6bb90a1c12a69e82a5acde2e80 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/QuestionDTO.java (.../QuestionDTO.java) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/QuestionDTO.java (.../QuestionDTO.java) (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -43,7 +43,9 @@ private String feedbackOnIncorrect; + // only one of shuffle and prefixAnswersWithLetters should be on. Both may be off private boolean shuffle; + private boolean prefixAnswersWithLetters; private boolean caseSensitive; @@ -108,6 +110,7 @@ this.feedbackOnPartiallyCorrect = question.getFeedbackOnPartiallyCorrect(); this.feedbackOnIncorrect = question.getFeedbackOnIncorrect(); this.shuffle = question.isShuffle(); + this.prefixAnswersWithLetters = question.isPrefixAnswersWithLetters(); this.caseSensitive = question.isCaseSensitive(); this.correctAnswer = question.getCorrectAnswer(); this.allowRichEditor = question.isAllowRichEditor(); @@ -420,4 +423,12 @@ public void setOptionDtos(Set optionDtos) { this.optionDtos = optionDtos; } + + public boolean isPrefixAnswersWithLetters() { + return prefixAnswersWithLetters; + } + + public void setPrefixAnswersWithLetters(boolean prefixAnswersWithLetters) { + this.prefixAnswersWithLetters = prefixAnswersWithLetters; + } } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java =================================================================== diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -rb32657226efa9a6bb90a1c12a69e82a5acde2e80 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java (.../AssessmentQuestion.java) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java (.../AssessmentQuestion.java) (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -81,7 +81,9 @@ private String feedbackOnIncorrect; + // only one of shuffle and prefixAnswersWithLetters should be on. Both may be off private boolean shuffle; + private boolean prefixAnswersWithLetters; private boolean caseSensitive; @@ -480,4 +482,12 @@ public void setTitleEscaped(String titleEscaped) { this.titleEscaped = titleEscaped; } + + public boolean isPrefixAnswersWithLetters() { + return prefixAnswersWithLetters; + } + + public void setPrefixAnswersWithLetters(boolean prefixAnswersWithLetters) { + this.prefixAnswersWithLetters = prefixAnswersWithLetters; + } } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java =================================================================== diff -u -r5d1d1bc2d08ed13455ca34ceb5ab94e5f918855d -rb32657226efa9a6bb90a1c12a69e82a5acde2e80 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 5d1d1bc2d08ed13455ca34ceb5ab94e5f918855d) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -603,6 +603,7 @@ assessmentQuestion.setType(AssessmentConstants.QUESTION_TYPE_MULTIPLE_CHOICE); assessmentQuestion.setMultipleAnswersAllowed(false); assessmentQuestion.setShuffle(false); + assessmentQuestion.setPrefixAnswersWithLetters(false); } else { assessmentQuestion.setType(AssessmentConstants.QUESTION_TYPE_SHORT_ANSWER); @@ -660,6 +661,7 @@ assessmentQuestion.setType(AssessmentConstants.QUESTION_TYPE_MULTIPLE_CHOICE); assessmentQuestion.setMultipleAnswersAllowed(true); assessmentQuestion.setShuffle(false); + assessmentQuestion.setPrefixAnswersWithLetters(false); if (question.getAnswers() != null) { float totalScore = 0; @@ -761,6 +763,7 @@ } else if (Question.QUESTION_TYPE_ESSAY.equals(question.getType())) { assessmentQuestion.setType(AssessmentConstants.QUESTION_TYPE_MULTIPLE_CHOICE); assessmentQuestion.setShuffle(false); + assessmentQuestion.setPrefixAnswersWithLetters(false); String correctAnswer = null; if (question.getAnswers() != null) { @@ -1747,6 +1750,7 @@ form.setFeedbackOnPartiallyCorrect(question.getFeedbackOnPartiallyCorrect()); form.setFeedbackOnIncorrect(question.getFeedbackOnIncorrect()); form.setShuffle(question.isShuffle()); + form.setPrefixAnswersWithLetters(question.isPrefixAnswersWithLetters()); form.setCaseSensitive(question.isCaseSensitive()); form.setCorrectAnswer(question.getCorrectAnswer()); form.setAllowRichEditor(question.isAllowRichEditor()); @@ -1826,6 +1830,7 @@ question.setIncorrectAnswerNullifiesMark(incorrectAnswerNullifiesMark); question.setPenaltyFactor(Float.parseFloat(questionForm.getPenaltyFactor())); question.setShuffle(questionForm.isShuffle()); + question.setPrefixAnswersWithLetters(questionForm.isPrefixAnswersWithLetters()); question.setFeedbackOnCorrect(questionForm.getFeedbackOnCorrect()); question.setFeedbackOnPartiallyCorrect(questionForm.getFeedbackOnPartiallyCorrect()); question.setFeedbackOnIncorrect(questionForm.getFeedbackOnIncorrect()); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java =================================================================== diff -u -rc2585242b3a8ef9215af42e9644c15992cc6355b -rb32657226efa9a6bb90a1c12a69e82a5acde2e80 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision c2585242b3a8ef9215af42e9644c15992cc6355b) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -353,7 +353,7 @@ ArrayList shuffledList = new ArrayList(questionDtos); Collections.shuffle(shuffledList); questionDtos = new LinkedList(shuffledList); - } + } for (QuestionDTO questionDto : questionDtos) { if (questionDto.isShuffle() || (questionDto.getType() == AssessmentConstants.QUESTION_TYPE_ORDERING)) { ArrayList shuffledList = new ArrayList(questionDto.getOptionDtos()); @@ -374,7 +374,7 @@ } }); questionDto.setMatchingPairOptions(new LinkedHashSet(optionsSortedByOptionString)); - } + } } //paging Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AssessmentQuestionForm.java =================================================================== diff -u -r3399163940c61c9132223c758d274486e57ff9b7 -rb32657226efa9a6bb90a1c12a69e82a5acde2e80 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AssessmentQuestionForm.java (.../AssessmentQuestionForm.java) (revision 3399163940c61c9132223c758d274486e57ff9b7) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AssessmentQuestionForm.java (.../AssessmentQuestionForm.java) (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -54,7 +54,9 @@ private String feedbackOnCorrect; private String feedbackOnPartiallyCorrect; private String feedbackOnIncorrect; + // only one of shuffle and prefixAnswersWithLetters should be on. Both may be off private boolean shuffle; + private boolean prefixAnswersWithLetters; private boolean caseSensitive; private boolean correctAnswer; private boolean allowRichEditor; @@ -253,4 +255,12 @@ public void setHedgingJustificationEnabled(boolean hedgingJustificationEnabled) { this.hedgingJustificationEnabled = hedgingJustificationEnabled; } + + public boolean isPrefixAnswersWithLetters() { + return prefixAnswersWithLetters; + } + + public void setPrefixAnswersWithLetters(boolean prefixAnswersWithLetters) { + this.prefixAnswersWithLetters = prefixAnswersWithLetters; + } } Index: lams_tool_assessment/web/includes/css/assessment.scss =================================================================== diff -u -ra83b0eec89979dce7415b02afdda324b14018dbb -rb32657226efa9a6bb90a1c12a69e82a5acde2e80 --- lams_tool_assessment/web/includes/css/assessment.scss (.../assessment.scss) (revision a83b0eec89979dce7415b02afdda324b14018dbb) +++ lams_tool_assessment/web/includes/css/assessment.scss (.../assessment.scss) (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -49,6 +49,14 @@ padding:5px 0px 2px 15px; width: 5px; } +.has-radio-button-prefix { + padding:5px 0px 5px 5px !important; + width: 45px; +} +.has-radio-button-prefix-answer { + padding-left:0px !important; +} + .complete-item-gif { padding:5px 0px 2px 15px; width: 7px; Index: lams_tool_assessment/web/pages/authoring/parts/addmultiplechoice.jsp =================================================================== diff -u -r4e39db7121b2be70c34a77f7e53982cf9a5c4b04 -rb32657226efa9a6bb90a1c12a69e82a5acde2e80 --- lams_tool_assessment/web/pages/authoring/parts/addmultiplechoice.jsp (.../addmultiplechoice.jsp) (revision 4e39db7121b2be70c34a77f7e53982cf9a5c4b04) +++ lams_tool_assessment/web/pages/authoring/parts/addmultiplechoice.jsp (.../addmultiplechoice.jsp) (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -101,6 +101,33 @@ $("#incorrect-answer-nullifies-mark-area").toggle(eval($(this).val())); }).trigger("change"); + // Only one of prefixAnswersWithLetters or shuffle at a time + $("#prefixAnswersWithLetters").on('change', function() { + if ( this.checked ) { + if ($("#shuffle").prop('checked')) { + $("#shuffle").prop('checked', false); + } + $("#shuffle").prop('disabled', true); + $("#shuffleText").addClass('text-muted'); + } else { + $("#shuffle").prop('disabled', false); + $("#shuffleText").removeClass('text-muted'); + } + }).trigger("change"); + + $("#shuffle").on('change', function() { + if ( this.checked ) { + if ($("#prefixAnswersWithLetters").prop('checked')) { + $("#prefixAnswersWithLetters").prop('checked', false); + } + $("#prefixAnswersWithLetters").prop('disabled', true); + $("#prefixAnswersWithLettersText").addClass('text-muted'); + } else { + $("#prefixAnswersWithLetters").prop('disabled', false); + $("#prefixAnswersWithLettersText").removeClass('text-muted'); + } + }).trigger("change"); + }); // post-submit callback function afterRatingSubmit(responseText, statusText) { @@ -191,10 +218,17 @@
+
+ +
+
in form-group"> Index: lams_tool_assessment/web/pages/learning/parts/multiplechoice.jsp =================================================================== diff -u -rc97b41d72e071f6293126bd85f6eba0b756f7836 -rb32657226efa9a6bb90a1c12a69e82a5acde2e80 --- lams_tool_assessment/web/pages/learning/parts/multiplechoice.jsp (.../multiplechoice.jsp) (revision c97b41d72e071f6293126bd85f6eba0b756f7836) +++ lams_tool_assessment/web/pages/learning/parts/multiplechoice.jsp (.../multiplechoice.jsp) (revision b32657226efa9a6bb90a1c12a69e82a5acde2e80) @@ -13,9 +13,9 @@
- + - -
+ + +  ${option.formatPrefixLetter(answerStatus.index)} + +