Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20210927.sql =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20210927.sql (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20210927.sql (revision 311592201076cbd35231d16a61b8f558fd5261bd) @@ -0,0 +1,16 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +-- Put all sql statements below here + +--LDEV-4288 Prevent duplicate entries + +ALTER TABLE lams_gradebook_user_activity DROP KEY activity_id, + ADD UNIQUE KEY UQ_lams_gradebook_user_activity_1 (activity_id, user_id); + +-- Put all sql statements above here + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolActivity.java =================================================================== diff -u -r423858087ec4d185fb33c3f569fc7ede1d43001a -r311592201076cbd35231d16a61b8f558fd5261bd --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolActivity.java (.../ToolActivity.java) (revision 423858087ec4d185fb33c3f569fc7ede1d43001a) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolActivity.java (.../ToolActivity.java) (revision 311592201076cbd35231d16a61b8f558fd5261bd) @@ -128,18 +128,6 @@ newToolActivity.setEvaluation(newEvaluation); } - Set newGradebookUserActivities = new HashSet<>(); - if (this.gradebookUserActivities != null) { - for (GradebookUserActivity gradebookAct : this.gradebookUserActivities) { - GradebookUserActivity newGradebookAct = new GradebookUserActivity(); - newGradebookAct.setActivity(newToolActivity); - newGradebookAct.setLearner(gradebookAct.getLearner()); - newGradebookAct.setMark(gradebookAct.getMark()); - newGradebookAct.setUpdateDate(gradebookAct.getUpdateDate()); - } - } - newToolActivity.setGradebookUserActivities(newGradebookUserActivities); - if (this.plannerMetadata != null) { PedagogicalPlannerActivityMetadata plannerMetadata = this.plannerMetadata.clone(); plannerMetadata.setActivity(newToolActivity);