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

Former-commit-id: 9093e21199
pull/2/head
jensp 2017-07-04 16:53:09 +00:00
parent eb4f71cba2
commit 9dfd155bea
2 changed files with 22 additions and 7 deletions

View File

@ -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);
}

View File

@ -89,7 +89,7 @@ public class TaskManager {
task.setWorkflow(null);
workflowRepo.save(workflow);
taskRepo.save(task);
taskRepo.delete(task);
}
/**