Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml,v diff -u -r1.3 -r1.4 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml 7 Dec 2005 06:08:19 -0000 1.3 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml 22 Dec 2005 01:25:33 -0000 1.4 @@ -46,7 +46,6 @@ - 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.23 -r1.24 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 7 Dec 2005 06:08:19 -0000 1.23 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 22 Dec 2005 01:25:32 -0000 1.24 @@ -28,7 +28,6 @@ import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.Organisation; -import org.lamsfoundation.lams.usermanagement.User; /** @@ -54,7 +53,7 @@ * @param user user the user who want to create this lesson. * @return the lesson initialized. */ - public Lesson initializeLesson(String lessonName, String lessonDescription,long learningDesignId,User user); + public Lesson initializeLesson(String lessonName, String lessonDescription,long learningDesignId,Integer userID); /** 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.29 -r1.30 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 9 Dec 2005 11:52:31 -0000 1.29 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 22 Dec 2005 01:25:32 -0000 1.30 @@ -32,7 +32,6 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.authoring.service.IAuthoringService; -import org.lamsfoundation.lams.learning.service.ILearnerService; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.GateActivity; import org.lamsfoundation.lams.learningdesign.Group; @@ -57,9 +56,8 @@ import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.Role; 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; import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceFolderDAO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.WebUtil; @@ -97,10 +95,8 @@ private ILessonDAO lessonDAO; private ILessonClassDAO lessonClassDAO; - private IOrganisationDAO organisationDAO; private ITransitionDAO transitionDAO; private IActivityDAO activityDAO; - private IUserDAO userDAO; private IWorkspaceFolderDAO workspaceFolderDAO; private ILearningDesignDAO learningDesignDAO; private IAuthoringService authoringService; @@ -109,7 +105,6 @@ private Scheduler scheduler; private ApplicationContext applicationContext; - private ILearnerService learnerService; //--------------------------------------------------------------------- // Inversion of Control Methods - Method injection //--------------------------------------------------------------------- @@ -140,12 +135,6 @@ this.transitionDAO = transitionDAO; } - /** - * @param userDAO The userDAO to set. - */ - public void setUserDAO(IUserDAO userDAO) { - this.userDAO = userDAO; - } /** * @param authoringService The authoringService to set. */ @@ -192,9 +181,6 @@ { this.applicationContext=applicationContext; } - public void setOrganisationDAO(IOrganisationDAO organisationDAO) { - this.organisationDAO = organisationDAO; - } /** * @param scheduler The scheduler to set. @@ -204,14 +190,6 @@ this.scheduler = scheduler; } - /** - * @param learnerService The learnerService to set - */ - public void setLearnerService(ILearnerService learnerService) - { - this.learnerService = learnerService; - } - //--------------------------------------------------------------------- // Service Methods //--------------------------------------------------------------------- @@ -223,23 +201,37 @@ *
  • 2. Go through all the tool activities defined in the learning design, * create a runtime copy of all tool's content.
  • * + *

    Tries to copy the design into the user's default runtime sequence folder. If + * this is not available, then it is copied into the existing folder.

    * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#createLesson(long, org.lamsfoundation.lams.usermanagement.User, java.util.List, java.util.List) */ public Lesson initializeLesson(String lessonName, String lessonDescription, long learningDesignId, - User user) + Integer userID) { + LearningDesign originalLearningDesign = authoringService.getLearningDesign(new Long(learningDesignId)); if ( originalLearningDesign == null) { 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! + User user = (userID != null ? userManagementService.getUserById(userID) : null); + Workspace workspace = (user != null ? user.getWorkspace() : null); + WorkspaceFolder destinationFolder = ( workspace!=null ? workspace.getDefaultRunSequencesFolder() : null); + if ( destinationFolder == null ) { + log.error("initializeLesson: Copying learning design "+learningDesignId+" for userID "+userID + +". Unable to determine runtime sequence folder - copying into folder of the original design"); + destinationFolder = originalLearningDesign.getWorkspaceFolder(); + } + //copy the current learning design LearningDesign copiedLearningDesign = authoringService.copyLearningDesign(originalLearningDesign, new Integer(LearningDesign.COPY_TYPE_LESSON), user, - originalLearningDesign.getWorkspaceFolder()); + destinationFolder); // copy the tool content // unfortuanately, we have to reaccess the activities to make sure we get the // subclass, not a hibernate proxy. @@ -530,7 +522,7 @@ */ public String getLearnerActivityURL(Long activityID,Integer userID)throws IOException, LamsToolServiceException{ Activity activity = activityDAO.getActivityByActivityId(activityID); - User user = userDAO.getUserById(userID); + User user = userManagementService.getUserById(userID); FlashMessage flashMessage; if(activity==null || user==null){ flashMessage = new FlashMessage("getLearnerActivityURL", Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/Attic/DummyMonitoringAction.java,v diff -u -r1.8 -r1.9 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java 20 Dec 2005 11:20:40 -0000 1.8 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java 22 Dec 2005 01:25:33 -0000 1.9 @@ -163,6 +163,8 @@ // set up all the data needed DummyForm dummyForm = (DummyForm) form; + // Must have User, rather than UserDTO as the createLessonClassForLesson must have + // a proper user objcet in the staffs list. User user = getUser(); Long ldId = dummyForm.getLearningDesignId(); @@ -182,7 +184,7 @@ if ( desc == null ) desc = "description"; // initialize the lesson - Lesson testLesson = monitoringService.initializeLesson(title,desc,ldId.longValue(),user); + Lesson testLesson = monitoringService.initializeLesson(title,desc,ldId.longValue(),user.getUserId()); // create the lesson class - add all the users in this organisation to the lesson class // add user as staff Index: lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/Attic/TestMonitoringService.java,v diff -u -r1.27 -r1.28 --- lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java 7 Dec 2005 05:11:07 -0000 1.27 +++ lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java 22 Dec 2005 01:25:32 -0000 1.28 @@ -25,7 +25,6 @@ import javax.sql.DataSource; -import org.lamsfoundation.lams.test.AbstractLamsTestCase; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.GateActivity; import org.lamsfoundation.lams.learningdesign.Grouping; @@ -34,6 +33,7 @@ import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.dao.ILessonDAO; import org.lamsfoundation.lams.lesson.dao.hibernate.LessonDAO; +import org.lamsfoundation.lams.test.AbstractLamsTestCase; import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.User; @@ -148,7 +148,7 @@ Lesson testLesson = monitoringService.initializeLesson("Test_Lesson", "Test_Description", TEST_LEARNING_DESIGN_ID, - testUser); + testUser.getUserId()); TEST_LESSON_ID=testLesson.getLessonId(); Lesson createdLesson = lessonDao.getLesson(TEST_LESSON_ID); assertNotNull(createdLesson);