Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/TblMonitoringController.java =================================================================== diff -u -r62d681de9646afc0cf474f6e50f75b85209e0eb6 -r431d95aae798ba77b0edd8f3ac30bf26b4f0be21 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/TblMonitoringController.java (.../TblMonitoringController.java) (revision 62d681de9646afc0cf474f6e50f75b85209e0eb6) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/TblMonitoringController.java (.../TblMonitoringController.java) (revision 431d95aae798ba77b0edd8f3ac30bf26b4f0be21) @@ -1,6 +1,7 @@ package org.lamsfoundation.lams.tool.assessment.web.controller; import java.util.ArrayList; +import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -113,18 +114,24 @@ request.setAttribute("maxOptionsInQuestion", maxOptionsInQuestion); request.setAttribute("vsaPresent", vsaPresent); - int totalNumberOfUsers = assessmentService.getCountUsersByContentId(toolContentId); - if (totalNumberOfUsers > 0) { - for (QuestionDTO questionDto : questionDtos) { + for (QuestionDTO questionDto : questionDtos) { + Map optionsAttempts = new HashMap<>(); + int questionAttempts = 0; + for (OptionDTO optionDto : questionDto.getOptionDtos()) { + int optionAttempts = assessmentService.countAttemptsPerOption(toolContentId, optionDto.getUid()); - // build candidate dtos - for (OptionDTO optionDto : questionDto.getOptionDtos()) { - int optionAttemptCount = assessmentService.countAttemptsPerOption(toolContentId, - optionDto.getUid()); + optionsAttempts.put(optionDto.getUid(), optionAttempts); + questionAttempts += optionAttempts; + } - float percentage = (float) (optionAttemptCount * 100) / totalNumberOfUsers; - optionDto.setPercentage(percentage); + for (OptionDTO optionDto : questionDto.getOptionDtos()) { + if (questionAttempts == 0) { + optionDto.setPercentage(-1); + continue; } + + float percentage = (float) (optionsAttempts.get(optionDto.getUid()) * 100) / questionAttempts; + optionDto.setPercentage(percentage); } } request.setAttribute("questions", questionDtos); Index: lams_tool_assessment/web/pages/monitoring/parts/mcqStudentChoices5.jsp =================================================================== diff -u -r151dcb61cfdde12e6883f1067a86befa00d4ab9e -r431d95aae798ba77b0edd8f3ac30bf26b4f0be21 --- lams_tool_assessment/web/pages/monitoring/parts/mcqStudentChoices5.jsp (.../mcqStudentChoices5.jsp) (revision 151dcb61cfdde12e6883f1067a86befa00d4ab9e) +++ lams_tool_assessment/web/pages/monitoring/parts/mcqStudentChoices5.jsp (.../mcqStudentChoices5.jsp) (revision 431d95aae798ba77b0edd8f3ac30bf26b4f0be21) @@ -8,7 +8,7 @@
- +
@@ -32,8 +32,19 @@ - - % + + + bg-success text-white + bg-danger text-white + bg-warning + + + + + + - + % +