Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java =================================================================== diff -u -r6f1188b57dfc1cd53bfbeb95fcdb295f1d2bf2e6 -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java (.../McAppConstants.java) (revision 6f1188b57dfc1cd53bfbeb95fcdb295f1d2bf2e6) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java (.../McAppConstants.java) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -103,8 +103,8 @@ public static final String VIEW_SUMMARY ="viewSummary"; public static final String REDO_QUESTIONS ="redoQuestions"; public static final String SINGLE_QUESTION_ANSWERS ="singleQuestionAnswers"; + public static final String RESULTS_SUMMARY ="resultsSummary"; - public static final String ALL_INSTRUCTIONS ="allInstructions"; public static final String EDIT_OPTS_CONTENT ="editOptsContent"; public static final String ADD_OPTS_CONTENT ="addOptsContent"; @@ -229,6 +229,11 @@ public static final String LIST_UPLOADED_ONLINE_FILES_NAME ="listUploadedOnlineFilesName"; public static final String POPULATED_UPLOADED_FILESDATA ="populateUploadedFilesData"; + public static final String COUNT_SESSION_COMPLETE ="countSessionComplete"; + public static final String TOP_MARK ="topMark"; + public static final String LOWEST_MARK ="lowestMark"; + public static final String AVERAGE_MARK ="averageMark"; + /* * the author's current content id Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McResources.properties =================================================================== diff -u -rec8e0309c7c7f6c561c9bd049037d4d7c2d7a7ce -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McResources.properties (.../McResources.properties) (revision ec8e0309c7c7f6c561c9bd049037d4d7c2d7a7ce) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McResources.properties (.../McResources.properties) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -21,6 +21,12 @@ label.individual.results.withRetries =Results for Multiple Choice with Retries label.individual.results.withoutRetries =Results for Multiple Choice without Retries label.viewAnswers =Previous Answers +label.withRetries.results.summary =Multiple Choice with Retries Summary +label.withoutRetries.results.summary =Multiple Choice without Retries Summary +label.learnersFinished =learners have finished. Minimum passmark is +label.topMark =Top Mark: +label.avMark =Average Mark: +label.loMark =Lowest Mark: label.mark =Mark: label.you.answered =You answered: Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcSessionDAO.java =================================================================== diff -u -r25a3cd766f44f20c25042ad630f87b5b79a53671 -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcSessionDAO.java (.../IMcSessionDAO.java) (revision 25a3cd766f44f20c25042ad630f87b5b79a53671) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcSessionDAO.java (.../IMcSessionDAO.java) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -27,6 +27,7 @@ import org.lamsfoundation.lams.tool.mc.McContent; import org.lamsfoundation.lams.tool.mc.McQueUsr; import org.lamsfoundation.lams.tool.mc.McSession; +import org.springframework.orm.hibernate3.HibernateTemplate; /** @@ -114,4 +115,9 @@ * @return a list of tool session Ids */ public List getSessionsFromContent(McContent mcContent); + + + public int countSessionComplete(); + + public int countSessionIncomplete(); } \ No newline at end of file Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java =================================================================== diff -u -r43b99721a0fa18b4ee65f3e94caf81cc7782ce87 -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java (.../IMcUsrAttemptDAO.java) (revision 43b99721a0fa18b4ee65f3e94caf81cc7782ce87) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java (.../IMcUsrAttemptDAO.java) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -118,6 +118,13 @@ * @return */ public List getAttemptByAttemptOrder(final Long queUsrId, final Long mcQueContentId, final Integer attemptOrder); + + /** + * *

returns a list of marks + * + * @return + */ + public List getMarks(); } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McSessionDAO.java =================================================================== diff -u -rd6cf8ad18993af7a9d51820aa2cd2274d1560ac7 -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McSessionDAO.java (.../McSessionDAO.java) (revision d6cf8ad18993af7a9d51820aa2cd2274d1560ac7) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McSessionDAO.java (.../McSessionDAO.java) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -47,8 +47,12 @@ private static final String LOAD_MCSESSION_BY_USER = "select ms from McSession ms left join fetch " + "ms.mcQueUsers user where user.queUsrId=:userId"; - private static final String GET_SESSIONS_FROM_CONTENT = "select ms.mcSessionId from McSession ms where ms.mcContent= :mcContent"; + private static final String GET_SESSIONS_FROM_CONTENT = "select ms.mcSessionId from McSession ms where ms.mcContent=:mcContent"; + private static final String COUNT_SESSION_COMPLETE = "from mcSession in class McSession where mcSession.sessionStatus='COMPLETE'"; + + private static final String COUNT_SESSION_INCOMPLETE = "from mcSession in class McSession where mcSession.sessionStatus='INCOMPLETE'"; + public McSession getMcSessionByUID(Long uid) { return (McSession) this.getHibernateTemplate() @@ -71,7 +75,31 @@ return null; } + public int countSessionComplete() + { + HibernateTemplate templ = this.getHibernateTemplate(); + List list = getSession().createQuery(COUNT_SESSION_COMPLETE) + .list(); + + if(list != null && list.size() > 0){ + return list.size(); + } + else return 0; + } + + public int countSessionIncomplete() + { + HibernateTemplate templ = this.getHibernateTemplate(); + List list = getSession().createQuery(COUNT_SESSION_INCOMPLETE) + .list(); + + if(list != null && list.size() > 0){ + return list.size(); + } + else return 0; + } + public void saveMcSession(McSession mcSession) { this.getHibernateTemplate().save(mcSession); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java =================================================================== diff -u -r43b99721a0fa18b4ee65f3e94caf81cc7782ce87 -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java (.../McUsrAttemptDAO.java) (revision 43b99721a0fa18b4ee65f3e94caf81cc7782ce87) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java (.../McUsrAttemptDAO.java) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -46,6 +46,8 @@ private static final String LOAD_ATTEMPT_BY_ATTEMPT_ORDER = "from mcUsrAttempt in class McUsrAttempt where mcUsrAttempt.queUsrId=:queUsrId and mcUsrAttempt.mcQueContentId=:mcQueContentId and attemptOrder=:attemptOrder"; + private static final String LOAD_MARK = "from mcUsrAttempt in class McUsrAttempt"; + public McUsrAttempt getMcUserAttemptByUID(Long uid) { return (McUsrAttempt) this.getHibernateTemplate() @@ -67,6 +69,17 @@ return list; } + + public List getMarks() + { + HibernateTemplate templ = this.getHibernateTemplate(); + List list = getSession().createQuery(LOAD_MARK) + .list(); + + return list; + } + + public List getHighestAttemptOrder(Long queUsrId) { HibernateTemplate templ = this.getHibernateTemplate(); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java =================================================================== diff -u -r43b99721a0fa18b4ee65f3e94caf81cc7782ce87 -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java (.../IMcService.java) (revision 43b99721a0fa18b4ee65f3e94caf81cc7782ce87) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java (.../IMcService.java) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -209,5 +209,11 @@ public List getAttemptForQueContent(final Long queUsrId, final Long mcQueContentId) throws McApplicationException; public List getAttemptByAttemptOrder(final Long queUsrId, final Long mcQueContentId, final Integer attemptOrder) throws McApplicationException; + + public List getMarks() throws McApplicationException; + + public int countSessionComplete() throws McApplicationException; + + public int countSessionIncomplete() throws McApplicationException; } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java =================================================================== diff -u -r43b99721a0fa18b4ee65f3e94caf81cc7782ce87 -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision 43b99721a0fa18b4ee65f3e94caf81cc7782ce87) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -590,6 +590,32 @@ } } + public int countSessionComplete() throws McApplicationException + { + try + { + return mcSessionDAO.countSessionComplete(); + } + catch(DataAccessException e) + { + throw new McApplicationException("Exception occured when lams is counting incomplete sessions" + + e.getMessage(),e); + } + } + + public int countSessionIncomplete() throws McApplicationException + { + try + { + return mcSessionDAO.countSessionIncomplete(); + } + catch(DataAccessException e) + { + throw new McApplicationException("Exception occured when lams is counting incomplete sessions" + + e.getMessage(),e); + } + } + public void deleteMcSession(McSession mcSession) throws McApplicationException { try @@ -620,6 +646,19 @@ } + public List getMarks() throws McApplicationException + { + try + { + return mcUsrAttemptDAO.getMarks(); + } + catch(DataAccessException e) + { + throw new McApplicationException("Exception occured when lams is getting marks " + + e.getMessage(),e); + } + } + public void deleteMcQueUsr(McQueUsr mcQueUsr) throws McApplicationException { try @@ -633,7 +672,8 @@ + e.getMessage(),e); } } - + + public void saveMcContent(McContent mc) throws McApplicationException { try Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java =================================================================== diff -u -r6f1188b57dfc1cd53bfbeb95fcdb295f1d2bf2e6 -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java (.../LearningUtil.java) (revision 6f1188b57dfc1cd53bfbeb95fcdb295f1d2bf2e6) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java (.../LearningUtil.java) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -322,6 +322,14 @@ } + /** + * returns the highest mark a learner has achieved + * getHighestMark(HttpServletRequest request, Long queUsrId) + * + * @param request + * @param queUsrId + * @return + */ public static int getHighestMark(HttpServletRequest request, Long queUsrId) { IMcService mcService =McUtils.getToolService(request); @@ -339,7 +347,86 @@ return highestMark; } + /** + * return the top mark for all learners + * getTopMark(HttpServletRequest request) + * + * @param request + * @return + */ + public static int getTopMark(HttpServletRequest request) + { + IMcService mcService =McUtils.getToolService(request); + List listMarks=mcService.getMarks(); + + Iterator itMarks=listMarks.iterator(); + int highestMark=0; + while (itMarks.hasNext()) + { + McUsrAttempt mcUsrAttempt=(McUsrAttempt)itMarks.next(); + int currentMark=mcUsrAttempt.getMark().intValue(); + if (currentMark > highestMark) + highestMark= currentMark; + } + return highestMark; + } + + /** + * return the lowest mark for all learners + * getTopMark(HttpServletRequest request) + * + * @param request + * @return + */ + public static int getLowestMark(HttpServletRequest request) + { + IMcService mcService =McUtils.getToolService(request); + List listMarks=mcService.getMarks(); + + Iterator itMarks=listMarks.iterator(); + int lowestMark=100; + while (itMarks.hasNext()) + { + McUsrAttempt mcUsrAttempt=(McUsrAttempt)itMarks.next(); + int currentMark=mcUsrAttempt.getMark().intValue(); + if (currentMark < lowestMark) + lowestMark= currentMark; + } + return lowestMark; + } + + /** + * return the average mark for all learners + * getTopMark(HttpServletRequest request) + * + * @param request + * @return + */ + public static int getAverageMark(HttpServletRequest request) + { + IMcService mcService =McUtils.getToolService(request); + List listMarks=mcService.getMarks(); + + Iterator itMarks=listMarks.iterator(); + int marksTotal=0; + int count=0; + while (itMarks.hasNext()) + { + McUsrAttempt mcUsrAttempt=(McUsrAttempt)itMarks.next(); + int currentMark=mcUsrAttempt.getMark().intValue(); + marksTotal=marksTotal + currentMark; + count++; + } + logger.debug("marksTotal: " + marksTotal); + logger.debug("count: " + count); + + int averageMark= (marksTotal / count); + logger.debug("averageMark: " + averageMark); + return averageMark; + } + + public static Map buildMapCorrectOptions(List correctOptions) { Map mapCorrectOptions= new TreeMap(new McComparator()); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java =================================================================== diff -u -r6f1188b57dfc1cd53bfbeb95fcdb295f1d2bf2e6 -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java (.../McAction.java) (revision 6f1188b57dfc1cd53bfbeb95fcdb295f1d2bf2e6) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java (.../McAction.java) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -2324,9 +2324,25 @@ } else if (mcLearningForm.getViewSummary() != null) { - logger.debug("requested view summary..."); + logger.debug("requested results summary..."); + + int countSessionComplete=mcService.countSessionComplete(); + int topMark=LearningUtil.getTopMark(request); + int lowestMark=LearningUtil.getLowestMark(request); + int averageMark=LearningUtil.getAverageMark(request); + + logger.debug("countSessionComplete: " + countSessionComplete); + logger.debug("topMark: " + topMark); + logger.debug("lowestMark: " + lowestMark); + logger.debug("averageMark: " + averageMark); + + request.getSession().setAttribute(COUNT_SESSION_COMPLETE, new Integer(countSessionComplete).toString()); + request.getSession().setAttribute(TOP_MARK, new Integer(topMark).toString()); + request.getSession().setAttribute(LOWEST_MARK, new Integer(lowestMark).toString()); + request.getSession().setAttribute(AVERAGE_MARK, new Integer(averageMark).toString()); + mcLearningForm.resetCommands(); - return (mapping.findForward(VIEW_SUMMARY)); + return (mapping.findForward(RESULTS_SUMMARY)); } else if (mcLearningForm.getLearnerFinished() != null) { Index: lams_tool_lamc/web/ResultsSummary.jsp =================================================================== diff -u --- lams_tool_lamc/web/ResultsSummary.jsp (revision 0) +++ lams_tool_lamc/web/ResultsSummary.jsp (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -0,0 +1,114 @@ +<%@ taglib uri="/WEB-INF/struts-html-el.tld" prefix="html" %> +<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> +<%@ taglib uri="/WEB-INF/struts-logic-el.tld" prefix="logic-el" %> +<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %> +<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ 4 + +
+
+
+ + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+
+   +
+ + + + + + + + +
+ + + +
+
+ Index: lams_tool_lamc/web/WEB-INF/struts-config.xml =================================================================== diff -u -r43b99721a0fa18b4ee65f3e94caf81cc7782ce87 -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision 43b99721a0fa18b4ee65f3e94caf81cc7782ce87) +++ lams_tool_lamc/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -172,6 +172,12 @@ /> + + - - + + + + + + + \ No newline at end of file Index: lams_tool_lamc/web/answersContent.jsp =================================================================== diff -u -rb6978e19e4e5ab95fdd7ab3f353f34be5cefa2e6 -r39bba88406e992a64fefc1b32cb7b4c0383ebfd1 --- lams_tool_lamc/web/answersContent.jsp (.../answersContent.jsp) (revision b6978e19e4e5ab95fdd7ab3f353f34be5cefa2e6) +++ lams_tool_lamc/web/answersContent.jsp (.../answersContent.jsp) (revision 39bba88406e992a64fefc1b32cb7b4c0383ebfd1) @@ -24,15 +24,6 @@ - - - - -
- <%@ include file="errorbox.jsp" %> -
- -