Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java =================================================================== diff -u -r122ff0d8419be3fac72ddb842cbbce1cea01e542 -r419201d3ad6fa99804284edd03c21d0065217c6c --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java (.../AssessmentResultDAO.java) (revision 122ff0d8419be3fac72ddb842cbbce1cea01e542) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java (.../AssessmentResultDAO.java) (revision 419201d3ad6fa99804284edd03c21d0065217c6c) @@ -100,9 +100,6 @@ /** * Count how many last finished attempts selected specified option. - * - * @param optionUid - * @return */ - int countAttemptsPerOption(Long optionUid); + int countAttemptsPerOption(Long toolContentId, Long optionUid); } \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java =================================================================== diff -u -r122ff0d8419be3fac72ddb842cbbce1cea01e542 -r419201d3ad6fa99804284edd03c21d0065217c6c --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java (.../AssessmentResultDAOHibernate.java) (revision 122ff0d8419be3fac72ddb842cbbce1cea01e542) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java (.../AssessmentResultDAOHibernate.java) (revision 419201d3ad6fa99804284edd03c21d0065217c6c) @@ -299,20 +299,18 @@ } @Override - public int countAttemptsPerOption(Long optionUid) { + public int countAttemptsPerOption(Long toolContentId, Long optionUid) { String COUNT_ATTEMPTS_BY_OPTION_UID = "SELECT count(*) " + "FROM tl_laasse10_assessment_result AS result " + + "JOIN tl_laasse10_assessment AS assessment ON result.assessment_uid = assessment.uid " + "JOIN tl_laasse10_question_result AS questionResult ON result.uid = questionResult.result_uid " + "JOIN tl_laasse10_option_answer AS optionAnswer ON questionResult.uid = optionAnswer.question_result_uid AND optionAnswer.answer_boolean=1 AND optionAnswer.question_option_uid = :optionUid " - + "WHERE (result.finish_date IS NOT NULL) AND result.latest=1"; + + "WHERE (result.finish_date IS NOT NULL) AND result.latest=1 && assessment.content_id = :toolContentId"; - NativeQuery query = getSession().createNativeQuery(COUNT_ATTEMPTS_BY_OPTION_UID); + NativeQuery query = getSession().createNativeQuery(COUNT_ATTEMPTS_BY_OPTION_UID); + query.setParameter("toolContentId", toolContentId); query.setParameter("optionUid", optionUid); - List list = query.list(); - if (list == null || list.size() == 0) { - return 0; - } - return ((Number) list.get(0)).intValue(); + return query.uniqueResult().intValue(); } private List convertResultsToAssessmentUserDTOList(List list) { Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r3568cf56d0f6e3a700a6946f793b8490cbc98371 -r419201d3ad6fa99804284edd03c21d0065217c6c --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 3568cf56d0f6e3a700a6946f793b8490cbc98371) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 419201d3ad6fa99804284edd03c21d0065217c6c) @@ -1046,8 +1046,8 @@ } @Override - public int countAttemptsPerOption(Long optionUid) { - return assessmentResultDao.countAttemptsPerOption(optionUid); + public int countAttemptsPerOption(Long toolContentId, Long optionUid) { + return assessmentResultDao.countAttemptsPerOption(toolContentId, optionUid); } @Override Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java =================================================================== diff -u -re8a7110708b15579af2c6b31ac52a6da427fef6d -r419201d3ad6fa99804284edd03c21d0065217c6c --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision e8a7110708b15579af2c6b31ac52a6da427fef6d) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 419201d3ad6fa99804284edd03c21d0065217c6c) @@ -328,7 +328,7 @@ /** * Count how many last finished attempts selected specified option. */ - int countAttemptsPerOption(Long optionUid); + int countAttemptsPerOption(Long toolContentId, Long optionUid); /** * Return the latest *finished* result (the same as the method above). But previously evicting it from the cache. It Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/TblMonitoringController.java =================================================================== diff -u -r218884f2db7184187d2c65f87284984991321ccd -r419201d3ad6fa99804284edd03c21d0065217c6c --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/TblMonitoringController.java (.../TblMonitoringController.java) (revision 218884f2db7184187d2c65f87284984991321ccd) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/TblMonitoringController.java (.../TblMonitoringController.java) (revision 419201d3ad6fa99804284edd03c21d0065217c6c) @@ -103,7 +103,7 @@ // build candidate dtos for (OptionDTO optionDto : questionDto.getOptionDtos()) { - int optionAttemptCount = assessmentService.countAttemptsPerOption(optionDto.getUid()); + int optionAttemptCount = assessmentService.countAttemptsPerOption(toolContentId, optionDto.getUid()); float percentage = (float) (optionAttemptCount * 100) / totalNumberOfUsers; optionDto.setPercentage(percentage);