Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java =================================================================== diff -u -rec381d32c228f460e0fd3ce3857aab14d4f6fd87 -rf6415cc8f6c1ea49437a386bc9c11a9a72c13857 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java (.../McAppConstants.java) (revision ec381d32c228f460e0fd3ce3857aab14d4f6fd87) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java (.../McAppConstants.java) (revision f6415cc8f6c1ea49437a386bc9c11a9a72c13857) @@ -53,6 +53,7 @@ public static final int MAX_OPTION_COUNT = 25; public static final String QUESTION_AND_CANDIDATE_ANSWERS_KEY = "questionAndCandidateAnswersKey"; + public static final String CONFIDENCE_LEVELS_KEY = "confidenceLevelsMap"; /* * authoring mode constants Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/action/McLearningAction.java =================================================================== diff -u -r471b903caa3365758fbdec0a22440b1b0b3f2947 -rf6415cc8f6c1ea49437a386bc9c11a9a72c13857 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/action/McLearningAction.java (.../McLearningAction.java) (revision 471b903caa3365758fbdec0a22440b1b0b3f2947) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/action/McLearningAction.java (.../McLearningAction.java) (revision f6415cc8f6c1ea49437a386bc9c11a9a72c13857) @@ -24,6 +24,7 @@ import java.io.IOException; import java.util.Date; +import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -196,7 +197,7 @@ /** * */ - protected List buildAnswerDtos(List answers, McContent content, HttpServletRequest request) { + protected List buildAnswerDtos(List answers, Map confidenceLevels, McContent content, HttpServletRequest request) { List answerDtos = new LinkedList(); @@ -236,8 +237,10 @@ //handle confidence levels if (content.isEnableConfidenceLevels()) { - int confidenceLevel = WebUtil.readIntParam(request, "confidenceLevel" + question.getUid()); - answerDto.setConfidenceLevel(confidenceLevel); + String wantedKey = "confidenceLevel" + question.getUid(); + Integer confidenceLevel = confidenceLevels.get(wantedKey); + if ( confidenceLevel != null ) + answerDto.setConfidenceLevel(confidenceLevel); } answerDtos.add(answerDto); @@ -266,8 +269,16 @@ McContent mcContent = mcService.getMcContent(new Long(toolContentId)); List answers = McLearningAction.parseLearnerAnswers(mcLearningForm, request, mcContent.isQuestionsSequenced()); + + Map learnerConfidenceLevels = null; + if (mcContent.isEnableConfidenceLevels()) + learnerConfidenceLevels = parseLearnerConfidenceLevels(mcLearningForm, request, + mcContent.isQuestionsSequenced()); + if (mcContent.isQuestionsSequenced()) { sessionMap.put(McAppConstants.QUESTION_AND_CANDIDATE_ANSWERS_KEY, answers); + if ( mcContent.isEnableConfidenceLevels() ) + sessionMap.put(McAppConstants.CONFIDENCE_LEVELS_KEY, learnerConfidenceLevels); } mcLearningForm.resetCa(mapping, request); @@ -280,7 +291,7 @@ } /* process the answers */ - List answerDtos = buildAnswerDtos(answers, mcContent, request); + List answerDtos = buildAnswerDtos(answers, learnerConfidenceLevels, mcContent, request); mcService.saveUserAttempt(user, answerDtos); //calculate total learner mark @@ -331,9 +342,16 @@ //parse learner input List answers = McLearningAction.parseLearnerAnswers(mcLearningForm, request, mcContent.isQuestionsSequenced()); sessionMap.put(McAppConstants.QUESTION_AND_CANDIDATE_ANSWERS_KEY, answers); + + Map learnerConfidenceLevels = null; + if (mcContent.isEnableConfidenceLevels()) { + learnerConfidenceLevels = parseLearnerConfidenceLevels(mcLearningForm, request, + mcContent.isQuestionsSequenced()); + sessionMap.put(McAppConstants.CONFIDENCE_LEVELS_KEY, learnerConfidenceLevels); + } //save user attempt - List answerDtos = buildAnswerDtos(answers, mcContent, request); + List answerDtos = buildAnswerDtos(answers, learnerConfidenceLevels, mcContent, request); mcService.saveUserAttempt(user, answerDtos); List learnerAnswersDTOList = mcService.getAnswersFromDatabase(mcContent, user); @@ -708,8 +726,12 @@ } List answers = McLearningAction.parseLearnerAnswers(mcLearningForm, request, mcContent.isQuestionsSequenced()); + Map learnerConfidenceLevels = null; + if (mcContent.isEnableConfidenceLevels()) + learnerConfidenceLevels = parseLearnerConfidenceLevels(mcLearningForm, request, + mcContent.isQuestionsSequenced()); - List answerDtos = buildAnswerDtos(answers, mcContent, request); + List answerDtos = buildAnswerDtos(answers, learnerConfidenceLevels, mcContent, request); mcService.saveUserAttempt(user, answerDtos); return null; @@ -752,7 +774,31 @@ return answers; } + + private Map parseLearnerConfidenceLevels(McLearningForm mcLearningForm, HttpServletRequest request, + boolean isQuestionsSequenced) { + String httpSessionID = mcLearningForm.getHttpSessionID(); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(httpSessionID); + Map confidenceLevels = new HashMap(); + if (isQuestionsSequenced) { + Map previousConfidenceLevels = (Map) sessionMap + .get(McAppConstants.CONFIDENCE_LEVELS_KEY); + if (previousConfidenceLevels != null) + confidenceLevels.putAll(previousConfidenceLevels); + } + + Map parameters = request.getParameterMap(); + Iterator iter = parameters.keySet().iterator(); + while (iter.hasNext()) { + String key = iter.next(); + if (key.startsWith("confidenceLevel")) { + confidenceLevels.put(key, WebUtil.readIntParam(request, key)); + } + } + return confidenceLevels; + } + private McQueUsr getCurrentUser(String toolSessionId) { McSession mcSession = mcService.getMcSessionById(new Long(toolSessionId)); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/action/McMonitoringAction.java =================================================================== diff -u -r2485ce33e55a921bdcde94e4f242da5da3cf1fc4 -rf6415cc8f6c1ea49437a386bc9c11a9a72c13857 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/action/McMonitoringAction.java (.../McMonitoringAction.java) (revision 2485ce33e55a921bdcde94e4f242da5da3cf1fc4) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/action/McMonitoringAction.java (.../McMonitoringAction.java) (revision f6415cc8f6c1ea49437a386bc9c11a9a72c13857) @@ -286,8 +286,7 @@ request.setAttribute(McAppConstants.ATTR_CONTENT, user.getMcSession().getMcContent()); request.setAttribute(McAppConstants.USER_ATTEMPTS, userAttempts); request.setAttribute(McAppConstants.TOOL_SESSION_ID, user.getMcSession().getMcSessionId()); - return (userAttempts == null || userAttempts.isEmpty()) ? null - : mapping.findForward(McAppConstants.USER_MASTER_DETAIL); + return mapping.findForward(McAppConstants.USER_MASTER_DETAIL); } /**