Index: lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/McUsrAttempt.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/Attic/McUsrAttempt.hbm.xml,v diff -u -r1.9 -r1.10 --- lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/McUsrAttempt.hbm.xml 20 Nov 2005 18:13:50 -0000 1.9 +++ lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/McUsrAttempt.hbm.xml 21 Nov 2005 12:28:34 -0000 1.10 @@ -50,6 +50,16 @@ length="1" /> + + returns the highest mark of a learner + * with the given identifier queUsrId

+ * + * @param uid + * @return + */ + public List getHighestMark(Long queUsrId); } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java,v diff -u -r1.6 -r1.7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java 11 Nov 2005 17:53:19 -0000 1.6 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java 21 Nov 2005 12:28:34 -0000 1.7 @@ -22,10 +22,13 @@ package org.lamsfoundation.lams.tool.mc.dao.hibernate; +import java.util.List; + import org.apache.log4j.Logger; import org.hibernate.FlushMode; import org.lamsfoundation.lams.tool.mc.McUsrAttempt; import org.lamsfoundation.lams.tool.mc.dao.IMcUsrAttemptDAO; +import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; /** @@ -35,6 +38,8 @@ public class McUsrAttemptDAO extends HibernateDaoSupport implements IMcUsrAttemptDAO { static Logger logger = Logger.getLogger(McUsrAttemptDAO.class.getName()); + private static final String LOAD_HIGHEST_MARK_BY_USER_ID = "from mcUsrAttempt in class McUsrAttempt where mcUsrAttempt.queUsrId=:queUsrId"; + public McUsrAttempt getMcUserAttemptByUID(Long uid) { return (McUsrAttempt) this.getHibernateTemplate() @@ -46,6 +51,16 @@ this.getHibernateTemplate().save(mcUsrAttempt); } + public List getHighestMark(Long queUsrId) + { + HibernateTemplate templ = this.getHibernateTemplate(); + List list = getSession().createQuery(LOAD_HIGHEST_MARK_BY_USER_ID) + .setLong("queUsrId", queUsrId.longValue()) + .list(); + + return list; + } + public void updateMcUsrAttempt(McUsrAttempt mcUsrAttempt) { this.getHibernateTemplate().update(mcUsrAttempt); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java,v diff -u -r1.23 -r1.24 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java 19 Nov 2005 12:52:15 -0000 1.23 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java 21 Nov 2005 12:28:34 -0000 1.24 @@ -201,5 +201,7 @@ public void cleanUploadedFilesMetaData() throws McApplicationException; public void persistFile(String uuid, boolean isOnlineFile, String fileName, McContent mcContent) throws McApplicationException; + + public List getHighestMark(Long queUsrId) throws McApplicationException; } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java,v diff -u -r1.26 -r1.27 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java 19 Nov 2005 12:52:15 -0000 1.26 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java 21 Nov 2005 12:28:34 -0000 1.27 @@ -322,8 +322,22 @@ } } + + public List getHighestMark(Long queUsrId) throws McApplicationException + { + try + { + return mcUsrAttemptDAO.getHighestMark(queUsrId); + } + catch (DataAccessException e) + { + throw new McApplicationException("Exception occured when lams is getting the learner's highest mark: " + + e.getMessage(), + e); + } + } + - public McQueContent retrieveMcQueContentByUID(Long uid) throws McApplicationException { try @@ -1874,4 +1888,5 @@ public void setMcUploadedFileDAO(IMcUploadedFileDAO mcUploadedFileDAO) { this.mcUploadedFileDAO = mcUploadedFileDAO; } + } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java,v diff -u -r1.5 -r1.6 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java 20 Nov 2005 18:13:50 -0000 1.5 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java 21 Nov 2005 12:28:34 -0000 1.6 @@ -14,6 +14,7 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.tool.mc.McAppConstants; +import org.lamsfoundation.lams.tool.mc.McApplicationException; import org.lamsfoundation.lams.tool.mc.McComparator; import org.lamsfoundation.lams.tool.mc.McContent; import org.lamsfoundation.lams.tool.mc.McOptsContent; @@ -304,7 +305,28 @@ } return correctAnswerCount; } + + public static int getHighestMark(HttpServletRequest request, Long queUsrId) + { + logger.debug("queUsrId : " + queUsrId); + IMcService mcService =McUtils.getToolService(request); + List listMarks=mcService.getHighestMark(queUsrId); + + Iterator itMarks=listMarks.iterator(); + int highestMark=0; + while (itMarks.hasNext()) + { + McUsrAttempt mcUsrAttempt=(McUsrAttempt)itMarks.next(); + logger.debug("mcUsrAttempt mark: " + mcUsrAttempt.getMark()); + int currentMark=mcUsrAttempt.getMark().intValue(); + logger.debug("currentMark: " + currentMark); + if (currentMark > highestMark) + highestMark= currentMark; + } + logger.debug("highestMark : " + highestMark); + return highestMark; + } public static Map buildMapCorrectOptions(List correctOptions) Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java,v diff -u -r1.59 -r1.60 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java 20 Nov 2005 18:13:50 -0000 1.59 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java 21 Nov 2005 12:28:34 -0000 1.60 @@ -2203,9 +2203,17 @@ logger.debug("requested redoQuestions..."); request.getSession().setAttribute(CURRENT_QUESTION_INDEX, "1"); request.getSession().setAttribute(TOTAL_COUNT_REACHED, new Boolean(false).toString()); + + McQueUsr mcQueUsr=LearningUtil.getUser(request); + Long queUsrId=mcQueUsr.getUid(); + logger.debug("queUsrId: " + queUsrId); + + int learnerBestMark=LearningUtil.getHighestMark(request, queUsrId); + logger.debug("learnerBestMark: " + learnerBestMark); + request.getSession().setAttribute(LEARNER_BEST_MARK,new Integer(learnerBestMark).toString()); + mcLearningForm.resetCommands(); return (mapping.findForward(REDO_QUESTIONS)); - //return redoQuestions(request, mcLearningForm, mapping); } else if (mcLearningForm.getRedoQuestionsOk() != null) { Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java,v diff -u -r1.12 -r1.13 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java 20 Nov 2005 18:13:50 -0000 1.12 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java 21 Nov 2005 12:28:34 -0000 1.13 @@ -237,8 +237,8 @@ if (mcQueUsr != null) { - logger.debug("the learner has already responsed to this content, just generate a read-only report."); - return (mapping.findForward(LEARNER_REPORT)); + logger.debug("the learner has already responsed to this content, just generate a read-only report. Use redo questions for this."); + return (mapping.findForward(REDO_QUESTIONS)); } Index: lams_tool_lamc/web/RedoQuestions.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/web/Attic/RedoQuestions.jsp,v diff -u -r1.1 -r1.2 --- lams_tool_lamc/web/RedoQuestions.jsp 18 Nov 2005 17:02:57 -0000 1.1 +++ lams_tool_lamc/web/RedoQuestions.jsp 21 Nov 2005 12:28:33 -0000 1.2 @@ -44,8 +44,10 @@ - 1 - 2 + + + + Fisheye: Tag 1.7 refers to a dead (removed) revision in file `lams_tool_lamc/web/SequentialAnswersContent.jsp'. Fisheye: No comparison available. Pass `N' to diff?