Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java =================================================================== diff -u -r444ce71d035a643eb6e6c50357a41d7d5c09c7cb -r411727872d04bfd061de7b831320654d816c4cbf --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 444ce71d035a643eb6e6c50357a41d7d5c09c7cb) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 411727872d04bfd061de7b831320654d816c4cbf) @@ -142,9 +142,8 @@ * name of staff group * @param staffs * a list of staffs who will be in charge of this lesson. - * @return the lesson with lesson class and organization */ - Lesson createLessonClassForLesson(long lessonId, Organisation organisation, String learnerGroupName, + void createLessonClassForLesson(long lessonId, Organisation organisation, String learnerGroupName, List organizationUsers, String staffGroupName, List staffs, Integer userID) throws UserAccessDeniedException; @@ -438,9 +437,8 @@ * User ID of the teacher running the preview. Mandatory. * @param lessonID * ID of the lesson - * @return Lesson */ - abstract Lesson createPreviewClassForLesson(int userID, long lessonID) throws UserAccessDeniedException; + abstract void createPreviewClassForLesson(int userID, long lessonID) throws UserAccessDeniedException; /* Supports the Chosen Groupings and Branching */ /** Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -rc5484257b0ba0781664b96098573178c6e5b0544 -r411727872d04bfd061de7b831320654d816c4cbf --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision c5484257b0ba0781664b96098573178c6e5b0544) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 411727872d04bfd061de7b831320654d816c4cbf) @@ -451,9 +451,10 @@ } @Override - public Lesson createLessonClassForLesson(long lessonId, Organisation organisation, String learnerGroupName, + public void createLessonClassForLesson(long lessonId, Organisation organisation, String learnerGroupName, List organizationUsers, String staffGroupName, List staffs, Integer userId) { Lesson newLesson = lessonDAO.getLesson(new Long(lessonId)); + // if lesson isn't started recreate the lesson class if (newLesson.isLessonStarted()) { securityService.isLessonMonitor(lessonId, userId, "create class for lesson", true); @@ -480,8 +481,6 @@ lessonClassDAO.deleteLessonClass(oldLessonClass); } } - - return newLesson; } @Override @@ -1715,13 +1714,15 @@ lessonClassDAO.saveLessonClass(newLessonClass); // setup staff group - newLessonClass.setStaffGroup(Group.createStaffGroup(newLessonClass, staffGroupName, new HashSet(staffs))); + Group staffGroup = Group.createStaffGroup(newLessonClass, staffGroupName, new HashSet(staffs)); + newLessonClass.setStaffGroup(staffGroup); + // setup learner group // TODO:need confirm group name! newLessonClass.getGroups() .add(Group.createLearnerGroup(newLessonClass, learnerGroupName, new HashSet(organizationUsers))); - lessonClassDAO.updateLessonClass(newLessonClass); + lessonClassDAO.saveLessonClass(newLessonClass); return newLessonClass; } @@ -1783,7 +1784,7 @@ // --------------------------------------------------------------------- @Override - public Lesson createPreviewClassForLesson(int userID, long lessonID) throws UserAccessDeniedException { + public void createPreviewClassForLesson(int userID, long lessonID) throws UserAccessDeniedException { User user = (User) baseDAO.find(User.class, userID); if (user == null) { @@ -1797,7 +1798,7 @@ LinkedList staffs = new LinkedList(); staffs.add(user); - return createLessonClassForLesson(lessonID, null, "Learner Group", learners, "Staff Group", staffs, userID); + createLessonClassForLesson(lessonID, null, "Learner Group", learners, "Staff Group", staffs, userID); } /* Grouping and branching related calls */ @@ -2258,12 +2259,11 @@ lesson.getForceLearnerRestart(), lesson.getAllowLearnerRestart(), null, null); // save LessonClasses - newLesson = this.createLessonClassForLesson(newLesson.getLessonId(), group, learnerGroupName, + this.createLessonClassForLesson(newLesson.getLessonId(), group, learnerGroupName, learnerUsers, staffGroupName, staffUsers, creatorId); - // start Lessons - // TODO user-specified creator; must be someone in staff group - this.startLesson(newLesson.getLessonId(), staffUsers.get(0).getUserId()); + // start lesson; passing creatorId as this parameter is only used for security check whether user is allowed to start a lesson + this.startLesson(newLesson.getLessonId(), creatorId); } else { throw new MonitoringServiceException("No learners specified, can't create any Lessons.");