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" %>
- |
-
-
-
-