This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 7a28d8cec329195743ffd391868f428dfd51ff22
Author: Dillon Walls <[email protected]>
AuthorDate: Fri Jul 21 03:34:08 2023 +0000

    [#8516] Posts - added true delete, renamed old method to soft_delete, 
updated references
---
 Allura/allura/controllers/discuss.py         | 3 ++-
 Allura/allura/model/discuss.py               | 5 +++++
 Allura/allura/tests/model/test_discussion.py | 2 +-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/Allura/allura/controllers/discuss.py 
b/Allura/allura/controllers/discuss.py
index 94cc65e8d..f095518c3 100644
--- a/Allura/allura/controllers/discuss.py
+++ b/Allura/allura/controllers/discuss.py
@@ -437,7 +437,7 @@ class PostController(BaseController, 
metaclass=h.ProxiedAttrMeta):
     def moderate(self, **kw):
         require_access(self.post.thread, 'moderate')
         if kw.pop('delete', None):
-            self.post.delete()
+            self.post.soft_delete()
         elif kw.pop('spam', None):
             self.post.spam()
         elif kw.pop('undo', None):
@@ -556,6 +556,7 @@ class ModerationController(BaseController, 
metaclass=h.ProxiedAttrMeta):
 
             if posted:
                 if delete:
+                    # full, for real, delete since this is post was never 
visible and denied by admin.
                     posted.delete()
                     # If we just deleted the last post in the
                     # thread, delete the thread.
diff --git a/Allura/allura/model/discuss.py b/Allura/allura/model/discuss.py
index a81f822ac..fabd9b7f0 100644
--- a/Allura/allura/model/discuss.py
+++ b/Allura/allura/model/discuss.py
@@ -755,6 +755,11 @@ class Post(Message, VersionedArtifact, ActivityObject, 
ReactableArtifact):
             return 'Re: ' + (self.subject or '(no subject)')
 
     def delete(self):
+        thread = self.thread
+        super().delete()
+        thread.update_stats()
+
+    def soft_delete(self):
         self.deleted = True
         session(self).flush(self)
         self.thread.update_stats()
diff --git a/Allura/allura/tests/model/test_discussion.py 
b/Allura/allura/tests/model/test_discussion.py
index 30f3415b9..f50f2af79 100644
--- a/Allura/allura/tests/model/test_discussion.py
+++ b/Allura/allura/tests/model/test_discussion.py
@@ -156,7 +156,7 @@ class TestDiscussion:
         assert t.num_replies == 1
         p.undo('ok')
         assert t.num_replies == 2
-        p.delete()
+        p.soft_delete()
         assert t.num_replies == 1
 
     def test_attachment_methods(self):

Reply via email to