Index: lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/McQueUsr.hbm.xml =================================================================== diff -u -r3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/McQueUsr.hbm.xml (.../McQueUsr.hbm.xml) (revision 3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d) +++ lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/McQueUsr.hbm.xml (.../McQueUsr.hbm.xml) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -49,6 +49,14 @@ column="responseFinalised" length="1" /> + + - + @@ -804,7 +804,20 @@ + + + + + + + + + + + + + Index: lams_tool_lamc/db/sql/create_lams_tool_mc.sql =================================================================== diff -u -r3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/db/sql/create_lams_tool_mc.sql (.../create_lams_tool_mc.sql) (revision 3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d) +++ lams_tool_lamc/db/sql/create_lams_tool_mc.sql (.../create_lams_tool_mc.sql) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -73,6 +73,7 @@ , username VARCHAR(100) , fullname VARCHAR(100) , responseFinalised TINYINT(1) NOT NULL DEFAULT 0 + , viewSummaryRequested TINYINT(1) NOT NULL DEFAULT 0 , PRIMARY KEY (uid) , INDEX (mc_session_id) , CONSTRAINT FK_tl_lamc11_que_usr_1 FOREIGN KEY (mc_session_id) Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McQueUsr.java =================================================================== diff -u -r3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McQueUsr.java (.../McQueUsr.java) (revision 3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McQueUsr.java (.../McQueUsr.java) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -52,6 +52,8 @@ private String fullname; private boolean responseFinalised; + + private boolean viewSummaryRequested; private Long mcSessionId; @@ -162,4 +164,16 @@ public void setMcSessionId(Long mcSessionId) { this.mcSessionId = mcSessionId; } + /** + * @return Returns the viewSummaryRequested. + */ + public boolean isViewSummaryRequested() { + return viewSummaryRequested; + } + /** + * @param viewSummaryRequested The viewSummaryRequested to set. + */ + public void setViewSummaryRequested(boolean viewSummaryRequested) { + this.viewSummaryRequested = viewSummaryRequested; + } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java =================================================================== diff -u -r1d705f95c7d374192c678e101772e93f0442dae9 -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java (.../LearningUtil.java) (revision 1d705f95c7d374192c678e101772e93f0442dae9) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/LearningUtil.java (.../LearningUtil.java) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -64,7 +64,11 @@ String httpSessionID=request.getParameter("httpSessionID"); logger.debug("httpSessionID: " + httpSessionID); mcLearningForm.setHttpSessionID(httpSessionID); - + + String userID=request.getParameter("userID"); + logger.debug("userID: " + userID); + mcLearningForm.setUserID(userID); + String passMarkApplicable=request.getParameter("passMarkApplicable"); logger.debug("passMarkApplicable: " + passMarkApplicable); mcLearningForm.setPassMarkApplicable(passMarkApplicable); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java =================================================================== diff -u -r3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java (.../McLearningAction.java) (revision 3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java (.../McLearningAction.java) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -1285,11 +1285,21 @@ IMcService mcService = McServiceProxy.getMcService(getServlet().getServletContext()); logger.debug("mcService: " + mcService); + String userID=request.getParameter(AttributeNames.PARAM_USER_ID); + logger.debug("userID: " + userID); + String toolSessionID=request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); logger.debug("toolSessionID: " + toolSessionID); McSession mcSession=mcService.retrieveMcSession(new Long(toolSessionID)); logger.debug("retrieving mcSession: " + mcSession); + + McQueUsr mcQueUsr=mcService.getMcUserBySession(new Long(userID), mcSession.getUid()); + logger.debug("mcQueUsr: " + mcQueUsr); + + mcQueUsr.setViewSummaryRequested(true); + mcService.updateMcQueUsr(mcQueUsr); + logger.debug("view summary requested by mcQueUsr: " + mcQueUsr); String toolContentId=mcSession.getMcContent().getMcContentId().toString(); logger.debug("toolContentId: " + toolContentId); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningForm.java =================================================================== diff -u -r1d705f95c7d374192c678e101772e93f0442dae9 -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningForm.java (.../McLearningForm.java) (revision 1d705f95c7d374192c678e101772e93f0442dae9) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningForm.java (.../McLearningForm.java) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -49,7 +49,8 @@ protected String[] checkedCa; protected String[] sequentialCheckedCa; - + + protected String userID; protected String toolContentID; protected String toolContentUID; protected String toolSessionID; @@ -436,4 +437,16 @@ public void setReportViewOnly(String reportViewOnly) { this.reportViewOnly = reportViewOnly; } + /** + * @return Returns the userID. + */ + public String getUserID() { + return userID; + } + /** + * @param userID The userID to set. + */ + public void setUserID(String userID) { + this.userID = userID; + } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java =================================================================== diff -u -r3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java (.../McLearningStarterAction.java) (revision 3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java (.../McLearningStarterAction.java) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -290,17 +290,15 @@ if ((mode != null) && (mode.equals("author"))) { logger.debug("Author requests for a preview of the content."); - logger.debug("existing mcContent:" + mcContent); - - /* PREVIEW_ONLY for jsp*/ - //return (mapping.findForward(LOAD_LEARNER)); } /* by now, we know that the mode is either teacher or learner * check if the mode is teacher and request is for Learner Progress */ String userId=request.getParameter(USER_ID); logger.debug("userId: " + userId); + + if ((userId != null) && (mode.equals("teacher"))) { logger.debug("request is for learner progress"); @@ -367,8 +365,6 @@ return (mapping.findForward(DEFINE_LATER)); } - /*also prepare data into mapGeneralOptionsContent for combined answers view */ - /* * verify that userId does not already exist in the db. * If it does exist, that means, that user already responded to the content and @@ -390,6 +386,7 @@ } } + McQueUsr mcQueUsr=mcService.getMcUserBySession(new Long(userID), mcSession.getUid()); logger.debug("mcQueUsr:" + mcQueUsr); @@ -415,63 +412,57 @@ logger.debug("users learning mode is: " + mode); request.setAttribute(MC_LEARNER_STARTER_DTO, mcLearnerStarterDTO); - + + boolean viewSummaryRequested=false; /*if the user's session id AND user id exists in the tool tables go to redo questions.*/ if (mcQueUsr != null) { - Long sessionUid=mcQueUsr.getMcSessionId(); - logger.debug("users sessionUid: " + sessionUid); - McSession mcUserSession= mcService.getMcSessionByUID(sessionUid); - logger.debug("mcUserSession: " + mcUserSession); - String userSessionId=mcUserSession.getMcSessionId().toString(); - logger.debug("userSessionId: " + userSessionId); - - logger.debug("current toolSessionID: " + toolSessionID); - - if (toolSessionID.equals(userSessionId)) - { - logger.debug("the user's session id AND user id exists in the tool tables go to redo questions. " + toolSessionID + " mcQueUsr: " + - mcQueUsr + " user id: " + mcQueUsr.getQueUsrId()); - logger.debug("the learner has already responsed to this content, just generate a read-only report. Use redo questions for this."); - - boolean isRetries=mcContent.isRetries(); - logger.debug("isRetries: " + isRetries); - McLearningAction mcLearningAction= new McLearningAction(); - logger.debug("present to learner with previous attempts data"); + viewSummaryRequested=mcQueUsr.isViewSummaryRequested(); + logger.debug("viewSummaryRequested: " + viewSummaryRequested); + + if (viewSummaryRequested) + { + Long sessionUid=mcQueUsr.getMcSessionId(); + logger.debug("users sessionUid: " + sessionUid); + McSession mcUserSession= mcService.getMcSessionByUID(sessionUid); + logger.debug("mcUserSession: " + mcUserSession); + String userSessionId=mcUserSession.getMcSessionId().toString(); + logger.debug("userSessionId: " + userSessionId); - String sessionStatus=mcUserSession.getSessionStatus(); - logger.debug("sessionStatus: " +sessionStatus); - /*one limitation by design here is that once a user finishes the activity, subsequent users in the same group are also assumed finished - * since they belong to the same ungrouped activity and these users have the same tool session id*/ + logger.debug("current toolSessionID: " + toolSessionID); - boolean isResponseFinalised=mcQueUsr.isResponseFinalised(); - logger.debug("isResponseFinalised: " +isResponseFinalised); - - if (isResponseFinalised) + if (toolSessionID.equals(userSessionId)) { - mcLearningForm.setReportViewOnly(new Boolean(true).toString()); - } - else - { - mcLearningForm.setReportViewOnly(new Boolean(false).toString()); - } + logger.debug("the user's session id AND user id exists in the tool tables go to redo questions. " + toolSessionID + " mcQueUsr: " + + mcQueUsr + " user id: " + mcQueUsr.getQueUsrId()); + logger.debug("the learner has already responsed to this content, just generate a read-only report. Use redo questions for this."); + + boolean isRetries=mcContent.isRetries(); + logger.debug("isRetries: " + isRetries); + McLearningAction mcLearningAction= new McLearningAction(); + logger.debug("present to learner with previous attempts data"); + + String sessionStatus=mcUserSession.getSessionStatus(); + logger.debug("sessionStatus: " +sessionStatus); + /*one limitation by design here is that once a user finishes the activity, subsequent users in the same group are also assumed finished + * since they belong to the same ungrouped activity and these users have the same tool session id*/ + + boolean isResponseFinalised=mcQueUsr.isResponseFinalised(); + logger.debug("isResponseFinalised: " +isResponseFinalised); + + if (isResponseFinalised) + { + mcLearningForm.setReportViewOnly(new Boolean(true).toString()); + } + else + { + mcLearningForm.setReportViewOnly(new Boolean(false).toString()); + } - - /* - if (sessionStatus.equals(COMPLETED)) - { - mcLearningForm.setReportViewOnly(new Boolean(true).toString()); - } - else - { - mcLearningForm.setReportViewOnly(new Boolean(false).toString()); - } - */ - - - return mcLearningAction.viewAnswers(mapping, mcLearningForm, request, response); - } + return mcLearningAction.viewAnswers(mapping, mcLearningForm, request, response); + } + } } else if (mode.equals("teacher")) { @@ -533,6 +524,7 @@ } } + mcLearningForm.setUserID(userID); /* * process incoming tool session id and later derive toolContentId from it. Index: lams_tool_lamc/web/learning/AnswersContent.jsp =================================================================== diff -u -r0dccd4a293386449bfceb24e42179f9a7ad05f04 -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/web/learning/AnswersContent.jsp (.../AnswersContent.jsp) (revision 0dccd4a293386449bfceb24e42179f9a7ad05f04) +++ lams_tool_lamc/web/learning/AnswersContent.jsp (.../AnswersContent.jsp) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -60,7 +60,8 @@ - + + Index: lams_tool_lamc/web/learning/IndividualLearnerResults.jsp =================================================================== diff -u -r3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/web/learning/IndividualLearnerResults.jsp (.../IndividualLearnerResults.jsp) (revision 3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d) +++ lams_tool_lamc/web/learning/IndividualLearnerResults.jsp (.../IndividualLearnerResults.jsp) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -51,7 +51,8 @@ - + + Index: lams_tool_lamc/web/learning/RedoQuestions.jsp =================================================================== diff -u -r0dccd4a293386449bfceb24e42179f9a7ad05f04 -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/web/learning/RedoQuestions.jsp (.../RedoQuestions.jsp) (revision 0dccd4a293386449bfceb24e42179f9a7ad05f04) +++ lams_tool_lamc/web/learning/RedoQuestions.jsp (.../RedoQuestions.jsp) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -52,6 +52,7 @@ + Index: lams_tool_lamc/web/learning/ResultsSummary.jsp =================================================================== diff -u -r0dccd4a293386449bfceb24e42179f9a7ad05f04 -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/web/learning/ResultsSummary.jsp (.../ResultsSummary.jsp) (revision 0dccd4a293386449bfceb24e42179f9a7ad05f04) +++ lams_tool_lamc/web/learning/ResultsSummary.jsp (.../ResultsSummary.jsp) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -52,6 +52,7 @@ + Index: lams_tool_lamc/web/learning/ViewAnswers.jsp =================================================================== diff -u -r3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d -r51cec6d26c1b76f99d5c1cdcff04da5b48731de5 --- lams_tool_lamc/web/learning/ViewAnswers.jsp (.../ViewAnswers.jsp) (revision 3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d) +++ lams_tool_lamc/web/learning/ViewAnswers.jsp (.../ViewAnswers.jsp) (revision 51cec6d26c1b76f99d5c1cdcff04da5b48731de5) @@ -52,6 +52,7 @@ +