Index: lams_tool_assessment/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r2d20cd764b9f78cf3d349dc62735bcc86d356795 -r244acde13eb03456c3749cc549a1e6a756c93ca1 --- lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 2d20cd764b9f78cf3d349dc62735bcc86d356795) +++ lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 244acde13eb03456c3749cc549a1e6a756c93ca1) @@ -178,6 +178,7 @@ output.desc.learner.total.score =Last total score output.desc.learner.time.taken =Time taken output.desc.learner.number.of.attempts =Number of attempts +output.desc.learner.no.score = No score output.user.score.for.question =Score for the question: error.form.validation.error =You have 1 error in a form. It has been highlighted error.form.validation.errors =You have {0} errors in a form. They have been highlighted @@ -292,6 +293,7 @@ label.tool.output.has.been.changed =Tool Output has been changed output.desc.first.score =First score output.desc.average.score =Average score +output.desc.no.score =No score label.waiting.for.leader.launch.time.limit =Leader has not started the activity. Please wait until he/she commences it. label.waiting.for.leader.finish =Time limit set by teacher is over. Please wait until a group leader submits all answers. warn.mark.hedging.wrong.justification =Justification cannot be left blank Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java =================================================================== diff -u -r373dcc4ea6d1a07c60268ceccd9d1e69d9c35f9c -r244acde13eb03456c3749cc549a1e6a756c93ca1 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision 373dcc4ea6d1a07c60268ceccd9d1e69d9c35f9c) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision 244acde13eb03456c3749cc549a1e6a756c93ca1) @@ -253,11 +253,12 @@ public static final String OUTPUT_NAME_LEARNER_TOTAL_SCORE = "learner.total.score"; public static final String OUTPUT_NAME_LEARNER_TIME_TAKEN = "learner.time.taken"; public static final String OUTPUT_NAME_LEARNER_NUMBER_ATTEMPTS = "learner.number.of.attempts"; - + public static final String OUTPUT_NAME_NO_SCORE = "learner.no.score"; + public static final String OUTPUT_NAME_BEST_SCORE = "best.score"; public static final String OUTPUT_NAME_FIRST_SCORE = "first.score"; public static final String OUTPUT_NAME_AVERAGE_SCORE = "average.score"; - + public static final String OUTPUT_NAME_BLANK = "no.score"; // error message keys public static final String ERROR_MSG_QUESTION_NAME_BLANK = "error.question.name.blank"; Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java =================================================================== diff -u -rc2585242b3a8ef9215af42e9644c15992cc6355b -r244acde13eb03456c3749cc549a1e6a756c93ca1 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java (.../AssessmentResultDAO.java) (revision c2585242b3a8ef9215af42e9644c15992cc6355b) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java (.../AssessmentResultDAO.java) (revision 244acde13eb03456c3749cc549a1e6a756c93ca1) @@ -52,6 +52,10 @@ Float getLastTotalScoreByUser(Long assessmentUid, Long userId); List getLastTotalScoresByContentId(Long assessmentUid); + + Float getNoScoreByUser(Long sessionId, Long userId); + + List getNoScoresByContentId(Long assessmentUid); Float getBestTotalScoreByUser(Long sessionId, Long userId); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java =================================================================== diff -u -rc2585242b3a8ef9215af42e9644c15992cc6355b -r244acde13eb03456c3749cc549a1e6a756c93ca1 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java (.../AssessmentResultDAOHibernate.java) (revision c2585242b3a8ef9215af42e9644c15992cc6355b) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java (.../AssessmentResultDAOHibernate.java) (revision 244acde13eb03456c3749cc549a1e6a756c93ca1) @@ -93,6 +93,14 @@ private static final String AVERAGE_SCORES_BY_CONTENT_ID = "SELECT r.user.userId, AVG(r.grade) FROM " + AssessmentResult.class.getName() + " AS r WHERE r.assessment.contentId=? AND (r.finishDate != null) GROUP BY r.user.userId"; + + private static final String NO_SCORE_BY_SESSION_AND_USER = "SELECT '-' FROM " + + AssessmentResult.class.getName() + + " AS r WHERE r.user.userId = ? AND r.sessionId=? AND (r.finishDate != null) AND r.latest=1"; + + private static final String NO_SCORES_BY_CONTENT_ID = "SELECT r.user.userId, '-' FROM " + + AssessmentResult.class.getName() + + " AS r WHERE r.assessment.contentId=? AND (r.finishDate != null) GROUP BY r.user.userId"; private static final String FIND_LAST_ASSESSMENT_RESULT_TIME_TAKEN = "select UNIX_TIMESTAMP(r.finishDate) - UNIX_TIMESTAMP(r.startDate) FROM " + AssessmentResult.class.getName() @@ -170,8 +178,24 @@ q.setParameter(1, sessionId); return ((Float) q.uniqueResult()); } + + @Override + public Float getNoScoreByUser(Long sessionId, Long userId){ + Query q = getSession().createQuery(NO_SCORE_BY_SESSION_AND_USER); + q.setParameter(0, userId); + q.setParameter(1, sessionId); + Object result = q.uniqueResult(); + return result == null ? null : 0f; + } + @Override + public List getNoScoresByContentId(Long toolContentId) { + List list = (List) doFind(NO_SCORES_BY_CONTENT_ID, new Object[] { toolContentId }); + return convertBlankResultsToAssessmentUserDTOList(list); + } + + @Override public List getBestTotalScoresByContentId(Long toolContentId) { List list = (List) doFind(BEST_SCORES_BY_CONTENT_ID, new Object[] { toolContentId }); return convertResultsToAssessmentUserDTOList(list); @@ -316,4 +340,22 @@ return lastTotalScores; } + + // LDEV_NTU-12 Need to be able to change tool output to blank + private List convertBlankResultsToAssessmentUserDTOList(List list) { + + List lastTotalScores = new ArrayList(); + if (list != null && list.size() > 0) { + for (Object[] element : list) { + + Long userId = ((Number) element[0]).longValue(); + AssessmentUserDTO userDto = new AssessmentUserDTO(); + userDto.setUserId(userId); + lastTotalScores.add(userDto); + } + + } + + return lastTotalScores; + } } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentOutputFactory.java =================================================================== diff -u -r5d1d1bc2d08ed13455ca34ceb5ab94e5f918855d -r244acde13eb03456c3749cc549a1e6a756c93ca1 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentOutputFactory.java (.../AssessmentOutputFactory.java) (revision 5d1d1bc2d08ed13455ca34ceb5ab94e5f918855d) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentOutputFactory.java (.../AssessmentOutputFactory.java) (revision 244acde13eb03456c3749cc549a1e6a756c93ca1) @@ -57,7 +57,9 @@ definition = buildRangeDefinition(AssessmentConstants.OUTPUT_NAME_LEARNER_TIME_TAKEN, new Long(0), null); definitionMap.put(AssessmentConstants.OUTPUT_NAME_LEARNER_TIME_TAKEN, definition); - + definition = buildRangeDefinition(AssessmentConstants.OUTPUT_NAME_NO_SCORE, new Long(0), null); + definitionMap.put(AssessmentConstants.OUTPUT_NAME_NO_SCORE, definition); + if (toolContentObject != null) { Assessment assessment = (Assessment) toolContentObject; Set questionReferences = new TreeSet(new SequencableComparator()); @@ -185,7 +187,9 @@ } else if (name.equals(AssessmentConstants.OUTPUT_NAME_LEARNER_NUMBER_ATTEMPTS)) { return getNumberAttempts(assessmentService, learnerId, assessment); - } else { + } else if (name.equals(AssessmentConstants.OUTPUT_NAME_NO_SCORE)) { + return getNoScore(assessmentService, toolSessionId, learnerId); + } else { Set questions = assessment.getQuestions(); for (AssessmentQuestion question : questions) { if (name.equals(String.valueOf(question.getSequenceId()))) { @@ -204,6 +208,10 @@ if (name.equals(AssessmentConstants.OUTPUT_NAME_LEARNER_TOTAL_SCORE)) { List results = assessmentService.getLastTotalScoresByContentId(toolContentId); return convertToToolOutputs(results); + + }else if (name.equals(AssessmentConstants.OUTPUT_NAME_BLANK)) { + List results = assessmentService.getNoScoresByContentId(toolContentId); + return convertToToolOutputs(results); } else if (name.equals(AssessmentConstants.OUTPUT_NAME_BEST_SCORE)) { List results = assessmentService.getBestTotalScoresByContentId(toolContentId); @@ -300,7 +308,20 @@ return new ToolOutput(AssessmentConstants.OUTPUT_NAME_AVERAGE_SCORE, getI18NText(AssessmentConstants.OUTPUT_NAME_AVERAGE_SCORE, true), averageTotalScoreFloat); } + + /** + * Get the average score for a user. Will always return a ToolOutput object. + * LDEV_NTU-12 Need to be able to change tool output to blank + * + */ + private ToolOutput getNoScore(IAssessmentService assessmentService, Long sessionId, Long userId) { + Float noScore = assessmentService.getNoScoreByUser(sessionId, userId); + float noScoreFloat = (noScore == null) ? 0 : noScore; + return new ToolOutput(AssessmentConstants.OUTPUT_NAME_BLANK, + getI18NText(AssessmentConstants.OUTPUT_NAME_BLANK, true), noScoreFloat); + } + /** * Get time taken for a specific user to accomplish this assessment. Will always return a ToolOutput object. */ Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -rc2585242b3a8ef9215af42e9644c15992cc6355b -r244acde13eb03456c3749cc549a1e6a756c93ca1 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision c2585242b3a8ef9215af42e9644c15992cc6355b) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 244acde13eb03456c3749cc549a1e6a756c93ca1) @@ -900,6 +900,16 @@ public List getLastTotalScoresByContentId(Long toolContentId) { return assessmentResultDao.getLastTotalScoresByContentId(toolContentId); } + + @Override + public Float getNoScoreByUser(Long sessionId, Long userId) { + return assessmentResultDao.getNoScoreByUser(sessionId, userId); + } + + @Override + public List getNoScoresByContentId(Long toolContentId) { + return assessmentResultDao.getNoScoresByContentId(toolContentId); + } @Override public Float getBestTotalScoreByUser(Long sessionId, Long userId) { Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java =================================================================== diff -u -rc2585242b3a8ef9215af42e9644c15992cc6355b -r244acde13eb03456c3749cc549a1e6a756c93ca1 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision c2585242b3a8ef9215af42e9644c15992cc6355b) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 244acde13eb03456c3749cc549a1e6a756c93ca1) @@ -286,7 +286,18 @@ Float getLastTotalScoreByUser(Long assessmentUid, Long userId); List getLastTotalScoresByContentId(Long toolContentId); + + /** + * Return the best *finished* result grade. + * + * @param sessionId + * @param userId + * @return + */ + Float getNoScoreByUser(Long sessionId, Long userId); + List getNoScoresByContentId(Long toolContentId); + /** * Return the best *finished* result grade. * Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/MonitoringAction.java =================================================================== diff -u -r06ca6dbd77e91c4298f60ca2597ceff1bf8d64f5 -r244acde13eb03456c3749cc549a1e6a756c93ca1 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 06ca6dbd77e91c4298f60ca2597ceff1bf8d64f5) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 244acde13eb03456c3749cc549a1e6a756c93ca1) @@ -185,6 +185,7 @@ //prepare toolOutputDefinitions and activityEvaluation List toolOutputDefinitions = new ArrayList(); + toolOutputDefinitions.add(AssessmentConstants.OUTPUT_NAME_BLANK); toolOutputDefinitions.add(AssessmentConstants.OUTPUT_NAME_LEARNER_TOTAL_SCORE); toolOutputDefinitions.add(AssessmentConstants.OUTPUT_NAME_BEST_SCORE); toolOutputDefinitions.add(AssessmentConstants.OUTPUT_NAME_FIRST_SCORE);