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.98 -r1.99 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 19 Sep 2006 04:57:24 -0000 1.98 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 9 Nov 2006 07:44:38 -0000 1.99 @@ -791,11 +791,31 @@ private void revertLessonState(Lesson requestedLesson) { Integer currentStatus = requestedLesson.getLessonStateId(); - requestedLesson.setLessonStateId(requestedLesson.getPreviousLessonStateId()); - requestedLesson.setPreviousLessonStateId(currentStatus); + if(requestedLesson.getPreviousLessonStateId() != null) { + if(requestedLesson.getPreviousLessonStateId().equals(Lesson.NOT_STARTED_STATE) && requestedLesson.getScheduleStartDate().before(new Date())) + requestedLesson.setLessonStateId(Lesson.STARTED_STATE); + else + requestedLesson.setLessonStateId(requestedLesson.getPreviousLessonStateId()); + requestedLesson.setPreviousLessonStateId(null); + } else { + if(requestedLesson.getStartDateTime() != null && requestedLesson.getScheduleStartDate() != null) + requestedLesson.setLessonStateId(Lesson.STARTED_STATE); + else if(requestedLesson.getScheduleStartDate() != null) + if(requestedLesson.getScheduleStartDate().after(new Date())) + requestedLesson.setLessonStateId(Lesson.NOT_STARTED_STATE); + else + requestedLesson.setLessonStateId(Lesson.STARTED_STATE); + else if(requestedLesson.getStartDateTime() != null) + requestedLesson.setLessonStateId(Lesson.STARTED_STATE); + else + requestedLesson.setLessonStateId(Lesson.CREATED); + + requestedLesson.setPreviousLessonStateId(currentStatus); + } lessonDAO.updateLesson(requestedLesson); } -/** + + /** * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#removeLesson(long) */ public void removeLesson(long lessonId, Integer userId) {