Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java =================================================================== diff -u -re044a561b88b3eb68dc50846451a30d258108e0f -r7ad2323d78099d17d6df1936bd1bdabd89483db5 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java (.../LearningAction.java) (revision e044a561b88b3eb68dc50846451a30d258108e0f) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java (.../LearningAction.java) (revision 7ad2323d78099d17d6df1936bd1bdabd89483db5) @@ -153,7 +153,7 @@ sessionMap.put(SpreadsheetConstants.ATTR_RESOURCE_INSTRUCTION,spreadsheet.getInstructions()); sessionMap.put(SpreadsheetConstants.ATTR_FINISH_LOCK, lock); sessionMap.put(SpreadsheetConstants.ATTR_LOCK_ON_FINISH, spreadsheet.getLockWhenFinished()); - sessionMap.put(SpreadsheetConstants.ATTR_USER_FINISHED, spreadsheetUser !=null && spreadsheetUser.isSessionFinished()); + sessionMap.put(SpreadsheetConstants.ATTR_USER_FINISHED, spreadsheetUser != null && spreadsheetUser.isSessionFinished()); sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID,sessionId); sessionMap.put(AttributeNames.ATTR_MODE,mode); @@ -240,12 +240,13 @@ //get mode and ToolSessionID from sessionMAP ToolAccessMode mode = (ToolAccessMode) sessionMap.get(AttributeNames.ATTR_MODE); Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); + boolean userFinished = (Boolean) sessionMap.get(SpreadsheetConstants.ATTR_USER_FINISHED); //save learner changes in spreadsheet if such option is activated in spreadsheet ISpreadsheetService service = getSpreadsheetService(); Spreadsheet spreadsheet = (Spreadsheet) sessionMap.get(SpreadsheetConstants.ATTR_RESOURCE); Spreadsheet spreadsheetPO = service.getSpreadsheetByContentId(spreadsheet.getContentId()); - if(spreadsheetPO.isLearnerAllowedToSave() && !mode.isTeacher()){ + if(spreadsheetPO.isLearnerAllowedToSave() && !mode.isTeacher() && !(spreadsheet.getLockWhenFinished() && userFinished)){ SpreadsheetUser spreadsheetUser = getCurrentUser(service,sessionId); UserModifiedSpreadsheet userModifiedSpreadsheet = new UserModifiedSpreadsheet(); Index: lams_tool_spreadsheet/web/pages/learning/learning.jsp =================================================================== diff -u -ra7fed1be51941ace379dbb695d52bd08a315dae6 -r7ad2323d78099d17d6df1936bd1bdabd89483db5 --- lams_tool_spreadsheet/web/pages/learning/learning.jsp (.../learning.jsp) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) +++ lams_tool_spreadsheet/web/pages/learning/learning.jsp (.../learning.jsp) (revision 7ad2323d78099d17d6df1936bd1bdabd89483db5) @@ -127,7 +127,7 @@ scrolling="no"> - +