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 @@
-
-
-
-