Allow top-level comments on deleted posts

Discussion can still be valuable and users are allowed to reply to comments
in deleted posts. Notifications will not be sent to the post author.
This commit is contained in:
MelissaCole
2015-12-14 13:47:08 -08:00
parent 9c680bdd1d
commit 7902eef667
7 changed files with 2 additions and 37 deletions

View File

@@ -2061,7 +2061,7 @@ class ApiController(RedditController):
commentform.has_errors("comment", errors.TOO_LONG) or
commentform.has_errors("ratelimit", errors.RATELIMIT) or
commentform.has_errors("parent", errors.DELETED_COMMENT,
errors.DELETED_LINK, errors.TOO_OLD, errors.USER_BLOCKED,
errors.TOO_OLD, errors.USER_BLOCKED,
errors.USER_MUTED, errors.MUTED_FROM_SUBREDDIT,
errors.THREAD_LOCKED)
):

View File

@@ -50,7 +50,6 @@ error_list = dict((
('NOT_USER', _("You are not logged in as that user.")),
('NOT_FRIEND', _("you are not friends with that user")),
('LOGGED_IN', _("You are already logged in.")),
('DELETED_LINK', _('the link you are commenting on has been deleted')),
('DELETED_COMMENT', _('that comment has been deleted')),
('DELETED_THING', _('that element has been deleted')),
('SHORT_PASSWORD', _('the password must be at least %(chars)d characters')),

View File

@@ -1264,9 +1264,6 @@ class VSubmitParent(VByName):
elif isinstance(parent, Link):
sr = parent.subreddit_slow
if parent._deleted:
self.set_error(errors.DELETED_LINK)
if parent.archived:
self.set_error(errors.TOO_OLD)
elif parent.locked and not sr.can_distinguish(c.user):

View File

@@ -1183,7 +1183,7 @@ class Comment(Thing, Printable):
name = 'inbox'
if parent and parent.sendreplies:
to = Account._byID(parent.author_id, True)
if not parent and link.sendreplies:
if not parent and not link._deleted and link.sendreplies:
to = Account._byID(link.author_id, True)
name = 'selfreply'

View File

@@ -86,7 +86,6 @@
${error_field("RATELIMIT", "ratelimit", "span")}
${error_field("NO_TEXT", thing.name, "span")}
${error_field("DELETED_COMMENT", "parent", "span")}
${error_field("DELETED_LINK", "parent", "span")}
${error_field("USER_BLOCKED", "parent", "span")}
${error_field("USER_MUTED", "parent", "span")}
${error_field("MUTED_FROM_SUBREDDIT", "parent", "span")}

View File

@@ -162,7 +162,6 @@
${error_field("TOO_OLD", "parent", "span")}
${error_field("THREAD_LOCKED", "parent", "span")}
${error_field("DELETED_COMMENT", "parent", "span")}
${error_field("DELETED_LINK", "parent", "span")}
${error_field("USER_BLOCKED", "parent", "span")}
${error_field("USER_MUTED", "parent", "span")}
${error_field("MUTED_FROM_SUBREDDIT", "parent", "span")}

View File

@@ -171,14 +171,6 @@ class TestVSubmitParent(ValidatorTests):
self.assertEqual(result, link)
self.assertFalse(self.validator.has_errors)
def test_deleted_link(self):
link = self._mock_link(_deleted=True)
result = self.validator.run('fullname', None)
self.assertEqual(result, link)
self.assertTrue(self.validator.has_errors)
self.assertIn((errors.DELETED_LINK, None), c.errors)
def test_removed_link(self):
link = self._mock_link(_spam=True)
result = self.validator.run('fullname', None)
@@ -194,17 +186,6 @@ class TestVSubmitParent(ValidatorTests):
self.assertTrue(self.validator.has_errors)
self.assertIn((errors.TOO_OLD, None), c.errors)
def test_deleted_archived_link(self):
link = self._mock_link(
date=dt.now(g.tz).replace(year=2000),
_deleted=True)
result = self.validator.run('fullname', None)
self.assertEqual(result, link)
self.assertTrue(self.validator.has_errors)
self.assertIn((errors.DELETED_LINK, None), c.errors)
self.assertIn((errors.TOO_OLD, None), c.errors)
def test_locked_link(self):
link = self._mock_link(locked=True)
Subreddit.can_distinguish = MagicMock(return_value=False)
@@ -222,16 +203,6 @@ class TestVSubmitParent(ValidatorTests):
self.assertEqual(result, link)
self.assertFalse(self.validator.has_errors)
def test_deleted_locked_link(self):
link = self._mock_link(locked=True, _deleted=True)
Subreddit.can_distinguish = MagicMock(return_value=False)
result = self.validator.run('fullname', None)
self.assertEqual(result, link)
self.assertTrue(self.validator.has_errors)
self.assertIn((errors.DELETED_LINK, None), c.errors)
self.assertIn((errors.THREAD_LOCKED, None), c.errors)
def test_invalid_link(self):
with self.assertRaises(HTTPForbidden):
self._mock_link(can_comment=False)