Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/action/McLearningAction.java =================================================================== diff -u -r3c88fe83de7aaf7bd9dbe9ea6e1cb0e43d099ffa -rb59caadeddd933fa728db459c8ff96f04f398a58 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/action/McLearningAction.java (.../McLearningAction.java) (revision 3c88fe83de7aaf7bd9dbe9ea6e1cb0e43d099ffa) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/action/McLearningAction.java (.../McLearningAction.java) (revision b59caadeddd933fa728db459c8ff96f04f398a58) @@ -23,6 +23,7 @@ package org.lamsfoundation.lams.tool.mc.web.action; import java.io.IOException; +import java.util.Date; import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -621,6 +622,7 @@ if (notebookEntry != null) { notebookEntry.setEntry(reflectionEntry); + notebookEntry.setLastModified(new Date()); mcService.updateEntry(notebookEntry); } else { mcService.createNotebookEntry(new Long(toolSessionID), CoreNotebookConstants.NOTEBOOK_TOOL, Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/action/QaLearningAction.java =================================================================== diff -u -r729f1d10a1efd78ec420b373a7af23ee66ec3454 -rb59caadeddd933fa728db459c8ff96f04f398a58 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/action/QaLearningAction.java (.../QaLearningAction.java) (revision 729f1d10a1efd78ec420b373a7af23ee66ec3454) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/action/QaLearningAction.java (.../QaLearningAction.java) (revision b59caadeddd933fa728db459c8ff96f04f398a58) @@ -71,7 +71,6 @@ import org.lamsfoundation.lams.tool.qa.util.QaComparator; import org.lamsfoundation.lams.tool.qa.util.QaStringComparator; import org.lamsfoundation.lams.tool.qa.web.form.QaLearningForm; -import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.util.ValidationUtil; @@ -758,75 +757,6 @@ return null; } - public ActionForward updateReflection(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) throws IOException, ServletException, ToolException { - initializeQAService(); - QaLearningForm qaLearningForm = (QaLearningForm) form; - - LearningUtil.saveFormRequestData(request, qaLearningForm); - - String httpSessionID = qaLearningForm.getHttpSessionID(); - - qaLearningForm.setHttpSessionID(httpSessionID); - - String toolSessionID = request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); - qaLearningForm.setToolSessionID(toolSessionID); - - String userID = request.getParameter("userID"); - qaLearningForm.setUserID(userID); - - QaSession qaSession = QaLearningAction.qaService.getSessionById(new Long(toolSessionID).longValue()); - - QaContent qaContent = qaSession.getQaContent(); - - QaQueUsr qaQueUsr = QaLearningAction.qaService.getUserByIdAndSession(new Long(userID), - qaSession.getQaSessionId()); - - String entryText = request.getParameter("entryText"); - qaLearningForm.setEntryText(entryText); - - NotebookEntry notebookEntryLocal = new NotebookEntry(); - notebookEntryLocal.setEntry(entryText); - // notebookEntry.setUser(qaQueUsr); - User user = new User(); - user.setUserId(new Integer(userID)); - notebookEntryLocal.setUser(user); - - QaLearningAction.qaService.updateEntry(notebookEntryLocal); - - GeneralLearnerFlowDTO generalLearnerFlowDTO = LearningUtil.buildGeneralLearnerFlowDTO(qaService, qaContent); - - generalLearnerFlowDTO.setNotebookEntry(entryText); - generalLearnerFlowDTO.setRequestLearningReportProgress(new Boolean(true).toString()); - - QaLearningAction.refreshSummaryData(request, qaContent, qaSession, QaLearningAction.qaService, httpSessionID, qaQueUsr, - generalLearnerFlowDTO); - - boolean isLearnerFinished = qaQueUsr.isLearnerFinished(); - generalLearnerFlowDTO.setRequestLearningReportViewOnly(new Boolean(isLearnerFinished).toString()); - - boolean lockWhenFinished = qaContent.isLockWhenFinished(); - generalLearnerFlowDTO.setLockWhenFinished(new Boolean(lockWhenFinished).toString()); - - boolean allowRichEditor = qaContent.isAllowRichEditor(); - generalLearnerFlowDTO.setAllowRichEditor(new Boolean(allowRichEditor).toString()); - - boolean useSelectLeaderToolOuput = qaContent.isUseSelectLeaderToolOuput(); - generalLearnerFlowDTO.setUseSelectLeaderToolOuput(new Boolean(useSelectLeaderToolOuput).toString()); - - NotebookEntry notebookEntry = QaLearningAction.qaService.getEntry(new Long(toolSessionID), - CoreNotebookConstants.NOTEBOOK_TOOL, QaAppConstants.MY_SIGNATURE, new Integer(userID)); - - if (notebookEntry != null) { - // String notebookEntryPresentable = QaUtils.replaceNewLines(notebookEntry.getEntry()); - qaLearningForm.setEntryText(notebookEntry.getEntry()); - } - - request.setAttribute(QaAppConstants.GENERAL_LEARNER_FLOW_DTO, generalLearnerFlowDTO); - - return (mapping.findForward(QaAppConstants.REVISITED_LEARNER_REP)); - } - /** * * @param mapping @@ -849,17 +779,32 @@ qaLearningForm.setHttpSessionID(httpSessionID); - String toolSessionID = request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); - qaLearningForm.setToolSessionID(toolSessionID); + String toolSessionIDString = request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); + qaLearningForm.setToolSessionID(toolSessionIDString); + Long toolSessionID = new Long(toolSessionIDString); + + String userIDString = request.getParameter("userID"); + qaLearningForm.setUserID(userIDString); + Integer userID = new Integer(userIDString); - String userID = request.getParameter("userID"); - qaLearningForm.setUserID(userID); - String reflectionEntry = request.getParameter(QaAppConstants.ENTRY_TEXT); - QaLearningAction.qaService.createNotebookEntry(new Long(toolSessionID), CoreNotebookConstants.NOTEBOOK_TOOL, - QaAppConstants.MY_SIGNATURE, new Integer(userID), reflectionEntry); + // check for existing notebook entry + NotebookEntry entry = QaLearningAction.qaService.getEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, + MY_SIGNATURE, userID); + if (entry == null) { + // create new entry + QaLearningAction.qaService.createNotebookEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, + QaAppConstants.MY_SIGNATURE, userID, reflectionEntry); + + } else { + // update existing entry + entry.setEntry(reflectionEntry); + entry.setLastModified(new Date()); + QaLearningAction.qaService.updateEntry(entry); + } + qaLearningForm.resetUserActions(); /* resets all except submitAnswersContent */ return endLearning(mapping, form, request, response); } Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/IVoteService.java =================================================================== diff -u -r571d64337ed3fb6a9733a5214180fd4a5c6d6292 -rb59caadeddd933fa728db459c8ff96f04f398a58 --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/IVoteService.java (.../IVoteService.java) (revision 571d64337ed3fb6a9733a5214180fd4a5c6d6292) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/IVoteService.java (.../IVoteService.java) (revision b59caadeddd933fa728db459c8ff96f04f398a58) @@ -242,6 +242,8 @@ NotebookEntry getEntry(Long id, Integer idType, String signature, Integer userID); + void updateEntry(NotebookEntry notebookEntry); + void removeQuestionsFromCache(VoteContent voteContent); void removeVoteContentFromCache(VoteContent voteContent); Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java =================================================================== diff -u -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 -rb59caadeddd933fa728db459c8ff96f04f398a58 --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java (.../VoteService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java (.../VoteService.java) (revision b59caadeddd933fa728db459c8ff96f04f398a58) @@ -1680,6 +1680,11 @@ } @Override + public void updateEntry(NotebookEntry notebookEntry) { + coreNotebookService.updateEntry(notebookEntry); + } + + @Override public List getAllQuestionsSorted(final long voteContentId) { return voteQueContentDAO.getAllQuestionsSorted(voteContentId); } Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/action/LearningAction.java =================================================================== diff -u -r571d64337ed3fb6a9733a5214180fd4a5c6d6292 -rb59caadeddd933fa728db459c8ff96f04f398a58 --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/action/LearningAction.java (.../LearningAction.java) (revision 571d64337ed3fb6a9733a5214180fd4a5c6d6292) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/action/LearningAction.java (.../LearningAction.java) (revision b59caadeddd933fa728db459c8ff96f04f398a58) @@ -559,20 +559,32 @@ repopulateRequestParameters(request, voteLearningForm); IVoteService voteService = VoteServiceProxy.getVoteService(getServlet().getServletContext()); - String toolSessionID = request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); - logger.info("Tool Session Id" + toolSessionID); - voteLearningForm.setToolSessionID(toolSessionID); + String toolSessionIDString = request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); + voteLearningForm.setToolSessionID(toolSessionIDString); + Long toolSessionID = new Long(toolSessionIDString); - String userID = request.getParameter("userID"); - logger.info("User Id:" + userID); - voteLearningForm.setUserID(userID); + String userIDString = request.getParameter("userID"); + voteLearningForm.setUserID(userIDString); + Integer userID = new Integer(userIDString); String reflectionEntry = request.getParameter(ENTRY_TEXT); - logger.info("reflection entry: " + reflectionEntry); - voteService.createNotebookEntry(new Long(toolSessionID), CoreNotebookConstants.NOTEBOOK_TOOL, MY_SIGNATURE, - new Integer(userID), reflectionEntry); + // check for existing notebook entry + NotebookEntry entry = voteService.getEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, + MY_SIGNATURE, userID); + if (entry == null) { + // create new entry + voteService.createNotebookEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, MY_SIGNATURE, + userID, reflectionEntry); + } else { + // update existing entry + entry.setEntry(reflectionEntry); + entry.setLastModified(new Date()); + voteService.updateEntry(entry); + } + + voteLearningForm.resetUserActions(); /* resets all except submitAnswersContent */ return learnerFinished(mapping, form, request, response); }