Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McGeneralLearnerFlowDTO.java =================================================================== diff -u -r82631c32c25cdbc2d547ee2cdc4a3178cb707f15 -r619ba8c6e9663bd0b345e06764dd71404f909b74 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McGeneralLearnerFlowDTO.java (.../McGeneralLearnerFlowDTO.java) (revision 82631c32c25cdbc2d547ee2cdc4a3178cb707f15) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McGeneralLearnerFlowDTO.java (.../McGeneralLearnerFlowDTO.java) (revision 619ba8c6e9663bd0b345e06764dd71404f909b74) @@ -111,6 +111,10 @@ protected String totalMarksPossible; protected Map mapFeedbackContent; + + protected Map mapFinalAnswersIsContent; + + protected Map mapFinalAnswersContent; /** @@ -611,4 +615,28 @@ public void setShowMarks(String showMarks) { this.showMarks = showMarks; } + /** + * @return Returns the mapFinalAnswersContent. + */ + public Map getMapFinalAnswersContent() { + return mapFinalAnswersContent; + } + /** + * @param mapFinalAnswersContent The mapFinalAnswersContent to set. + */ + public void setMapFinalAnswersContent(Map mapFinalAnswersContent) { + this.mapFinalAnswersContent = mapFinalAnswersContent; + } + /** + * @return Returns the mapFinalAnswersIsContent. + */ + public Map getMapFinalAnswersIsContent() { + return mapFinalAnswersIsContent; + } + /** + * @param mapFinalAnswersIsContent The mapFinalAnswersIsContent to set. + */ + public void setMapFinalAnswersIsContent(Map mapFinalAnswersIsContent) { + this.mapFinalAnswersIsContent = mapFinalAnswersIsContent; + } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java =================================================================== diff -u -r027758c2ee944683de01e4cd689fe3244d031920 -r619ba8c6e9663bd0b345e06764dd71404f909b74 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java (.../McUtils.java) (revision 027758c2ee944683de01e4cd689fe3244d031920) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java (.../McUtils.java) (revision 619ba8c6e9663bd0b345e06764dd71404f909b74) @@ -58,10 +58,15 @@ public static String replaceNewLines(String text) { logger.debug("using text: " + text); - String newText = text.replaceAll("\n","
"); - logger.debug("newText: " + newText); + String newText = ""; + if (text != null) + { + newText = text.replaceAll("\n","
"); + logger.debug("newText: " + newText); + } return newText; + } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java =================================================================== diff -u -re4b2a3cbdfdd26b99ead9b77705faa5a333d326e -r619ba8c6e9663bd0b345e06764dd71404f909b74 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java (.../IMcUsrAttemptDAO.java) (revision e4b2a3cbdfdd26b99ead9b77705faa5a333d326e) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java (.../IMcUsrAttemptDAO.java) (revision 619ba8c6e9663bd0b345e06764dd71404f909b74) @@ -146,6 +146,8 @@ public List getMarks(); public List getMarksForContent(McContent mcContent); + + public McUsrAttempt getUserAttemptForQuestionContentAndSessionUid(final Long queUsrUid, final Long mcQueContentId, final Long mcSessionUid, final Integer attemptOrder); } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java =================================================================== diff -u -re4b2a3cbdfdd26b99ead9b77705faa5a333d326e -r619ba8c6e9663bd0b345e06764dd71404f909b74 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java (.../McUsrAttemptDAO.java) (revision e4b2a3cbdfdd26b99ead9b77705faa5a333d326e) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java (.../McUsrAttemptDAO.java) (revision 619ba8c6e9663bd0b345e06764dd71404f909b74) @@ -339,6 +339,45 @@ } + public McUsrAttempt getUserAttemptForQuestionContentAndSessionUid(final Long queUsrUid, final Long mcQueContentId, final Long mcSessionUid, final Integer attemptOrder) + { + logger.debug("starting getUserAttemptsForQuestionContentAndSessionUid:"); + logger.debug("queUsrUid:" + queUsrUid); + logger.debug("mcQueContentId:" + mcQueContentId); + logger.debug("mcSessionUid:" + mcSessionUid); + logger.debug("attemptOrder:" + attemptOrder); + + HibernateTemplate templ = this.getHibernateTemplate(); + List list = getSession().createQuery(LOAD_ATTEMPT_FOR_QUESTION_CONTENT) + .setLong("mcQueContentId", mcQueContentId.longValue()) + .list(); + + if(list != null && list.size() > 0){ + Iterator listIterator=list.iterator(); + while (listIterator.hasNext()) + { + McUsrAttempt attempt=(McUsrAttempt)listIterator.next(); + logger.debug("attempt:" + attempt); + + if (attempt.getMcQueUsr().getUid().toString().equals(queUsrUid.toString())) + { + logger.debug("queUsrUid equal:" + queUsrUid); + if (attempt.getMcQueUsr().getMcSession().getUid().toString().equals(mcSessionUid.toString())) + { + logger.debug("user belong to this session:" + mcSessionUid); + logger.debug("isAttemptCorrect:" + attempt.isAttemptCorrect()); + if (attempt.getAttemptOrder().intValue() == attemptOrder.intValue()) + return attempt; + } + } + } + } + return null; + } + + + + public McUsrAttempt getAttemptWithLastAttemptOrderForUserInSession(Long queUsrUid, final Long mcSessionUid) { logger.debug("starting getLastAttemptOrderForUserInSession:"); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java =================================================================== diff -u -ree243d4e5cb79d63c83f87a473b996d6b2c2e86f -r619ba8c6e9663bd0b345e06764dd71404f909b74 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java (.../IMcService.java) (revision ee243d4e5cb79d63c83f87a473b996d6b2c2e86f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java (.../IMcService.java) (revision 619ba8c6e9663bd0b345e06764dd71404f909b74) @@ -290,5 +290,7 @@ public List getMarksForContent(McContent mcContent) throws McApplicationException; + public McUsrAttempt getUserAttemptForQuestionContentAndSessionUid(final Long queUsrUid, final Long mcQueContentId, final Long mcSessionUid, final Integer attemptOrder) throws McApplicationException; + } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java =================================================================== diff -u -ree243d4e5cb79d63c83f87a473b996d6b2c2e86f -r619ba8c6e9663bd0b345e06764dd71404f909b74 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision ee243d4e5cb79d63c83f87a473b996d6b2c2e86f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision 619ba8c6e9663bd0b345e06764dd71404f909b74) @@ -1047,6 +1047,24 @@ } } + + + public McUsrAttempt getUserAttemptForQuestionContentAndSessionUid(final Long queUsrUid, final Long mcQueContentId, final Long mcSessionUid, final Integer attemptOrder) throws McApplicationException + { + try + { + return mcUsrAttemptDAO.getUserAttemptForQuestionContentAndSessionUid(queUsrUid, mcQueContentId, mcSessionUid, attemptOrder); + } + catch(DataAccessException e) + { + throw new McApplicationException("Exception occured when lams is running getUserAttemptForQuestionContentAndSessionUid:" + + e.getMessage(),e); + } + } + + + + public void deleteMcQueUsr(McQueUsr mcQueUsr) throws McApplicationException { try Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java =================================================================== diff -u -r116fb820c289bb21122b78128f27a59b8517884f -r619ba8c6e9663bd0b345e06764dd71404f909b74 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java (.../McLearningAction.java) (revision 116fb820c289bb21122b78128f27a59b8517884f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java (.../McLearningAction.java) (revision 619ba8c6e9663bd0b345e06764dd71404f909b74) @@ -1502,7 +1502,25 @@ Long toolContentUID=mcContent.getUid(); logger.debug("toolContentUID: " + toolContentUID); + + + Map mapFinalAnswersIsContent= new TreeMap(new McComparator()); + Map mapFinalAnswersContent= new TreeMap(new McComparator()); + + McUsrAttempt mcUsrAttemptLocal = mcService.getAttemptWithLastAttemptOrderForUserInSession(mcQueUsr.getUid(), mcSession.getUid()); + logger.debug("obtain mcUsrAttemptLocal with highest attempt order: " + mcUsrAttemptLocal); + String highestAttemptOrder=""; + List listUserAttempts=null; + if (mcUsrAttemptLocal != null) + { + highestAttemptOrder=mcUsrAttemptLocal.getAttemptOrder().toString(); + logger.debug("found highestAttemptOrder: " + highestAttemptOrder); + } + request.setAttribute("highestAttempOrder", highestAttemptOrder); + + + Map mapQueAttempts= new TreeMap(new McComparator()); Map mapQueCorrectAttempts= new TreeMap(new McComparator()); Map mapQueIncorrectAttempts= new TreeMap(new McComparator()); @@ -1511,7 +1529,17 @@ logger.debug("doing question with display order: " + i); McQueContent mcQueContent=mcService.getQuestionContentByDisplayOrder(new Long(i), toolContentUID); logger.debug("mcQueContent uid: " + mcQueContent.getUid()); - + + + + McUsrAttempt mcUsrAttemptFinal=mcService.getUserAttemptForQuestionContentAndSessionUid(mcQueUsr.getUid(), mcQueContent.getUid(), + mcSession.getUid(), new Integer(highestAttemptOrder)); + logger.debug("mcUsrAttemptFinal: " + mcUsrAttemptFinal); + logger.debug("mcUsrAttemptFinal is Correct?: " + mcUsrAttemptFinal.isAttemptCorrect()); + + mapFinalAnswersIsContent.put(new Integer(i).toString() , new Boolean(mcUsrAttemptFinal.isAttemptCorrect()).toString()); + mapFinalAnswersContent.put(new Integer(i).toString() , mcUsrAttemptFinal.getMcOptionsContent().getMcQueOptionText().toString()); + Map mapAttemptOrderAttempts= new TreeMap(new McComparator()); Map mapAttemptOrderCorrectAttempts= new TreeMap(new McComparator()); Map mapAttemptOrderIncorrectAttempts= new TreeMap(new McComparator()); @@ -1602,6 +1630,13 @@ } } + logger.debug("final mapFinalAnswersContent is: " + mapFinalAnswersContent); + logger.debug("final mapFinalAnswersIsContent is: " + mapFinalAnswersIsContent); + + mcGeneralLearnerFlowDTO.setMapFinalAnswersIsContent(mapFinalAnswersIsContent); + mcGeneralLearnerFlowDTO.setMapFinalAnswersContent(mapFinalAnswersContent); + + logger.debug("final mapQueAttempts is: " + mapQueAttempts); logger.debug("final mapQueCorrectAttempts is: " + mapQueCorrectAttempts); logger.debug("final mapQueIncorrectAttempts is: " + mapQueIncorrectAttempts); @@ -1610,6 +1645,7 @@ mcGeneralLearnerFlowDTO.setMapQueCorrectAttempts(mapQueCorrectAttempts); mcGeneralLearnerFlowDTO.setMapQueIncorrectAttempts(mapQueIncorrectAttempts); + logger.debug("is tool reflective: " + mcContent.isReflect()); mcGeneralLearnerFlowDTO.setReflection(new Boolean(mcContent.isReflect()).toString()); logger.debug("reflection subject: " + mcContent.getReflectionSubject()); Index: lams_tool_lamc/web/learning/ViewAnswers.jsp =================================================================== diff -u -r116fb820c289bb21122b78128f27a59b8517884f -r619ba8c6e9663bd0b345e06764dd71404f909b74 --- lams_tool_lamc/web/learning/ViewAnswers.jsp (.../ViewAnswers.jsp) (revision 116fb820c289bb21122b78128f27a59b8517884f) +++ lams_tool_lamc/web/learning/ViewAnswers.jsp (.../ViewAnswers.jsp) (revision 619ba8c6e9663bd0b345e06764dd71404f909b74) @@ -97,55 +97,41 @@ - - -

- -

- + + + + - - +

+ - + + +  

+
+
-
- -

- : -

- -
    - -
  • - -
  • -
    -
- -
-
- -
- - -
+ + + + images/tick.gif" border="0" class="middle"> + + + images/cross.gif" border="0" class="middle"> + - - +