From 5b0639ba72f7fd620077969e2d6e261810625207 Mon Sep 17 00:00:00 2001 From: jensp Date: Tue, 4 Jul 2017 16:53:09 +0000 Subject: [PATCH] CCM NG: Some improvments for the ContentItemRepository#delete method git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4838 8810af33-2d31-482b-a856-94f89814c4df --- .../contentsection/ContentItemRepository.java | 27 ++++++++++++++----- .../org/libreccm/workflow/TaskManager.java | 2 +- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemRepository.java b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemRepository.java index 2710cfaab..ee2069adf 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemRepository.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemRepository.java @@ -45,13 +45,14 @@ import javax.persistence.TypedQuery; import org.libreccm.security.Shiro; import org.libreccm.security.User; -import org.libreccm.security.UserManager; import org.libreccm.security.UserRepository; +import org.libreccm.workflow.Task; +import org.libreccm.workflow.TaskManager; +import org.libreccm.workflow.TaskRepository; import org.libreccm.workflow.Workflow; +import org.libreccm.workflow.WorkflowRepository; -import java.util.ArrayList; import java.util.Collections; -import java.util.stream.Collectors; import javax.transaction.Transactional; @@ -82,12 +83,18 @@ public class ContentItemRepository @Inject private UserRepository userRepository; - @Inject - private UserManager userManager; - @Inject private RoleManager roleManager; + @Inject + private WorkflowRepository workflowRepo; + + @Inject + private TaskRepository taskRepo; + + @Inject + private TaskManager taskManager; + @Inject private PermissionChecker permissionChecker; @@ -492,6 +499,14 @@ public class ContentItemRepository removeCategoryFromItem(item, category); } + + if (draft.getWorkflow() != null) { + final Workflow workflow = draft.getWorkflow(); + for(final Task task : workflow.getTasks()) { + taskManager.removeTask(workflow, task); + } + workflowRepo.delete(workflow); + } super.delete(draft); } diff --git a/ccm-core/src/main/java/org/libreccm/workflow/TaskManager.java b/ccm-core/src/main/java/org/libreccm/workflow/TaskManager.java index 27edf3f17..99f41174c 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/TaskManager.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/TaskManager.java @@ -89,7 +89,7 @@ public class TaskManager { task.setWorkflow(null); workflowRepo.save(workflow); - taskRepo.save(task); + taskRepo.delete(task); } /**