From 0b5ddcb91c7f81292f023a19ad4f1c453d869882 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 20 Apr 2015 14:18:28 +0200 Subject: [PATCH] OO-1518: remove assessment modes before deleting the repository entry --- .../course/assessment/AssessmentModeManager.java | 14 ++++++++++++++ .../manager/AssessmentModeManagerImpl.java | 7 +++++++ .../repository/manager/RepositoryServiceImpl.java | 7 ++++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/olat/course/assessment/AssessmentModeManager.java b/src/main/java/org/olat/course/assessment/AssessmentModeManager.java index 9e9d168200e..b7dcc657f38 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 dfc928a429b..5bb36c9be9c 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 a9f9a9b6462..c21f837f97a 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); -- GitLab