diff --git a/CHANGES.txt b/CHANGES.txt index a40d960..ac0deb0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,14 @@ Changelog ========= +2.1.0 (unreleased) +------------------ + +- Make sure the comment brains are updated properly when the content object is + renamed. + [hannosch, timo] + + 2.0.9 (2011-07-25) ------------------ diff --git a/plone/app/discussion/comment.py b/plone/app/discussion/comment.py index fc89c77..f36e151 100644 --- a/plone/app/discussion/comment.py +++ b/plone/app/discussion/comment.py @@ -223,8 +223,7 @@ def notify_content_object_moved(obj, event): """Update all comments of a content object that has been moved. """ if event.oldParent is None or event.newParent is None \ - or event.oldName is None or event.newName is None \ - or event.oldParent == event.newParent: + or event.oldName is None or event.newName is None: return # Remove comments at the old location from catalog catalog = getToolByName(obj, 'portal_catalog') diff --git a/plone/app/discussion/tests/test_catalog.py b/plone/app/discussion/tests/test_catalog.py index de28c7c..0e78013 100644 --- a/plone/app/discussion/tests/test_catalog.py +++ b/plone/app/discussion/tests/test_catalog.py @@ -313,7 +313,19 @@ class CommentCatalogTest(unittest.TestCase): self.assertEquals(brains[0].getPath(), '/plone/folder1/doc1/++conversation++default/' + str(self.comment_id)) - + + def test_update_comments_when_content_object_is_renamed(self): + # We need to commit here so that _p_jar isn't None and move will work + transaction.savepoint(optimistic=True) + + self.portal.manage_renameObject("doc1", "doc2") + + brains = self.catalog.searchResults(portal_type = 'Discussion Item') + self.assertEquals(len(brains), 1) + self.assertEquals(brains[0].getPath(), + '/plone/doc2/++conversation++default/' + + str(self.comment_id)) + def test_clear_and_rebuild_catalog(self): # Clear and rebuild catalog self.catalog.clearFindAndRebuild() diff --git a/setup.py b/setup.py index c3bc002..67145fd 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -version = '2.0.9' +version = '2.1.0' install_requires = [ 'setuptools',