Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java,v diff -u -r1.5 -r1.6 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java 30 Jan 2006 05:31:20 -0000 1.5 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java 1 Feb 2006 03:32:21 -0000 1.6 @@ -25,6 +25,7 @@ public static final String MONITORING_SERVICE_BEAN_NAME = "monitoringService"; public static final String CREATE_LESSON_MESSAGE_KEY = "createLesson"; + public static final String PERFORM_CHOSEN_GROUPING_KEY = "performChosenGrouping"; public static final String KEY_ORGANISATION_ID = "organisationID"; public static final String KEY_LESSON_ID = "lessonID"; public static final String KEY_STAFF = "staff"; Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/FinishScheduleLesson.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/Attic/FinishScheduleLesson.java,v diff -u -r1.2 -r1.3 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/FinishScheduleLesson.java 24 Jan 2006 04:47:49 -0000 1.2 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/FinishScheduleLesson.java 1 Feb 2006 03:32:21 -0000 1.3 @@ -55,7 +55,7 @@ log.debug("Lesson ["+lessonId+"] is stopping..."); - monitoringService.archiveLesson(lessonId); + monitoringService.finishLesson(lessonId); if(log.isDebugEnabled()) log.debug("Lesson ["+lessonId+"] stopped"); 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.31 -r1.32 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 30 Jan 2006 05:31:20 -0000 1.31 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 1 Feb 2006 03:32:21 -0000 1.32 @@ -26,6 +26,7 @@ import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.GateActivity; +import org.lamsfoundation.lams.learningdesign.GroupingActivity; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.Organisation; @@ -111,6 +112,17 @@ */ public void finishLessonOnSchedule(long lessonId, Date endDate); /** + * Finish a lesson.A Finished lesson can be viewed on the monitoring interface. + * It should be an "inactive" lesson. A Finished lesson is listed on the learner + * interface but all the learner can do is view the progress bar and do an + * export portfolio - they cannot access any of the tool screens. + * + * @param lessonId + * @param endDate teh lesson end date and time. + */ + public void finishLesson(long lessonId); + + /** * Force Complete works on an individual user. The teacher may complete it up to a particular activity, * or till the end of the sequence which activity id is null indicating complete to end. Note, the give * activity will be complete as well. @@ -124,7 +136,7 @@ public String forceCompleteLessonByUser(Integer learnerId,long lessonId,Long activityId); /** - * Archive the specified the lesson. When archived, the data is retained + * Archive the specified lesson. When archived, the data is retained * but the learners cannot access the details. * @param lessonId the specified the lesson id. */ @@ -350,10 +362,16 @@ */ public String releaseGate(Long activityID) throws IOException; + /** + * + * @param groupingActivity + * @param groups + */ + public void performChosenGrouping(GroupingActivity groupingActivity, List groups); + /* TODO Dummy methods - to be removed */ public List getOrganisationsUsers(Integer userId); public List getLearningDesigns(Long 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.41 -r1.42 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 31 Jan 2006 13:04:05 -0000 1.41 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 1 Feb 2006 03:32:21 -0000 1.42 @@ -416,6 +416,7 @@ //start the scheduling job try { + setLessonStatus(lessonId,Lesson.NOT_STARTED_STATE); scheduler.scheduleJob(startLessonJob, startLessonTrigger); } catch (SchedulerException e) @@ -427,7 +428,8 @@ if(log.isDebugEnabled()) log.debug("Start lesson ["+lessonId+"] on schedule is configured"); } - + + /** * Start lesson on schedule. * @param lessonId @@ -497,24 +499,43 @@ if(log.isDebugEnabled()) log.debug("=============Lesson "+lessonId+" started==============="); } - /** + * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#finishLesson(long) + */ + public void finishLesson(long lessonId) { + setLessonStatus(lessonId,Lesson.FINISHED_STATE); + } + /** * Archive the specified the lesson. When archived, the data is retained * but the learners cannot access the details. * @param lessonId the specified the lesson id. */ public void archiveLesson(long lessonId) { + setLessonStatus(lessonId,Lesson.ARCHIVED_STATE); - Lesson requestedLesson = lessonDAO.getLesson(new Long(lessonId)); - if ( requestedLesson == null) { - throw new MonitoringServiceException("Lesson for id="+lessonId+" is missing. Unable to archive lesson."); - } - - requestedLesson.setLessonStateId(Lesson.ARCHIVED_STATE); - lessonDAO.updateLesson(requestedLesson); - } /** + * Set lesson status to given status value. The stauts value will be one value of class level in + * org.lamsfoundation.lams.lesson.Lesson. + * + * @param lessonId + * @param status + */ + private void setLessonStatus(long lessonId,Integer status) { + + Lesson requestedLesson = lessonDAO.getLesson(new Long(lessonId)); + if( status == null ){ + throw new MonitoringServiceException("Lesson status is required"); + } + if ( requestedLesson == null ) { + throw new MonitoringServiceException("Lesson for id="+lessonId+" is missing. Unable to set lesson status to "+ status.intValue()); + } + + requestedLesson.setLessonStateId(status); + lessonDAO.updateLesson(requestedLesson); + + } + /** * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#removeLesson(long) */ public void removeLesson(long lessonId) { @@ -1285,4 +1306,7 @@ return learningDesignDAO.getLearningDesignByUserId(userId); } + public void performChosenGrouping(GroupingActivity groupingActivity, List groups) { + + } } \ No newline at end of file