Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -rc7dee7dd8e62e6480aaaa0e435eba63a650b84b3 -r192bbc2e63f57accf6e522b22069ddcc6718c368 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision c7dee7dd8e62e6480aaaa0e435eba63a650b84b3) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 192bbc2e63f57accf6e522b22069ddcc6718c368) @@ -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; } /**