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.33 -r1.34 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java 23 Jul 2006 22:44:55 -0000 1.33 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java 26 Jul 2006 19:37:38 -0000 1.34 @@ -57,8 +57,9 @@ static Logger logger = Logger.getLogger(LearningUtil.class.getName()); - public static void saveFormRequestData(HttpServletRequest request, McLearningForm mcLearningForm) + public static void saveFormRequestData(HttpServletRequest request, McLearningForm mcLearningForm, boolean prepareViewAnswersDataMode) { + logger.debug("prepareViewAnswersDataMode: " + prepareViewAnswersDataMode); String httpSessionID=request.getParameter("httpSessionID"); logger.debug("httpSessionID: " + httpSessionID); @@ -72,9 +73,13 @@ logger.debug("userOverPassMark: " + userOverPassMark); mcLearningForm.setUserOverPassMark(userOverPassMark); - String learnerProgress=request.getParameter("learnerProgress"); - logger.debug("learnerProgress: " + learnerProgress); - mcLearningForm.setLearnerProgress(learnerProgress); + if (prepareViewAnswersDataMode == false) + { + String learnerProgress=request.getParameter("learnerProgress"); + logger.debug("learnerProgress: " + learnerProgress); + mcLearningForm.setLearnerProgress(learnerProgress); + logger.debug("form is populated with learnerProgress"); + } String learnerProgressUserId=request.getParameter("learnerProgressUserId"); logger.debug("learnerProgressUserId: " + learnerProgressUserId); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java,v diff -u -r1.33 -r1.34 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java 25 Jul 2006 05:16:26 -0000 1.33 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java 26 Jul 2006 19:37:38 -0000 1.34 @@ -191,7 +191,7 @@ { McUtils.cleanUpUserExceptions(request); McLearningForm mcLearningForm = (McLearningForm) form; - LearningUtil.saveFormRequestData(request, mcLearningForm); + LearningUtil.saveFormRequestData(request, mcLearningForm, false); return null; } @@ -241,8 +241,6 @@ McLearningForm mcLearningForm = (McLearningForm) form; IMcService mcService = McServiceProxy.getMcService(getServlet().getServletContext()); - LearningUtil.saveFormRequestData(request, mcLearningForm); - String toolSessionID=request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); logger.debug("toolSessionID: " + toolSessionID); mcLearningForm.setToolSessionID(toolSessionID); @@ -260,6 +258,7 @@ (!mcLearningForm.getNextQuestionSelected().equals(""))) { logger.debug("presenting next question..."); + LearningUtil.saveFormRequestData(request, mcLearningForm, false); mcLearningForm.resetParameters(); setContentInUse(request, toolContentId, mcService); return getNextOptions(mapping, form, request, response); @@ -268,37 +267,45 @@ if (mcLearningForm.getContinueOptionsCombined() != null) { + LearningUtil.saveFormRequestData(request, mcLearningForm, false); setContentInUse(request, toolContentId, mcService); return continueOptionsCombined(mapping, form, request, response); } else if (mcLearningForm.getNextOptions() != null) { + LearningUtil.saveFormRequestData(request, mcLearningForm, false); setContentInUse(request, toolContentId, mcService); return getNextOptions(mapping, form, request, response); } else if (mcLearningForm.getRedoQuestions() != null) { + LearningUtil.saveFormRequestData(request, mcLearningForm, false); setContentInUse(request, toolContentId, mcService); return redoQuestions(mapping, form, request, response); } else if (mcLearningForm.getRedoQuestionsOk() != null) { + LearningUtil.saveFormRequestData(request, mcLearningForm, false); setContentInUse(request, toolContentId, mcService); logger.debug("requested redoQuestionsOk, user is sure to redo the questions."); return redoQuestions(request, mcLearningForm, mapping); } else if (mcLearningForm.getViewAnswers() != null) { + LearningUtil.saveFormRequestData(request, mcLearningForm, false); setContentInUse(request, toolContentId, mcService); - return viewAnswers(mapping, form, request, response); + mcLearningForm.setLearnerProgress(new Boolean(false).toString()); + return viewAnswers(mapping, mcLearningForm, request, response); } else if (mcLearningForm.getViewSummary() != null) { + LearningUtil.saveFormRequestData(request, mcLearningForm, false); setContentInUse(request, toolContentId, mcService); return viewSummary(mapping, form, request, response); } else if (mcLearningForm.getLearnerFinished() != null) { + LearningUtil.saveFormRequestData(request, mcLearningForm, false); logger.debug("requested learner finished, the learner should be directed to next activity."); logger.debug("toolSessionID: " + toolSessionID); @@ -1000,30 +1007,15 @@ return (mapping.findForward(REDO_QUESTIONS)); } - - /** - * allows the learner to view their answer history - * viewAnswers(ActionMapping mapping, - ActionForm form, + + public void prepareViewAnswersData(ActionMapping mapping, + McLearningForm mcLearningForm, HttpServletRequest request, HttpServletResponse response) - * - * @param request - * @param form - * @param mapping - * @return ActionForward - */ - public ActionForward viewAnswers(ActionMapping mapping, - ActionForm form, - HttpServletRequest request, - HttpServletResponse response) throws IOException, - ServletException - { - logger.debug("dispatching viewAnswers..." + form); - McLearningForm mcLearningForm = (McLearningForm) form; - logger.debug("mcLearningForm :" + mcLearningForm); - + { + logger.debug("running prepareViewAnswersData..." + mcLearningForm); + logger.debug("getServlet() :" + getServlet()); IMcService mcService=null; if (getServlet() != null) @@ -1035,8 +1027,6 @@ } logger.debug("mcService :" + mcService); - LearningUtil.saveFormRequestData(request, mcLearningForm); - String toolSessionID=request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); logger.debug("toolSessionID: " + toolSessionID); @@ -1050,23 +1040,25 @@ logger.debug("mcContent: " + mcContent); McGeneralLearnerFlowDTO mcGeneralLearnerFlowDTO=LearningUtil.buildMcGeneralLearnerFlowDTO(mcContent); - mcGeneralLearnerFlowDTO.setLearnerProgress(new Boolean(true).toString()); - request.setAttribute(MC_GENERAL_LEARNER_FLOW_DTO, mcGeneralLearnerFlowDTO); - logger.debug("MC_GENERAL_LEARNER_FLOW_DTO: " + request.getAttribute(MC_GENERAL_LEARNER_FLOW_DTO)); - - int intTotalQuestionCount=mcContent.getMcQueContents().size(); - String totalQuestionCount= new Integer(intTotalQuestionCount).toString(); - logger.debug("totalQuestionCount: " + totalQuestionCount); - - /* this section is needed to separate learner progress view from standard attempts list. Goes from here.. */ + + /* this section is needed to separate learner progress view from standard attempts list. Goes from here.. */ String learnerProgress=mcLearningForm.getLearnerProgress(); - logger.debug("learnerProgress: " + learnerProgress); + logger.debug("learnerProgress in prepareViewAnswersData: " + learnerProgress); mcGeneralLearnerFlowDTO.setLearnerProgress(learnerProgress); String learnerProgressUserId=mcLearningForm.getLearnerProgressUserId(); logger.debug("learnerProgressUserId: " + learnerProgressUserId); mcGeneralLearnerFlowDTO.setLearnerProgressUserId(learnerProgressUserId); + + mcGeneralLearnerFlowDTO.setLearnerProgress(learnerProgress); + request.setAttribute(MC_GENERAL_LEARNER_FLOW_DTO, mcGeneralLearnerFlowDTO); + logger.debug("MC_GENERAL_LEARNER_FLOW_DTO: " + request.getAttribute(MC_GENERAL_LEARNER_FLOW_DTO)); + int intTotalQuestionCount=mcContent.getMcQueContents().size(); + String totalQuestionCount= new Integer(intTotalQuestionCount).toString(); + logger.debug("totalQuestionCount: " + totalQuestionCount); + + Map mapQuestionsUidContent=AuthoringUtil.rebuildQuestionUidMapfromDB(request, new Long(toolContentId), mcService); logger.debug("mapQuestionsUidContent:" + mapQuestionsUidContent); @@ -1228,8 +1220,35 @@ mcGeneralLearnerFlowDTO.setMapQueIncorrectAttempts(mapQueIncorrectAttempts); request.setAttribute(MC_GENERAL_LEARNER_FLOW_DTO, mcGeneralLearnerFlowDTO); - logger.debug("MC_GENERAL_LEARNER_FLOW_DTO: " + request.getAttribute(MC_GENERAL_LEARNER_FLOW_DTO)); + logger.debug("MC_GENERAL_LEARNER_FLOW_DTO: " + request.getAttribute(MC_GENERAL_LEARNER_FLOW_DTO)); + logger.debug("end of prepareViewAnswersData."); + } + + + + /** + * allows the learner to view their answer history + * viewAnswers(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) + * + * @param request + * @param form + * @param mapping + * @return ActionForward + */ + public ActionForward viewAnswers(ActionMapping mapping, + McLearningForm mcLearningForm, + HttpServletRequest request, + HttpServletResponse response) throws IOException, + ServletException + { + logger.debug("dispatching viewLearnerProgress..." + mcLearningForm); + logger.debug("mcLearningForm :" + mcLearningForm); + prepareViewAnswersData(mapping, mcLearningForm, request, response); + logger.debug("post prepareViewAnswersData f"); return (mapping.findForward(VIEW_ANSWERS)); } 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.58 -r1.59 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java 25 Jul 2006 05:16:26 -0000 1.58 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java 26 Jul 2006 19:37:38 -0000 1.59 @@ -338,7 +338,10 @@ persistError(request, "error.learner.sessionId.inconsistent"); return (mapping.findForward(ERROR_LIST)); } - return mcLearningAction.viewAnswers(mapping, form, request, response); + LearningUtil.saveFormRequestData(request, mcLearningForm, true); + logger.debug("learnerProgress before presenting learner Progress screen: " + mcLearningForm.getLearnerProgress()); + + return mcLearningAction.viewAnswers(mapping, mcLearningForm, request, response); } /* by now, we know that the mode is learner*/ @@ -439,7 +442,7 @@ { McLearningAction mcLearningAction= new McLearningAction(); logger.debug("present to learner with previous attempts data"); - return mcLearningAction.viewAnswers(mapping, form, request, response); + return mcLearningAction.viewAnswers(mapping, mcLearningForm, request, response); } } } @@ -449,7 +452,7 @@ logger.debug("present to teacher learners progress..."); mcLearningForm.setLearnerProgress(new Boolean(true).toString()); mcLearningForm.setLearnerProgressUserId(userId); - return mcLearningAction.viewAnswers(mapping, form, request, response); + return mcLearningAction.viewAnswers(mapping, mcLearningForm, request, response); } logger.debug("just presenting standard learner screen"); request.setAttribute(MC_LEARNER_STARTER_DTO, mcLearnerStarterDTO);