Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java =================================================================== diff -u -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 -rdf403b3f55f75d3ed5a4e53b8ac259343120ae5f --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision df403b3f55f75d3ed5a4e53b8ac259343120ae5f) @@ -61,10 +61,11 @@ * @param lessonName the name of the lesson * @param lessonDescription the description of the lesson. * @param learningDesignId the selected learning design - * @param user user the user who want to create this lesson. + * @param organisationId the copied sequence will be put in the default runtime sequence folder for this org, if such a folder exists. + * @param userId the user who want to create this lesson. * @return the lesson initialized. */ - public Lesson initializeLesson(String lessonName, String lessonDescription,long learningDesignId,Integer userID); + public Lesson initializeLesson(String lessonName, String lessonDescription,long learningDesignId,Integer organisationId,Integer userID); /** * Create new lesson according to the learning design specified by the * user, but for a preview session rather than a normal learning session. Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -r5be330617da306520389b76b1ebf51357dfdd8ad -rdf403b3f55f75d3ed5a4e53b8ac259343120ae5f --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 5be330617da306520389b76b1ebf51357dfdd8ad) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision df403b3f55f75d3ed5a4e53b8ac259343120ae5f) @@ -70,6 +70,7 @@ import org.lamsfoundation.lams.tool.service.ILamsCoreToolService; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.Workspace; import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; import org.lamsfoundation.lams.usermanagement.dao.IOrganisationDAO; import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; @@ -278,6 +279,7 @@ public Lesson initializeLesson(String lessonName, String lessonDescription, long learningDesignId, + Integer organisationId, Integer userID) { @@ -286,10 +288,20 @@ throw new MonitoringServiceException("Learning design for id="+learningDesignId+" is missing. Unable to initialize lesson."); } - // The duplicated sequence should go in the run sequences folder, so we had better - // wourk out what the folder is! + // The duplicated sequence should go in the run sequences folder under the given organisation + WorkspaceFolder runSeqFolder = null; + if ( organisationId != null ) { + Organisation org = organisationDAO.getOrganisationById(organisationId); + if ( org!=null ) { + Workspace workspace = org.getWorkspace(); + if ( workspace != null ) { + runSeqFolder = workspace.getDefaultRunSequencesFolder(); + } + + } + } User user = (userID != null ? userManagementService.getUserById(userID) : null); - return initializeLesson(lessonName, lessonDescription, originalLearningDesign, user, LearningDesign.COPY_TYPE_LESSON); + return initializeLesson(lessonName, lessonDescription, originalLearningDesign, user, runSeqFolder, LearningDesign.COPY_TYPE_LESSON); } @@ -309,20 +321,21 @@ } User user = (userID != null ? userManagementService.getUserById(userID) : null); - return initializeLesson(lessonName, lessonDescription, originalLearningDesign, user, LearningDesign.COPY_TYPE_PREVIEW); + return initializeLesson(lessonName, lessonDescription, originalLearningDesign, user, null, LearningDesign.COPY_TYPE_PREVIEW); } public Lesson initializeLesson(String lessonName, String lessonDescription, LearningDesign originalLearningDesign, User user, + WorkspaceFolder workspaceFolder, int copyType) { //copy the current learning design LearningDesign copiedLearningDesign = authoringService.copyLearningDesign(originalLearningDesign, new Integer(copyType), user, - null, + workspaceFolder, true); // copy the tool content // unfortuanately, we have to reaccess the activities to make sure we get the Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java =================================================================== diff -u -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 -rdf403b3f55f75d3ed5a4e53b8ac259343120ae5f --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java (.../DummyMonitoringAction.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java (.../DummyMonitoringAction.java) (revision df403b3f55f75d3ed5a4e53b8ac259343120ae5f) @@ -86,6 +86,7 @@ private IMonitoringService monitoringService; private IUserManagementService usermanageService; private Integer everybodyClass = new Integer(3); + private Integer playpen = new Integer(2); //--------------------------------------------------------------------- // Class level constants - session attributes //--------------------------------------------------------------------- @@ -166,9 +167,9 @@ if ( ldId == null ) throw new IOException("Learning design id must be set"); - // hardcode to use the Playpen:Everybody class - Organisation organisation = usermanageService.getOrganisationById(everybodyClass); - if ( organisation == null ) + // hardcode to use the Playpen:Everybody class as the class, Playpen as the course + Organisation classOrganisation = usermanageService.getOrganisationById(everybodyClass); + if ( classOrganisation == null ) throw new IOException("Organisation cannot be found. Id was "+everybodyClass); String title = dummyForm.getTitle(); @@ -177,7 +178,7 @@ if ( desc == null ) desc = "description"; // initialize the lesson - Lesson testLesson = monitoringService.initializeLesson(title,desc,ldId.longValue(),user.getUserId()); + Lesson testLesson = monitoringService.initializeLesson(title,desc,ldId.longValue(),playpen,user.getUserId()); // create the lesson class - add all the users in this organisation to the lesson class irrespective of // role. normally would check they are learners but too much hassle for dummy code. @@ -190,7 +191,7 @@ staffs.add(user); testLesson = monitoringService.createLessonClassForLesson(testLesson.getLessonId().longValue(), - organisation, + classOrganisation, "Learner Group", learners, "Staff Group", Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java =================================================================== diff -u -ra0c3e28a4eb2f3f06a313c3bd09d58bafb812317 -rdf403b3f55f75d3ed5a4e53b8ac259343120ae5f --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision a0c3e28a4eb2f3f06a313c3bd09d58bafb812317) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision df403b3f55f75d3ed5a4e53b8ac259343120ae5f) @@ -174,8 +174,9 @@ if ( title == null ) title = "lesson"; String desc = WebUtil.readStrParam(request,"lessonDescription"); if ( desc == null ) desc = "description"; + Integer courseId = WebUtil.readIntParam(request,"courseId",true); long ldId = WebUtil.readLongParam(request, AttributeNames.PARAM_LEARNINGDESIGN_ID); - Lesson newLesson = monitoringService.initializeLesson(title,desc,ldId,getUserId(request)); + Lesson newLesson = monitoringService.initializeLesson(title,desc,ldId,courseId,getUserId(request)); flashMessage = new FlashMessage("initializeLesson",newLesson.getLessonId()); } catch (Exception e) { Index: lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java =================================================================== diff -u -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 -rdf403b3f55f75d3ed5a4e53b8ac259343120ae5f --- lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java (.../TestMonitoringService.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) +++ lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java (.../TestMonitoringService.java) (revision df403b3f55f75d3ed5a4e53b8ac259343120ae5f) @@ -160,6 +160,7 @@ Lesson testLesson = monitoringService.initializeLesson("Test_Lesson", "Test_Description", TEST_LEARNING_DESIGN_ID, + null, testUser.getUserId()); TEST_LESSON_ID=testLesson.getLessonId(); Lesson createdLesson = lessonDao.getLesson(TEST_LESSON_ID);