diff --git a/src/main/java/org/olat/course/assessment/AssessmentModeManager.java b/src/main/java/org/olat/course/assessment/AssessmentModeManager.java index 9e9d168200eb97ea5f2a536165941ad7adfeb290..b7dcc657f383fdb06339f203809ee7ce48563eeb 100644 --- a/src/main/java/org/olat/course/assessment/AssessmentModeManager.java +++ b/src/main/java/org/olat/course/assessment/AssessmentModeManager.java @@ -48,6 +48,8 @@ public interface AssessmentModeManager { */ public AssessmentMode createAssessmentMode(RepositoryEntry entry); + + public AssessmentModeToGroup createAssessmentModeToGroup(AssessmentMode mode, BusinessGroup group); public void deleteAssessmentModesToGroup(BusinessGroupRef group); @@ -65,7 +67,19 @@ public interface AssessmentModeManager { */ public AssessmentMode merge(AssessmentMode assessmentMode, boolean forceStatus); + /** + * Delete a specific assessment mode. + * + * @param assessmentMode + */ public void delete(AssessmentMode assessmentMode); + + /** + * Delete all assessment modes of a course. + * + * @param entry + */ + public void delete(RepositoryEntryRef entry); public AssessmentMode getAssessmentModeById(Long key); diff --git a/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java b/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java index dfc928a429b4d2b8983f22f9cfbaa74d3e788646..5bb36c9be9c8d694a40acd572efbcd8b2e0494ed 100644 --- a/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java +++ b/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java @@ -177,6 +177,13 @@ public class AssessmentModeManagerImpl implements AssessmentModeManager { dbInstance.getCurrentEntityManager().remove(refMode); } + @Override + public void delete(RepositoryEntryRef entry) { + for(AssessmentMode mode: getAssessmentModeFor(entry)) { + delete(mode); + } + } + @Override public AssessmentMode getAssessmentModeById(Long key) { List<AssessmentMode> modes = dbInstance.getCurrentEntityManager() diff --git a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java index a9f9a9b64624f6b6d875aeb73a37e5b5a2cd5a5a..c21f837f97aec5ac09ae84642a6651ec953b870a 100644 --- a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java +++ b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java @@ -51,12 +51,13 @@ import org.olat.core.util.vfs.LocalFolderImpl; import org.olat.core.util.vfs.VFSContainer; import org.olat.core.util.vfs.VFSItem; import org.olat.core.util.vfs.VFSLeaf; +import org.olat.course.assessment.AssessmentModeManager; import org.olat.course.assessment.manager.UserCourseInformationsManager; import org.olat.course.certificate.CertificatesManager; import org.olat.repository.ErrorList; import org.olat.repository.RepositoryEntry; -import org.olat.repository.RepositoryEntryAuthorView; import org.olat.repository.RepositoryEntryAllowToLeaveOptions; +import org.olat.repository.RepositoryEntryAuthorView; import org.olat.repository.RepositoryEntryMyView; import org.olat.repository.RepositoryEntryRef; import org.olat.repository.RepositoryEntryRelationType; @@ -114,6 +115,8 @@ public class RepositoryServiceImpl implements RepositoryService { private CertificatesManager certificatesManager; @Autowired private UserCourseInformationsManager userCourseInformationsManager; + @Autowired + private AssessmentModeManager assessmentModeMgr; @Autowired private LifeFullIndexer lifeIndexer; @@ -299,6 +302,8 @@ public class RepositoryServiceImpl implements RepositoryService { CoreSpringFactory.getImpl(MarkManager.class).deleteMarks(entry); // delete all catalog entries referencing deleted entry catalogManager.resourceableDeleted(entry); + // delete assessment modes + assessmentModeMgr.delete(entry); //delete all policies securityManager.deletePolicies(resource);