Index: lams_tool_laqa/conf/hibernate/mappings/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml =================================================================== diff -u -r229b32d50e848e3b5377fdbc8ac8af6d60c1e79b -r13a1c855ce1ee5275acdb0324aa93a26be58eb51 --- lams_tool_laqa/conf/hibernate/mappings/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml (.../QaContent.hbm.xml) (revision 229b32d50e848e3b5377fdbc8ac8af6d60c1e79b) +++ lams_tool_laqa/conf/hibernate/mappings/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml (.../QaContent.hbm.xml) (revision 13a1c855ce1ee5275acdb0324aa93a26be58eb51) @@ -82,6 +82,14 @@ column="submission_deadline" length="10" /> + + sessionMap = (SessionMap) request.getSession() + .getAttribute(httpSessionID); /*recreate the users and responses*/ qaLearningForm.resetUserActions(); @@ -480,9 +481,17 @@ qaLearningForm.resetAll(); - boolean lockWhenFinished = qaContent.isLockWhenFinished(); - generalLearnerFlowDTO.setLockWhenFinished(new Boolean(lockWhenFinished).toString()); - generalLearnerFlowDTO.setNoReeditAllowed(qaContent.isNoReeditAllowed()); + boolean lockWhenFinished; + boolean noReeditAllowed; + if (sessionMap.get("noRefresh") != null && (boolean)sessionMap.get("noRefresh")) { + lockWhenFinished = true; + noReeditAllowed = true; + } else { + lockWhenFinished = qaContent.isLockWhenFinished(); + noReeditAllowed = qaContent.isNoReeditAllowed(); + } + generalLearnerFlowDTO.setLockWhenFinished(new Boolean(noReeditAllowed).toString()); + generalLearnerFlowDTO.setNoReeditAllowed(lockWhenFinished); boolean allowRichEditor = qaContent.isAllowRichEditor(); generalLearnerFlowDTO.setAllowRichEditor(new Boolean(allowRichEditor).toString()); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java =================================================================== diff -u -r4a0fc3154fcad280ce5762cc902c98594a3648aa -r13a1c855ce1ee5275acdb0324aa93a26be58eb51 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java (.../QaLearningStarterAction.java) (revision 4a0fc3154fcad280ce5762cc902c98594a3648aa) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java (.../QaLearningStarterAction.java) (revision 13a1c855ce1ee5275acdb0324aa93a26be58eb51) @@ -307,7 +307,34 @@ // calculate whether submission deadline has passed, and if so forward to "submissionDeadline" if (currentLearnerDate.after(tzSubmissionDeadline)) { - return mapping.findForward("submissionDeadline"); + + //if ShowOtherAnswersAfterDeadline is enabled - show others answers + if (qaContent.isShowOtherAnswersAfterDeadline()) { + generalLearnerFlowDTO.setLockWhenFinished(Boolean.TRUE.toString()); + generalLearnerFlowDTO.setNoReeditAllowed(true); + //only for ActionForward refreshAllResults(..) method + sessionMap.put("noRefresh", true); + /* + * the report should have all the users' entries OR the report should have only the current + * session's entries + */ + generalLearnerFlowDTO.setRequestLearningReport(new Boolean(true).toString()); + + QaLearningAction.refreshSummaryData(request, qaContent, qaService, sessionMapId, user, + generalLearnerFlowDTO); + + if (user.isLearnerFinished()) { + generalLearnerFlowDTO.setRequestLearningReportViewOnly(new Boolean(true).toString()); + return (mapping.findForward(REVISITED_LEARNER_REP)); + } else { + generalLearnerFlowDTO.setRequestLearningReportViewOnly(new Boolean(false).toString()); + return (mapping.findForward(LEARNER_REP)); + } + + // show submissionDeadline page otherwise + } else { + return mapping.findForward("submissionDeadline"); + } } } @@ -425,4 +452,4 @@ } return qaUser; } -} +} \ No newline at end of file Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java =================================================================== diff -u -r154d89ad4f8062f0f04705c56c8d232e7d855c7a -r13a1c855ce1ee5275acdb0324aa93a26be58eb51 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java (.../QaMonitoringAction.java) (revision 154d89ad4f8062f0f04705c56c8d232e7d855c7a) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java (.../QaMonitoringAction.java) (revision 13a1c855ce1ee5275acdb0324aa93a26be58eb51) @@ -123,13 +123,40 @@ UserDTO teacher = (UserDTO) ss.getAttribute(AttributeNames.USER); TimeZone teacherTimeZone = teacher.getTimeZone(); tzSubmissionDeadline = DateUtil.convertFromTimeZoneToDefault(teacherTimeZone, submissionDeadline); + + } else { + //set showOtherAnswersAfterDeadline to false + content.setShowOtherAnswersAfterDeadline(false); } content.setSubmissionDeadline(tzSubmissionDeadline); qaService.saveOrUpdateQaContent(content); return null; } + + /** + * Set Submission Deadline + * + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + public ActionForward setShowOtherAnswersAfterDeadline(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + IQaService qaService = getQAService(); + + Long contentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + QaContent content = qaService.getQaContent(contentID); + + boolean showOtherAnswersAfterDeadline = WebUtil.readBooleanParam(request, QaAppConstants.PARAM_SHOW_OTHER_ANSWERS_AFTER_DEADLINE); + content.setShowOtherAnswersAfterDeadline(showOtherAnswersAfterDeadline); + qaService.saveOrUpdateQaContent(content); + return null; + } + private IQaService getQAService() { return QaServiceProxy.getQaService(getServlet().getServletContext()); } Index: lams_tool_laqa/web/monitoring/dateRestriction.jsp =================================================================== diff -u -rcd0b7b82232971e95d54348b03049beb1dfe0ecb -r13a1c855ce1ee5275acdb0324aa93a26be58eb51 --- lams_tool_laqa/web/monitoring/dateRestriction.jsp (.../dateRestriction.jsp) (revision cd0b7b82232971e95d54348b03049beb1dfe0ecb) +++ lams_tool_laqa/web/monitoring/dateRestriction.jsp (.../dateRestriction.jsp) (revision 13a1c855ce1ee5275acdb0324aa93a26be58eb51) @@ -1,5 +1,43 @@ <%@include file="/common/taglibs.jsp"%> + + @@ -22,7 +60,7 @@ - + @@ -35,9 +73,19 @@ - + + + + disabled="disabled" + checked="checked" + /> + + + + - \ No newline at end of file +