Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java =================================================================== diff -u -rfc002dfed5f5281ceaf6a525ad1f9f25774bfb58 -re0aac9cd857044545722f389570725a9d33baf4e --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java (.../QaLearningAction.java) (revision fc002dfed5f5281ceaf6a525ad1f9f25774bfb58) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java (.../QaLearningAction.java) (revision e0aac9cd857044545722f389570725a9d33baf4e) @@ -177,18 +177,18 @@ mapAnswersPresentable = (Map) sessionMap.get(QaAppConstants.MAP_ALL_RESULTS_KEY); mapAnswersPresentable = QaLearningAction.removeNewLinesMap(mapAnswersPresentable); } - - if (!errors.isEmpty()) { + + //finalize response so user won't need to edit his answers again, if coming back to the activity after leaving activity at this point + if (errors.isEmpty()) { + qaQueUsr.setResponseFinalized(true); + QaLearningAction.qaService.updateUser(qaQueUsr); + + //in case of errors - prompt learner to enter answers again + } else { saveErrors(request, errors); forwardName = QaAppConstants.LOAD_LEARNER; } - //in case noReeditAllowed finalize response so user can't refresh the page and post answers again - if (errors.isEmpty() && qaContent.isNoReeditAllowed()) { - qaQueUsr.setResponseFinalized(true); - QaLearningAction.qaService.updateUser(qaQueUsr); - } - generalLearnerFlowDTO.setMapAnswers(mapAnswers); generalLearnerFlowDTO.setMapAnswersPresentable(mapAnswersPresentable); @@ -363,12 +363,8 @@ QaQueUsr user = QaLearningAction.qaService.getUserByIdAndSession(new Long(userID), new Long(toolSessionID)); QaSession qaSession = QaLearningAction.qaService.getSessionById(new Long(toolSessionID).longValue()); QaContent qaContent = qaSession.getQaContent(); - + // LearningUtil.storeResponses(mapAnswers, qaService, toolContentID, new Long(toolSessionID)); - // mark response as finalised - QaQueUsr qaQueUsr = getCurrentUser(toolSessionID); - qaQueUsr.setResponseFinalized(true); - QaLearningAction.qaService.updateUser(qaQueUsr); qaLearningForm.resetUserActions(); qaLearningForm.setSubmitAnswersContent(null); @@ -401,7 +397,7 @@ generalLearnerFlowDTO.setAllowRateAnswers(new Boolean(qaContent.isAllowRateAnswers()).toString()); - generalLearnerFlowDTO.setUserUid(qaQueUsr.getQueUsrId().toString()); + generalLearnerFlowDTO.setUserUid(user.getQueUsrId().toString()); int sessionUserCount = 0; if (qaSession.getQaQueUsers() != null) {