Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java =================================================================== diff -u -r7fd19e98ed4243d9308a3de32c66c765dc78b886 -rd5ad6adb4fbe6e3ddc3a6cda5f73a74ec4cd4f26 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision 7fd19e98ed4243d9308a3de32c66c765dc78b886) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision d5ad6adb4fbe6e3ddc3a6cda5f73a74ec4cd4f26) @@ -777,13 +777,20 @@ Integer oldMark = userAttempt.getMark(); int oldTotalMark = mcUsrAttemptDAO.getUserTotalMark(userUid); + int totalMark = (oldMark == null) ? oldTotalMark + newMark : (oldTotalMark - oldMark) + newMark; + + //update mark for one particular question userAttempt.setMark(newMark); mcUsrAttemptDAO.saveMcUsrAttempt(userAttempt); + + //update user's total mark + McQueUsr user = userAttempt.getMcQueUsr(); + user.setLastAttemptTotalMark(totalMark); + updateMcQueUsr(user); // propagade changes to Gradebook - int totalMark = (oldMark == null) ? oldTotalMark + newMark : (oldTotalMark - oldMark) + newMark; gradebookService.updateActivityMark(new Double(totalMark), null, userId, toolSessionId, false); - + // record mark change with audit service auditService.logMarkChange(McAppConstants.MY_SIGNATURE, userAttempt.getMcQueUsr().getQueUsrId(), userAttempt.getMcQueUsr().getUsername(), "" + oldMark, "" + totalMark);