Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/QuestionDTO.java =================================================================== diff -u -re423418cca5e77a3b54cb3be496b67abe01c4183 -rd0d996208245ee5ce5cefa9c16b942505d0e52e6 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/QuestionDTO.java (.../QuestionDTO.java) (revision e423418cca5e77a3b54cb3be496b67abe01c4183) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/QuestionDTO.java (.../QuestionDTO.java) (revision d0d996208245ee5ce5cefa9c16b942505d0e52e6) @@ -100,8 +100,6 @@ /** * Expanded version of the constructor which also sets correctAnswersDisclosed and groupsAnswersDisclosed. - * - * @param assessmentQuestion */ public QuestionDTO(AssessmentQuestion assessmentQuestion) { this((QbToolQuestion) assessmentQuestion); @@ -110,6 +108,11 @@ this.groupsAnswersDisclosed = assessmentQuestion.isGroupsAnswersDisclosed(); } + public QuestionDTO(AssessmentQuestion assessmentQuestion, int displayOrder) { + this(assessmentQuestion); + this.displayOrder = displayOrder; + } + /** * Same as above, but skips setting assessment-specific question attributes */ Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/TblMonitoringController.java =================================================================== diff -u -ra8614f8bb8ccde5d2068b34659649c3c93c4e0d1 -rd0d996208245ee5ce5cefa9c16b942505d0e52e6 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/TblMonitoringController.java (.../TblMonitoringController.java) (revision a8614f8bb8ccde5d2068b34659649c3c93c4e0d1) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/TblMonitoringController.java (.../TblMonitoringController.java) (revision d0d996208245ee5ce5cefa9c16b942505d0e52e6) @@ -1,6 +1,7 @@ package org.lamsfoundation.lams.tool.assessment.web.controller; import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -74,7 +75,7 @@ Assessment assessment = assessmentService.getAssessmentByContentId(toolContentId); //prepare list of the questions, filtering out questions that aren't supposed to be answered - Set questionList = new TreeSet<>(); + Set questionList = new LinkedHashSet<>(); //in case there is at least one random question - we need to show all questions in a drop down select if (assessment.hasRandomQuestion()) { questionList.addAll(assessment.getQuestions()); @@ -86,12 +87,13 @@ } } //keep only MCQ type of questions - Set questionDtos = new TreeSet<>(); + Set questionDtos = new LinkedHashSet<>(); int maxOptionsInQuestion = 0; + int displayOrder = 1; for (AssessmentQuestion question : questionList) { if (QbQuestion.TYPE_MULTIPLE_CHOICE == question.getType() || QbQuestion.TYPE_VERY_SHORT_ANSWERS == question.getType()) { - questionDtos.add(new QuestionDTO(question)); + questionDtos.add(new QuestionDTO(question, displayOrder++)); //calculate maxOptionsInQuestion if (question.getQbQuestion().getQbOptions().size() > maxOptionsInQuestion) {