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):
