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.88 -r1.89 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 12 Jul 2006 05:18:14 -0000 1.88 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 12 Jul 2006 06:16:10 -0000 1.89 @@ -465,6 +465,7 @@ flashMessage = new FlashMessage("createLesson",Boolean.TRUE); } catch (Exception e) { + log.error("Exception occured trying to create a lesson class ",e); flashMessage = new FlashMessage("createLesson", e.getMessage(), FlashMessage.ERROR); @@ -479,6 +480,7 @@ return message; } + /** *

Pre-condition: This method must be called under the condition of the * existance of new lesson (without lesson class).

@@ -499,7 +501,18 @@ throw new MonitoringServiceException("Lesson for id="+lessonId+" is missing. Unable to create class for lesson."); } checkOwnerOrStaffMember(userId, newLesson, "create lesson class"); - + + // make sure lesson isn't started + if ( newLesson.isLessonStarted() ) { + throw new MonitoringServiceException("Lesson for id="+lessonId+" has been started. Unable to create/change class for lesson."); + } + + if ( newLesson == null) { + throw new MonitoringServiceException("Lesson for id="+lessonId+" is missing. Unable to create class for lesson."); + } + + LessonClass oldLessonClass = newLesson.getLessonClass(); + LessonClass newLessonClass = this.createLessonClass(organisation, learnerGroupName, organizationUsers, @@ -512,6 +525,10 @@ lessonDAO.updateLesson(newLesson); + if ( oldLessonClass != null ) { + lessonClassDAO.deleteLessonClass(oldLessonClass); + } + return newLesson; } /**