Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java =================================================================== diff -u -r138a8368bb147b0fb478c02a5a9f4a6fb326b51b -re3a218766d0bf55858ca4799f42318767389ec7f --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java (.../QaLearningAction.java) (revision 138a8368bb147b0fb478c02a5a9f4a6fb326b51b) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java (.../QaLearningAction.java) (revision e3a218766d0bf55858ca4799f42318767389ec7f) @@ -177,16 +177,16 @@ 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); @@ -362,10 +362,6 @@ 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); @@ -398,7 +394,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) {