From b0a522cf2ed6242e6e0cf0dceb56035ff2b198a8 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 16 Nov 2015 15:24:48 +0100 Subject: [PATCH] OO-1770 : rewrite the delete method for forum to make it work --- .../olat/modules/fo/manager/ForumManager.java | 18 +++++++++++------- .../org/olat/modules/fo/ForumManagerTest.java | 3 +-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/olat/modules/fo/manager/ForumManager.java b/src/main/java/org/olat/modules/fo/manager/ForumManager.java index 8daf2ac3a5b..379eca8fa77 100644 --- a/src/main/java/org/olat/modules/fo/manager/ForumManager.java +++ b/src/main/java/org/olat/modules/fo/manager/ForumManager.java @@ -595,18 +595,22 @@ public class ForumManager { .setParameter("forumKey", forumKey) .executeUpdate(); // delete messages - //TODO forum - /* - String deleteMessages = "delete from fomessage as msg where msg.forum.key=:forumKey"; - dbInstance.getCurrentEntityManager().createQuery(deleteMessages) - .setParameter("forumKey", forumKey) - .executeUpdate(); + String messagesToDelete = "select msg from fomessage as msg where msg.forum.key=:forumKey and msg.threadtop.key is null"; + List<Message> threadsToDelete = dbInstance.getCurrentEntityManager() + .createQuery(messagesToDelete, Message.class) + .setParameter("forumKey", forumKey) + .getResultList(); + for(Message threadToDelete:threadsToDelete) { + deleteMessageTree(forumKey, threadToDelete); + dbInstance.getCurrentEntityManager().remove(threadToDelete); + } + dbInstance.commit(); + // delete forum String deleteForum = "delete from forum as fo where fo.key=:forumKey"; dbInstance.getCurrentEntityManager().createQuery(deleteForum) .setParameter("forumKey", forumKey) .executeUpdate(); - */ //delete all flags OLATResourceable ores = OresHelper.createOLATResourceableInstance(Forum.class, forum.getKey()); markingService.getMarkManager().deleteMarks(ores); diff --git a/src/test/java/org/olat/modules/fo/ForumManagerTest.java b/src/test/java/org/olat/modules/fo/ForumManagerTest.java index fc2eaed4454..143a8ff7d5e 100644 --- a/src/test/java/org/olat/modules/fo/ForumManagerTest.java +++ b/src/test/java/org/olat/modules/fo/ForumManagerTest.java @@ -31,7 +31,6 @@ import java.util.Date; import java.util.List; import org.junit.Assert; -import org.junit.Ignore; import org.junit.Test; import org.olat.core.commons.persistence.DB; import org.olat.core.id.Identity; @@ -203,7 +202,7 @@ public class ForumManagerTest extends OlatTestCase { dbInstance.commitAndCloseSession(); } - @Ignore @Test + @Test public void testDeleteForum() { Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-7"); Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-8"); -- GitLab