Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/AuthoringController.java =================================================================== diff -u -r69448cd1b22b367f5221efed0730303edc27404c -rf46547f428248b90283a77617357314fb0767cba --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 69448cd1b22b367f5221efed0730303edc27404c) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f46547f428248b90283a77617357314fb0767cba) @@ -327,6 +327,18 @@ newQuestions, oldReferences, newReferences); } + // Handle question references + assessmentPO.setQuestionReferences(newReferences); + + // ************************* Handle assessment overall feedbacks ******************* + TreeSet overallFeedbackList = getOverallFeedbacksFromForm(request, true); + assessmentPO.setOverallFeedbacks(overallFeedbackList); + + // ********************************************** + // finally persist assessmentPO again + service.saveOrUpdateAssessment(assessmentPO); + assessmentForm.setAssessment(assessmentPO); + // delete References from database List deletedReferences = getDeletedQuestionReferences(sessionMap); Iterator iterRef = deletedReferences.iterator(); @@ -349,19 +361,6 @@ } } - // Handle question references - assessmentPO.setQuestionReferences(newReferences); - - // ************************* Handle assessment overall feedbacks ******************* - TreeSet overallFeedbackList = getOverallFeedbacksFromForm(request, true); - assessmentPO.setOverallFeedbacks(overallFeedbackList); - - // ********************************************** - // finally persist assessmentPO again - service.saveOrUpdateAssessment(assessmentPO); - - assessmentForm.setAssessment(assessmentPO); - request.setAttribute(CommonConstants.LAMS_AUTHORING_SUCCESS_FLAG, Boolean.TRUE); request.setAttribute(AssessmentConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); return "pages/authoring/authoring"; Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/AuthoringController.java =================================================================== diff -u -r23980a8cbd4e0d8d4e0b7ac4ad02e510d5653b75 -rf46547f428248b90283a77617357314fb0767cba --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 23980a8cbd4e0d8d4e0b7ac4ad02e510d5653b75) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f46547f428248b90283a77617357314fb0767cba) @@ -241,17 +241,14 @@ // get back sessionMAP SessionMap sessionMap = (SessionMap) request.getSession() .getAttribute(authoringForm.getSessionMapID()); - ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); - Scratchie scratchie = authoringForm.getScratchie(); // **********************************Get Scratchie PO********************* Scratchie scratchiePO = scratchieService.getScratchieByContentId(authoringForm.getScratchie().getContentId()); - Set oldItems = null; - //allow using old and modified questions and references altogether + Set oldItems = null; if (mode.isTeacher()) { oldItems = (scratchiePO == null) ? new HashSet<>() : scratchiePO.getScratchieItems(); } @@ -316,6 +313,11 @@ } scratchiePO.setScratchieItems(items); + // ********************************************** + // finally persist scratchiePO again + scratchieService.saveOrUpdateScratchie(scratchiePO); + authoringForm.setScratchie(scratchiePO); + //recalculate results in case content is edited from monitoring List deletedItems = getDeletedItemList(sessionMap); if (mode.isTeacher()) { @@ -332,12 +334,6 @@ } } - // ********************************************** - // finally persist scratchiePO again - scratchieService.saveOrUpdateScratchie(scratchiePO); - - authoringForm.setScratchie(scratchiePO); - request.setAttribute(CommonConstants.LAMS_AUTHORING_SUCCESS_FLAG, Boolean.TRUE); request.setAttribute(AttributeNames.ATTR_MODE, mode.toString());