Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java,v diff -u -r1.107 -r1.108 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 22 Jan 2014 14:10:54 -0000 1.107 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 27 Jan 2014 14:17:00 -0000 1.108 @@ -75,7 +75,7 @@ public Lesson initializeLessonWithoutLDcopy(String lessonName, String lessonDescription, long learningDesignID, User user, String customCSV, Boolean enableLessonIntro, Boolean displayDesignImage, Boolean learnerExportAvailable, Boolean learnerPresenceAvailable, Boolean learnerImAvailable, - Boolean liveEditEnabled, Boolean enableLessonNotifications, Integer scheduledNumberDaysToLessonFinish, + Boolean liveEditEnabled, Boolean enableLessonNotifications, Boolean learnerRestart, Integer scheduledNumberDaysToLessonFinish, Lesson precedingLesson); /** @@ -111,7 +111,7 @@ public Lesson initializeLesson(String lessonName, String lessonDescription, long learningDesignId, Integer organisationId, Integer userID, String customCSV, Boolean enableLessonIntro, Boolean displayDesignImage, Boolean learnerExportAvailable, Boolean learnerPresenceAvailable, - Boolean learnerImAvailable, Boolean liveEditEnabled, Boolean enableNotifications, + Boolean learnerImAvailable, Boolean liveEditEnabled, Boolean enableNotifications, Boolean learnerRestart, Integer numberDaysToLessonFinish, Long precedingLessonId); /** Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java,v diff -u -r1.188 -r1.189 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 22 Jan 2014 14:10:53 -0000 1.188 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 27 Jan 2014 14:17:00 -0000 1.189 @@ -425,7 +425,7 @@ Integer organisationId, Integer userID, String customCSV, Boolean enableLessonIntro, Boolean displayDesignImage, Boolean learnerExportAvailable, Boolean learnerPresenceAvailable, Boolean learnerImAvailable, Boolean liveEditEnabled, Boolean enableLessonNotifications, - Integer scheduledNumberDaysToLessonFinish, Long precedingLessonId) { + Boolean learnerRestart, Integer scheduledNumberDaysToLessonFinish, Long precedingLessonId) { LearningDesign originalLearningDesign = authoringService.getLearningDesign(new Long(learningDesignId)); if (originalLearningDesign == null) { @@ -461,7 +461,7 @@ Lesson initializedLesson = initializeLesson(lessonName, lessonDescription, originalLearningDesign, user, runSeqFolder, LearningDesign.COPY_TYPE_LESSON, customCSV, enableLessonIntro, displayDesignImage, learnerExportAvailable, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled, - enableLessonNotifications, scheduledNumberDaysToLessonFinish, precedingLesson); + enableLessonNotifications, learnerRestart, scheduledNumberDaysToLessonFinish, precedingLesson); Long initializedLearningDesignId = initializedLesson.getLearningDesign().getLearningDesignId(); logEventService.logEvent(LogEvent.TYPE_TEACHER_LESSON_CREATE, userID, initializedLearningDesignId, @@ -486,8 +486,8 @@ User user = userID != null ? (User) baseDAO.find(User.class, userID) : null; return initializeLesson(lessonName, lessonDescription, originalLearningDesign, user, null, - LearningDesign.COPY_TYPE_PREVIEW, customCSV, Boolean.FALSE, Boolean.FALSE, Boolean.TRUE, - learnerPresenceAvailable, learnerImAvailable, liveEditEnabled, null, null, null); + LearningDesign.COPY_TYPE_PREVIEW, customCSV, false, false, true, learnerPresenceAvailable, + learnerImAvailable, liveEditEnabled, true, false, null, null); } /** @@ -497,16 +497,17 @@ public Lesson initializeLessonWithoutLDcopy(String lessonName, String lessonDescription, long learningDesignID, User user, String customCSV, Boolean enableLessonIntro, Boolean displayDesignImage, Boolean learnerExportAvailable, Boolean learnerPresenceAvailable, Boolean learnerImAvailable, - Boolean liveEditEnabled, Boolean enableLessonNotifications, Integer scheduledNumberDaysToLessonFinish, - Lesson precedingLesson) { + Boolean liveEditEnabled, Boolean enableLessonNotifications, Boolean learnerRestart, + Integer scheduledNumberDaysToLessonFinish, Lesson precedingLesson) { LearningDesign learningDesign = authoringService.getLearningDesign(learningDesignID); if (learningDesign == null) { throw new MonitoringServiceException("Learning design for id=" + learningDesignID + " is missing. Unable to initialize lesson."); } Lesson lesson = createNewLesson(lessonName, lessonDescription, user, learningDesign, enableLessonIntro, displayDesignImage, learnerExportAvailable, learnerPresenceAvailable, learnerImAvailable, - liveEditEnabled, enableLessonNotifications, scheduledNumberDaysToLessonFinish, precedingLesson); + liveEditEnabled, enableLessonNotifications, learnerRestart, scheduledNumberDaysToLessonFinish, + precedingLesson); auditAction(MonitoringService.AUDIT_LESSON_CREATED_KEY, new Object[] { lessonName, learningDesign.getTitle(), learnerExportAvailable }); return lesson; @@ -516,7 +517,7 @@ User user, WorkspaceFolder workspaceFolder, int copyType, String customCSV, Boolean enableLessonIntro, Boolean displayDesignImage, Boolean learnerExportAvailable, Boolean learnerPresenceAvailable, Boolean learnerImAvailable, Boolean liveEditEnabled, Boolean enableLessonNotifications, - Integer scheduledNumberDaysToLessonFinish, Lesson precedingLesson) { + Boolean learnerRestart, Integer scheduledNumberDaysToLessonFinish, Lesson precedingLesson) { // copy the current learning design LearningDesign copiedLearningDesign = authoringService.copyLearningDesign(originalLearningDesign, new Integer( @@ -533,7 +534,8 @@ Lesson lesson = createNewLesson(title, lessonDescription, user, copiedLearningDesign, enableLessonIntro, displayDesignImage, learnerExportAvailable, learnerPresenceAvailable, learnerImAvailable, - liveEditEnabled, enableLessonNotifications, scheduledNumberDaysToLessonFinish, precedingLesson); + liveEditEnabled, enableLessonNotifications, learnerRestart, scheduledNumberDaysToLessonFinish, + precedingLesson); auditAction(MonitoringService.AUDIT_LESSON_CREATED_KEY, new Object[] { lessonName, copiedLearningDesign.getTitle(), learnerExportAvailable }); return lesson; @@ -585,7 +587,7 @@ } else { newLesson = initializeLesson(title, desc, ldId, organisationId, creatorUserId, customCSV, enableLessonIntro, displayDesignImage, learnerExportAvailable, learnerPresenceAvailable, - learnerImAvailable, liveEditEnabled, enableLessonNotifications, + learnerImAvailable, liveEditEnabled, enableLessonNotifications, false, scheduledNumberDaysToLessonFinish, precedingLessonId); } @@ -2247,12 +2249,12 @@ private Lesson createNewLesson(String lessonName, String lessonDescription, User user, LearningDesign copiedLearningDesign, Boolean enableLessonIntro, Boolean displayDesignImage, Boolean learnerExportAvailable, Boolean learnerPresenceAvailable, Boolean learnerImAvailable, - Boolean liveEditEnabled, Boolean enableLessonNotifications, Integer scheduledNumberDaysToLessonFinish, - Lesson precedingLesson) { + Boolean liveEditEnabled, Boolean enableLessonNotifications, Boolean learnerRestart, + Integer scheduledNumberDaysToLessonFinish, Lesson precedingLesson) { Lesson newLesson = Lesson.createNewLessonWithoutClass(lessonName, lessonDescription, user, copiedLearningDesign, enableLessonIntro, displayDesignImage, learnerExportAvailable, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled, enableLessonNotifications, - scheduledNumberDaysToLessonFinish); + learnerRestart, scheduledNumberDaysToLessonFinish); if (precedingLesson != null) { HashSet precedingLessons = new HashSet(); precedingLessons.add(precedingLesson); @@ -3040,7 +3042,8 @@ userDto.getUserID(), null, lesson.isEnableLessonIntro(), lesson.isDisplayDesignImage(), lesson.getLearnerExportAvailable(), lesson.getLearnerPresenceAvailable(), lesson.getLearnerImAvailable(), - lesson.getLiveEditEnabled(), lesson.getEnableLessonNotifications(), null, null); + lesson.getLiveEditEnabled(), lesson.getEnableLessonNotifications(), + lesson.getLearnerRestart(), null, null); // save LessonClasses newLesson = this Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java,v diff -u -r1.110 -r1.111 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java 22 Jan 2014 14:10:53 -0000 1.110 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java 27 Jan 2014 14:16:59 -0000 1.111 @@ -199,9 +199,10 @@ Boolean learnerPresenceAvailable = WebUtil.readBooleanParam(request, "learnerPresenceAvailable", false); Boolean learnerImAvailable = WebUtil.readBooleanParam(request, "learnerImAvailable", false); Boolean liveEditEnabled = WebUtil.readBooleanParam(request, "liveEditEnabled", false); + Boolean learnerRestart = WebUtil.readBooleanParam(request, "learnerRestart", false); Lesson newLesson = monitoringService.initializeLesson(title, desc, ldId, organisationId, getUserId(), null, - Boolean.FALSE, Boolean.FALSE, learnerExportAvailable, learnerPresenceAvailable, learnerImAvailable, - liveEditEnabled, Boolean.FALSE, null, null); + false, false, learnerExportAvailable, learnerPresenceAvailable, learnerImAvailable, + liveEditEnabled, false, learnerRestart, null, null); PrintWriter writer = response.getWriter(); writer.println(newLesson.getLessonId()); @@ -283,6 +284,7 @@ boolean schedulingEnable = WebUtil.readBooleanParam(request, "schedulingEnable", false); Date schedulingDatetime = schedulingEnable ? MonitoringAction.LESSON_SCHEDULING_DATETIME_FORMAT.parse(request .getParameter("schedulingDatetime")) : null; + boolean learnerRestart = WebUtil.readBooleanParam(request, "learnerRestart", false); boolean precedingLessonEnable = WebUtil.readBooleanParam(request, "precedingLessonEnable", false); Long precedingLessonId = precedingLessonEnable ? WebUtil.readLongParam(request, "precedingLessonId", true) @@ -339,7 +341,7 @@ } Lesson lesson = monitoringService.initializeLesson(lessonInstanceName, introDescription, ldId, organisationId, userId, null, introEnable, introImage, portfolioEnable, presenceEnable, imEnable, - enableLiveEdit, notificationsEnable, timeLimitIndividual, precedingLessonId); + enableLiveEdit, notificationsEnable, learnerRestart, timeLimitIndividual, precedingLessonId); monitoringService.createLessonClassForLesson(lesson.getLessonId(), organisation, learnerGroupInstanceName, lessonInstanceLearners, staffGroupInstanceName, staff, userId);