Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r5bcac6182758458fcd994b9bda8c6620a9493265 -rbfc093eb87907e66a284fd1c30cf0f212122f706 Binary files differ Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/gradebook/GradebookUserActivityArchive.hbm.xml =================================================================== diff -u -r8daec7e047f7ea8404c6f16218b63a8e855a15b2 -rbfc093eb87907e66a284fd1c30cf0f212122f706 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/gradebook/GradebookUserActivityArchive.hbm.xml (.../GradebookUserActivityArchive.hbm.xml) (revision 8daec7e047f7ea8404c6f16218b63a8e855a15b2) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/gradebook/GradebookUserActivityArchive.hbm.xml (.../GradebookUserActivityArchive.hbm.xml) (revision bfc093eb87907e66a284fd1c30cf0f212122f706) @@ -77,5 +77,13 @@ insert="true" column="update_date" /> + + \ No newline at end of file Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/gradebook/GradebookUserLessonArchive.hbm.xml =================================================================== diff -u -r8daec7e047f7ea8404c6f16218b63a8e855a15b2 -rbfc093eb87907e66a284fd1c30cf0f212122f706 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/gradebook/GradebookUserLessonArchive.hbm.xml (.../GradebookUserLessonArchive.hbm.xml) (revision 8daec7e047f7ea8404c6f16218b63a8e855a15b2) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/gradebook/GradebookUserLessonArchive.hbm.xml (.../GradebookUserLessonArchive.hbm.xml) (revision bfc093eb87907e66a284fd1c30cf0f212122f706) @@ -60,5 +60,13 @@ column="feedback" length="65535" /> + + \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20180628.sql =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20180628.sql (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20180628.sql (revision bfc093eb87907e66a284fd1c30cf0f212122f706) @@ -0,0 +1,18 @@ +-- 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-4609 Bind archived activity marks in batches +DELETE FROM lams_gradebook_user_activity_archive; +DELETE FROM lams_gradebook_user_lesson_archive; + +ALTER TABLE lams_gradebook_user_lesson_archive ADD COLUMN archive_date DATETIME; +ALTER TABLE lams_gradebook_user_activity_archive ADD COLUMN archive_date DATETIME; + +----------------------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; \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/gradebook/GradebookUserActivityArchive.java =================================================================== diff -u -r8daec7e047f7ea8404c6f16218b63a8e855a15b2 -rbfc093eb87907e66a284fd1c30cf0f212122f706 --- lams_common/src/java/org/lamsfoundation/lams/gradebook/GradebookUserActivityArchive.java (.../GradebookUserActivityArchive.java) (revision 8daec7e047f7ea8404c6f16218b63a8e855a15b2) +++ lams_common/src/java/org/lamsfoundation/lams/gradebook/GradebookUserActivityArchive.java (.../GradebookUserActivityArchive.java) (revision bfc093eb87907e66a284fd1c30cf0f212122f706) @@ -28,26 +28,27 @@ import org.lamsfoundation.lams.usermanagement.User; public class GradebookUserActivityArchive { - private long uid; private ToolActivity activity; private User learner; private Double mark; private String feedback; private Boolean markedInGradebook; private Date updateDate; + private Date archiveDate; public GradebookUserActivityArchive() { } - public GradebookUserActivityArchive(GradebookUserActivity source) { + public GradebookUserActivityArchive(GradebookUserActivity source, Date archiveDate) { this.uid = source.getUid(); this.activity = source.getActivity(); this.learner = source.getLearner(); this.mark = source.getMark(); this.feedback = source.getFeedback(); this.markedInGradebook = source.getMarkedInGradebook(); this.updateDate = source.getUpdateDate(); + this.archiveDate = archiveDate; } public long getUid() { @@ -105,4 +106,12 @@ public void setUpdateDate(Date updateDate) { this.updateDate = updateDate; } + + public Date getArchiveDate() { + return archiveDate; + } + + public void setArchiveDate(Date archiveDate) { + this.archiveDate = archiveDate; + } } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/gradebook/GradebookUserLessonArchive.java =================================================================== diff -u -r8daec7e047f7ea8404c6f16218b63a8e855a15b2 -rbfc093eb87907e66a284fd1c30cf0f212122f706 --- lams_common/src/java/org/lamsfoundation/lams/gradebook/GradebookUserLessonArchive.java (.../GradebookUserLessonArchive.java) (revision 8daec7e047f7ea8404c6f16218b63a8e855a15b2) +++ lams_common/src/java/org/lamsfoundation/lams/gradebook/GradebookUserLessonArchive.java (.../GradebookUserLessonArchive.java) (revision bfc093eb87907e66a284fd1c30cf0f212122f706) @@ -22,6 +22,8 @@ package org.lamsfoundation.lams.gradebook; +import java.util.Date; + import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.usermanagement.User; @@ -31,16 +33,18 @@ private User learner; private Double mark; private String feedback; + private Date archiveDate; public GradebookUserLessonArchive() { } - public GradebookUserLessonArchive(GradebookUserLesson source) { + public GradebookUserLessonArchive(GradebookUserLesson source, Date archiveDate) { this.uid = source.getUid(); this.lesson = source.getLesson(); this.learner = source.getLearner(); this.mark = source.getMark(); this.feedback = source.getFeedback(); + this.archiveDate = archiveDate; } public long getUid() { @@ -82,4 +86,12 @@ public void setFeedback(String feedback) { this.feedback = feedback; } + + public Date getArchiveDate() { + return archiveDate; + } + + public void setArchiveDate(Date archiveDate) { + this.archiveDate = archiveDate; + } } \ No newline at end of file Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java =================================================================== diff -u -r2485ce33e55a921bdcde94e4f242da5da3cf1fc4 -rbfc093eb87907e66a284fd1c30cf0f212122f706 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 2485ce33e55a921bdcde94e4f242da5da3cf1fc4) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision bfc093eb87907e66a284fd1c30cf0f212122f706) @@ -1800,21 +1800,22 @@ @Override public void archiveLearnerMarks(Long lessonId, Integer learnerId) { + Date archiveDate = new Date(); if (logger.isDebugEnabled()) { - logger.debug( - "Archiving activity and lesson entries for learner ID " + learnerId + " and lesson ID " + lessonId); + logger.debug("Archiving activity and lesson entries for learner ID " + learnerId + " and lesson ID " + + lessonId + " with archive date " + archiveDate); } Lesson lesson = getLessonService().getLesson(lessonId); List activities = getLessonActivitiesForLearner(lesson, learnerId); for (ToolActivity activity : activities) { GradebookUserActivity gradebookUserActivity = getGradebookUserActivity(activity.getActivityId(), learnerId); if (gradebookUserActivity != null) { - gradebookDAO.insert(new GradebookUserActivityArchive(gradebookUserActivity)); + gradebookDAO.insert(new GradebookUserActivityArchive(gradebookUserActivity, archiveDate)); } } GradebookUserLesson gradebookUserLesson = getGradebookUserLesson(lesson.getLessonId(), learnerId); if (gradebookUserLesson != null) { - gradebookDAO.insert(new GradebookUserLessonArchive(gradebookUserLesson)); + gradebookDAO.insert(new GradebookUserLessonArchive(gradebookUserLesson, archiveDate)); } }