Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java,v diff -u -r1.6.8.6 -r1.6.8.7 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java 11 May 2016 07:15:06 -0000 1.6.8.6 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java 15 Jun 2016 08:01:14 -0000 1.6.8.7 @@ -25,6 +25,7 @@ import java.util.List; +import org.lamsfoundation.lams.tool.assessment.dto.AssessmentUserDTO; import org.lamsfoundation.lams.tool.assessment.model.AssessmentResult; public interface AssessmentResultDAO extends DAO { @@ -41,11 +42,19 @@ Float getLastTotalScoreByUser(Long assessmentUid, Long userId); + List getLastTotalScoresByContentId(Long assessmentUid); + Float getBestTotalScoreByUser(Long sessionId, Long userId); + + List getBestTotalScoresByContentId(Long assessmentUid); Float getFirstTotalScoreByUser(Long sessionId, Long userId); + + List getFirstTotalScoresByContentId(Long assessmentUid); Float getAvergeTotalScoreByUser(Long sessionId, Long userId); + + List getAverageTotalScoresByContentId(Long assessmentUid); Integer getLastFinishedAssessmentResultTimeTaken(Long assessmentUid, Long userId); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java,v diff -u -r1.9.2.12 -r1.9.2.13 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java 11 May 2016 07:15:07 -0000 1.9.2.12 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java 15 Jun 2016 08:01:14 -0000 1.9.2.13 @@ -20,14 +20,15 @@ * **************************************************************** */ - package org.lamsfoundation.lams.tool.assessment.dao.hibernate; +import java.util.ArrayList; import java.util.List; import org.hibernate.Query; import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; import org.lamsfoundation.lams.tool.assessment.dao.AssessmentResultDAO; +import org.lamsfoundation.lams.tool.assessment.dto.AssessmentUserDTO; import org.lamsfoundation.lams.tool.assessment.model.AssessmentResult; import org.springframework.stereotype.Repository; @@ -59,22 +60,33 @@ + AssessmentResult.class.getName() + " AS r WHERE r.user.userId=? AND r.assessment.uid=? AND (r.finishDate != null)"; - private static final String FIND_LAST_ASSESSMENT_RESULT_GRADE = "select r.grade FROM " - + AssessmentResult.class.getName() + private static final String LAST_ASSESSMENT_RESULT_GRADE = "select r.grade FROM " + AssessmentResult.class.getName() + " AS r WHERE r.user.userId=? AND r.assessment.uid=? AND (r.finishDate != null) AND r.latest=1"; + private static final String LAST_ASSESSMENT_RESULT_GRADES_BY_CONTENT_ID = "select r.user.userId, r.grade FROM " + + AssessmentResult.class.getName() + + " AS r WHERE r.assessment.contentId=? AND (r.finishDate != null) AND r.latest=1"; + private static final String BEST_SCORE_BY_SESSION_AND_USER = "SELECT MAX(r.grade) FROM " + AssessmentResult.class.getName() - + " AS r WHERE r.user.userId = ? AND r.sessionId=? AND (r.finishDate != null) ORDER BY r.startDate ASC"; + + " AS r WHERE r.user.userId = ? AND r.sessionId=? AND (r.finishDate != null)"; + private static final String BEST_SCORES_BY_CONTENT_ID = "SELECT r.user.userId, MAX(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 FIRST_SCORE_BY_SESSION_AND_USER = "SELECT r.grade FROM " + AssessmentResult.class.getName() + " AS r WHERE r.user.userId = ? AND r.sessionId=? AND (r.finishDate != null) ORDER BY r.startDate ASC"; private static final String AVERAGE_SCORE_BY_SESSION_AND_USER = "SELECT AVG(r.grade) FROM " + AssessmentResult.class.getName() - + " AS r WHERE r.user.userId = ? AND r.sessionId=? AND (r.finishDate != null) ORDER BY r.startDate ASC"; + + " AS r WHERE r.user.userId = ? AND r.sessionId=? AND (r.finishDate != null)"; + 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 FIND_LAST_ASSESSMENT_RESULT_TIME_TAKEN = "select UNIX_TIMESTAMP(r.finishDate) - UNIX_TIMESTAMP(r.startDate) FROM " + AssessmentResult.class.getName() + " AS r WHERE r.user.userId=? AND r.assessment.uid=? AND (r.finishDate != null) AND r.latest=1"; @@ -84,25 +96,24 @@ @Override @SuppressWarnings("unchecked") public List getAssessmentResults(Long assessmentUid, Long userId) { - return (List) doFind(AssessmentResultDAOHibernate.FIND_BY_ASSESSMENT_AND_USER_AND_FINISHED, + return (List) doFind(FIND_BY_ASSESSMENT_AND_USER_AND_FINISHED, new Object[] { userId, assessmentUid }); } @Override public List getFinishedAssessmentResultsByUser(Long sessionId, Long userId) { - return (List) doFind(AssessmentResultDAOHibernate.FIND_BY_SESSION_AND_USER_AND_FINISHED, + return (List) doFind(FIND_BY_SESSION_AND_USER_AND_FINISHED, new Object[] { userId, sessionId }); } @Override public List getAssessmentResultsBySession(Long sessionId, Long userId) { - return (List) doFind(AssessmentResultDAOHibernate.FIND_BY_SESSION_AND_USER, - new Object[] { userId, sessionId }); + return (List) doFind(FIND_BY_SESSION_AND_USER, new Object[] { userId, sessionId }); } @Override public AssessmentResult getLastAssessmentResult(Long assessmentUid, Long userId) { - Query q = getSession().createQuery(AssessmentResultDAOHibernate.FIND_LAST_BY_ASSESSMENT_AND_USER); + Query q = getSession().createQuery(FIND_LAST_BY_ASSESSMENT_AND_USER); q.setParameter(0, userId); q.setParameter(1, assessmentUid); return (AssessmentResult) q.uniqueResult(); @@ -111,7 +122,7 @@ @Override public AssessmentResult getLastFinishedAssessmentResult(Long assessmentUid, Long userId) { - Query q = getSession().createQuery(AssessmentResultDAOHibernate.FIND_LAST_FINISHED_BY_ASSESSMENT_AND_USER); + Query q = getSession().createQuery(FIND_LAST_FINISHED_BY_ASSESSMENT_AND_USER); q.setParameter(0, userId); q.setParameter(1, assessmentUid); return (AssessmentResult) q.uniqueResult(); @@ -120,39 +131,69 @@ @Override public Float getLastTotalScoreByUser(Long assessmentUid, Long userId) { - Query q = getSession().createQuery(AssessmentResultDAOHibernate.FIND_LAST_ASSESSMENT_RESULT_GRADE); + Query q = getSession().createQuery(LAST_ASSESSMENT_RESULT_GRADE); q.setParameter(0, userId); q.setParameter(1, assessmentUid); return ((Float) q.uniqueResult()); } @Override + public List getLastTotalScoresByContentId(Long toolContentId) { + List list = (List) doFind(LAST_ASSESSMENT_RESULT_GRADES_BY_CONTENT_ID, + new Object[] { toolContentId }); + return convertResultsToAssessmentUserDTOList(list); + } + + @Override public Float getBestTotalScoreByUser(Long sessionId, Long userId) { - Query q = getSession().createQuery(AssessmentResultDAOHibernate.BEST_SCORE_BY_SESSION_AND_USER); + Query q = getSession().createQuery(BEST_SCORE_BY_SESSION_AND_USER); q.setParameter(0, userId); q.setParameter(1, sessionId); return ((Float) q.uniqueResult()); } @Override + public List getBestTotalScoresByContentId(Long toolContentId) { + List list = (List) doFind(BEST_SCORES_BY_CONTENT_ID, new Object[] { toolContentId }); + return convertResultsToAssessmentUserDTOList(list); + } + + @Override public Float getFirstTotalScoreByUser(Long sessionId, Long userId) { - Query q = getSession().createQuery(AssessmentResultDAOHibernate.FIRST_SCORE_BY_SESSION_AND_USER); + Query q = getSession().createQuery(FIRST_SCORE_BY_SESSION_AND_USER); q.setParameter(0, userId); q.setParameter(1, sessionId); q.setMaxResults(1); return ((Float) q.uniqueResult()); } @Override + public List getFirstTotalScoresByContentId(Long toolContentId) { + final String FIRST_SCORES_BY_CONTENT_ID = "SELECT res.user.userId, res.grade FROM " + AssessmentResult.class.getName() + + " AS res WHERE res.startDate = ( SELECT MIN(resMax.startDate) FROM " + + AssessmentResult.class.getName() + + " AS resMax WHERE resMax.user.userId = res.user.userId AND resMax.assessment.contentId=? AND (resMax.finishDate != null) )"; + + List list = (List) doFind(FIRST_SCORES_BY_CONTENT_ID, new Object[] { toolContentId }); + return convertResultsToAssessmentUserDTOList(list); + } + + @Override public Float getAvergeTotalScoreByUser(Long sessionId, Long userId) { - Query q = getSession().createQuery(AssessmentResultDAOHibernate.AVERAGE_SCORE_BY_SESSION_AND_USER); + Query q = getSession().createQuery(AVERAGE_SCORE_BY_SESSION_AND_USER); q.setParameter(0, userId); q.setParameter(1, sessionId); Object result = q.uniqueResult(); return result == null ? null : ((Double) result).floatValue(); } @Override + public List getAverageTotalScoresByContentId(Long toolContentId) { + List list = (List) doFind(AVERAGE_SCORES_BY_CONTENT_ID, new Object[] { toolContentId }); + return convertResultsToAssessmentUserDTOList(list); + } + + @Override public Integer getLastFinishedAssessmentResultTimeTaken(Long assessmentUid, Long userId) { List list = doFind(FIND_LAST_ASSESSMENT_RESULT_TIME_TAKEN, new Object[] { userId, assessmentUid }); @@ -165,22 +206,20 @@ @Override public AssessmentResult getLastFinishedAssessmentResultByUser(Long sessionId, Long userId) { - Query q = getSession().createQuery(AssessmentResultDAOHibernate.FIND_LAST_FINISHED_BY_SESSION_AND_USER); + Query q = getSession().createQuery(FIND_LAST_FINISHED_BY_SESSION_AND_USER); q.setParameter(0, userId); q.setParameter(1, sessionId); return (AssessmentResult) q.uniqueResult(); } @Override public List getLastFinishedAssessmentResults(Long contentId) { - return (List) doFind(AssessmentResultDAOHibernate.FIND_LAST_FINISHED_RESULTS_BY_CONTENT_ID, - new Object[] { contentId }); + return (List) doFind(FIND_LAST_FINISHED_RESULTS_BY_CONTENT_ID, new Object[] { contentId }); } @Override public int getAssessmentResultCount(Long assessmentUid, Long userId) { - List list = doFind(AssessmentResultDAOHibernate.FIND_ASSESSMENT_RESULT_COUNT_BY_ASSESSMENT_AND_USER, - new Object[] { userId, assessmentUid }); + List list = doFind(FIND_ASSESSMENT_RESULT_COUNT_BY_ASSESSMENT_AND_USER, new Object[] { userId, assessmentUid }); if ((list == null) || (list.size() == 0)) { return 0; } else { @@ -190,11 +229,35 @@ @Override public AssessmentResult getAssessmentResultByUid(Long assessmentResultUid) { - List list = doFind(AssessmentResultDAOHibernate.FIND_BY_UID, new Object[] { assessmentResultUid }); + List list = doFind(FIND_BY_UID, new Object[] { assessmentResultUid }); if ((list == null) || (list.size() == 0)) { return null; } return (AssessmentResult) list.get(0); } + private List convertResultsToAssessmentUserDTOList(List list) { + + List lastTotalScores = new ArrayList(); + if (list != null && list.size() > 0) { + for (Object[] element : list) { + + Long userId = ((Number) element[0]).longValue(); + float grade; + try { + grade = ((Double) element[1]).floatValue(); + } catch (ClassCastException e) { + grade = (Float) element[1]; + } + + AssessmentUserDTO userDto = new AssessmentUserDTO(); + userDto.setUserId(userId); + userDto.setGrade(grade); + lastTotalScores.add(userDto); + } + + } + + return lastTotalScores; + } } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentOutputFactory.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentOutputFactory.java,v diff -u -r1.8.2.5 -r1.8.2.6 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentOutputFactory.java 11 May 2016 07:15:07 -0000 1.8.2.5 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentOutputFactory.java 15 Jun 2016 08:01:14 -0000 1.8.2.6 @@ -23,6 +23,7 @@ package org.lamsfoundation.lams.tool.assessment.service; +import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.SortedMap; @@ -33,6 +34,7 @@ import org.lamsfoundation.lams.tool.ToolOutput; import org.lamsfoundation.lams.tool.ToolOutputDefinition; import org.lamsfoundation.lams.tool.assessment.AssessmentConstants; +import org.lamsfoundation.lams.tool.assessment.dto.AssessmentUserDTO; import org.lamsfoundation.lams.tool.assessment.model.Assessment; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestion; import org.lamsfoundation.lams.tool.assessment.model.AssessmentSession; @@ -162,16 +164,22 @@ if (name.equals(AssessmentConstants.OUTPUT_NAME_LEARNER_TOTAL_SCORE)) { return getLastTotalScore(assessmentService, learnerId, assessment); + } else if (name.equals(AssessmentConstants.OUTPUT_NAME_BEST_SCORE)) { return getBestTotalScore(assessmentService, toolSessionId, learnerId); + } else if (name.equals(AssessmentConstants.OUTPUT_NAME_FIRST_SCORE)) { return getFirstTotalScore(assessmentService, toolSessionId, learnerId); + } else if (name.equals(AssessmentConstants.OUTPUT_NAME_AVERAGE_SCORE)) { return getAverageTotalScore(assessmentService, toolSessionId, learnerId); + } else if (name.equals(AssessmentConstants.OUTPUT_NAME_LEARNER_TIME_TAKEN)) { return getTimeTaken(assessmentService, learnerId, assessment); + } else if (name.equals(AssessmentConstants.OUTPUT_NAME_LEARNER_NUMBER_ATTEMPTS)) { return getNumberAttempts(assessmentService, learnerId, assessment); + } else { Set questions = assessment.getQuestions(); for (AssessmentQuestion question : questions) { @@ -184,8 +192,66 @@ } return null; } + + public List getToolOutputs(String name, IAssessmentService assessmentService, Long toolContentId) { + if ((name != null) && (toolContentId != null)) { + if (name.equals(AssessmentConstants.OUTPUT_NAME_LEARNER_TOTAL_SCORE)) { + List results = assessmentService.getLastTotalScoresByContentId(toolContentId); + return convertToToolOutputs(results); + + } else if (name.equals(AssessmentConstants.OUTPUT_NAME_BEST_SCORE)) { + List results = assessmentService.getBestTotalScoresByContentId(toolContentId); + return convertToToolOutputs(results); + + } else if (name.equals(AssessmentConstants.OUTPUT_NAME_FIRST_SCORE)) { + List results = assessmentService.getFirstTotalScoresByContentId(toolContentId); + return convertToToolOutputs(results); + + } else if (name.equals(AssessmentConstants.OUTPUT_NAME_AVERAGE_SCORE)) { + List results = assessmentService.getAverageTotalScoresByContentId(toolContentId); + return convertToToolOutputs(results); + + } else if (name.equals(AssessmentConstants.OUTPUT_NAME_LEARNER_TIME_TAKEN)) { + return null; + + } else if (name.equals(AssessmentConstants.OUTPUT_NAME_LEARNER_NUMBER_ATTEMPTS)) { + return null; + + } else { + Assessment assessment = assessmentService.getAssessmentByContentId(toolContentId); + Set questions = assessment.getQuestions(); + for (AssessmentQuestion question : questions) { + if (name.equals(String.valueOf(question.getSequenceId()))) { + return null; + } + } + } + } + return null; + } + /** + * Simply converts List to List. + * + * @param results + * @return + */ + private List convertToToolOutputs(List results) { + List toolOutputs = new ArrayList(); + for (AssessmentUserDTO result : results) { + float totalScore = result.getGrade(); + + ToolOutput toolOutput = new ToolOutput(AssessmentConstants.OUTPUT_NAME_LEARNER_TOTAL_SCORE, + getI18NText(AssessmentConstants.OUTPUT_NAME_LEARNER_TOTAL_SCORE, true), totalScore); + toolOutput.setUserId(result.getUserId().intValue()); + toolOutputs.add(toolOutput); + } + + return toolOutputs; + } + + /** * Get total score for a user. Will always return a ToolOutput object. */ private ToolOutput getLastTotalScore(IAssessmentService assessmentService, Long learnerId, Assessment assessment) { Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java,v diff -u -r1.48.2.28 -r1.48.2.29 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java 11 May 2016 07:15:07 -0000 1.48.2.28 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java 15 Jun 2016 08:01:14 -0000 1.48.2.29 @@ -740,19 +740,39 @@ } @Override + public List getLastTotalScoresByContentId(Long toolContentId) { + return assessmentResultDao.getLastTotalScoresByContentId(toolContentId); + } + + @Override public Float getBestTotalScoreByUser(Long sessionId, Long userId) { return assessmentResultDao.getBestTotalScoreByUser(sessionId, userId); } + + @Override + public List getBestTotalScoresByContentId(Long toolContentId) { + return assessmentResultDao.getBestTotalScoresByContentId(toolContentId); + } @Override public Float getFirstTotalScoreByUser(Long sessionId, Long userId) { return assessmentResultDao.getFirstTotalScoreByUser(sessionId, userId); } + + @Override + public List getFirstTotalScoresByContentId(Long toolContentId) { + return assessmentResultDao.getFirstTotalScoresByContentId(toolContentId); + } @Override public Float getAvergeTotalScoreByUser(Long sessionId, Long userId) { return assessmentResultDao.getAvergeTotalScoreByUser(sessionId, userId); } + + @Override + public List getAverageTotalScoresByContentId(Long toolContentId) { + return assessmentResultDao.getAverageTotalScoresByContentId(toolContentId); + } @Override public Integer getLastFinishedAssessmentResultTimeTaken(Long assessmentUid, Long userId) { @@ -2230,6 +2250,16 @@ public ToolOutput getToolOutput(String name, Long toolSessionId, Long learnerId) { return assessmentOutputFactory.getToolOutput(name, this, toolSessionId, learnerId); } + + /** + * Get the tool output for the given tool output name. + * + * @see org.lamsfoundation.lams.tool.ToolSessionManager#getToolOutput(java.lang.String, java.lang.Long) + */ + @Override + public List getToolOutputs(String name, Long toolContentId) { + return assessmentOutputFactory.getToolOutputs(name, this, toolContentId); + } @Override public void forceCompleteUser(Long toolSessionId, User user) { Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java,v diff -u -r1.26.2.9 -r1.26.2.10 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java 11 May 2016 07:15:07 -0000 1.26.2.9 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java 15 Jun 2016 08:01:14 -0000 1.26.2.10 @@ -228,6 +228,8 @@ */ Float getLastTotalScoreByUser(Long assessmentUid, Long userId); + List getLastTotalScoresByContentId(Long toolContentId); + /** * Return the best *finished* result grade. * @@ -236,6 +238,8 @@ * @return */ Float getBestTotalScoreByUser(Long sessionId, Long userId); + + List getBestTotalScoresByContentId(Long toolContentId); /** * Return the first *finished* result grade. @@ -245,6 +249,8 @@ * @return */ Float getFirstTotalScoreByUser(Long sessionId, Long userId); + + List getFirstTotalScoresByContentId(Long toolContentId); /** * Return the average score of all *finished* result scores. @@ -254,6 +260,8 @@ * @return */ Float getAvergeTotalScoreByUser(Long sessionId, Long userId); + + List getAverageTotalScoresByContentId(Long toolContentId); /** * Return the latest *finished* result grade. Index: lams_tool_assessment/web/pages/learning/learning.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/learning/learning.jsp,v diff -u -r1.37.2.9 -r1.37.2.10 --- lams_tool_assessment/web/pages/learning/learning.jsp 10 Mar 2016 04:44:17 -0000 1.37.2.9 +++ lams_tool_assessment/web/pages/learning/learning.jsp 15 Jun 2016 08:01:14 -0000 1.37.2.10 @@ -656,7 +656,7 @@ + styleClass="btn btn-default"> Index: lams_tool_assessment/web/pages/monitoring/statistic.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/monitoring/statistic.jsp,v diff -u -r1.5.2.3 -r1.5.2.4 --- lams_tool_assessment/web/pages/monitoring/statistic.jsp 1 Jun 2016 14:05:16 -0000 1.5.2.3 +++ lams_tool_assessment/web/pages/monitoring/statistic.jsp 15 Jun 2016 08:01:14 -0000 1.5.2.4 @@ -21,6 +21,9 @@ if (json.success == "true") { alert(""); } + }, + error: function (xhr, ajaxOptions, thrownError) { + alert(""); } }); }); Index: lams_tool_assessment/web/pages/monitoring/parts/questionsummary.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/monitoring/parts/questionsummary.jsp,v diff -u -r1.12.2.8 -r1.12.2.9 --- lams_tool_assessment/web/pages/monitoring/parts/questionsummary.jsp 1 Jun 2016 14:05:15 -0000 1.12.2.8 +++ lams_tool_assessment/web/pages/monitoring/parts/questionsummary.jsp 15 Jun 2016 08:01:14 -0000 1.12.2.9 @@ -197,7 +197,7 @@ - + Index: lams_tool_assessment/web/pages/monitoring/parts/usersummary.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/monitoring/parts/usersummary.jsp,v diff -u -r1.16.2.5 -r1.16.2.6 --- lams_tool_assessment/web/pages/monitoring/parts/usersummary.jsp 1 Jun 2016 14:05:15 -0000 1.16.2.5 +++ lams_tool_assessment/web/pages/monitoring/parts/usersummary.jsp 15 Jun 2016 08:01:14 -0000 1.16.2.6 @@ -221,7 +221,7 @@ - +