fix that enabled method check for FTI information of the current content object and not only for the "Document" portal_type.
svn path=/plone.app.discussion/trunk/; revision=27889
This commit is contained in:
parent
2ad27c3f33
commit
360a758905
@ -145,7 +145,7 @@ class Conversation(Traversable, Persistent, Explicit):
|
|||||||
|
|
||||||
# Check if discussion is allowed on the content type
|
# Check if discussion is allowed on the content type
|
||||||
portal_type = self.__parent__.portal_type
|
portal_type = self.__parent__.portal_type
|
||||||
document_fti = getattr(portal_types, 'Document')
|
document_fti = getattr(portal_types, obj.portal_type)
|
||||||
if not document_fti.getProperty('allow_discussion'):
|
if not document_fti.getProperty('allow_discussion'):
|
||||||
# If discussion is not allowed on the content type,
|
# If discussion is not allowed on the content type,
|
||||||
# check if 'allow discussion' is overridden on the content object.
|
# check if 'allow discussion' is overridden on the content object.
|
||||||
|
@ -230,6 +230,33 @@ class ConversationTest(PloneTestCase):
|
|||||||
self.assertEquals(conversation.enabled(), True)
|
self.assertEquals(conversation.enabled(), True)
|
||||||
|
|
||||||
|
|
||||||
|
def test_allow_discussion_for_news_items(self):
|
||||||
|
|
||||||
|
self.typetool.constructContent('News Item', self.portal, 'newsitem')
|
||||||
|
newsitem = self.portal.newsitem
|
||||||
|
conversation = IConversation(newsitem)
|
||||||
|
|
||||||
|
# We have to allow discussion on Document content type, since
|
||||||
|
# otherwise allow_discussion will always return False
|
||||||
|
portal_types = getToolByName(self.portal, 'portal_types')
|
||||||
|
document_fti = getattr(portal_types, 'News Item')
|
||||||
|
document_fti.manage_changeProperties(allow_discussion = True)
|
||||||
|
|
||||||
|
# Check if conversation is enabled now
|
||||||
|
self.assertEquals(conversation.enabled(), True)
|
||||||
|
|
||||||
|
# Disable commenting in the registry
|
||||||
|
registry = queryUtility(IRegistry)
|
||||||
|
settings = registry.for_interface(IDiscussionSettings)
|
||||||
|
settings.globally_enabled = False
|
||||||
|
|
||||||
|
# Check if commenting is disabled on the conversation
|
||||||
|
self.assertEquals(conversation.enabled(), False)
|
||||||
|
|
||||||
|
# Enable discussion again
|
||||||
|
settings.globally_enabled = True
|
||||||
|
self.assertEquals(conversation.enabled(), True)
|
||||||
|
|
||||||
def test_disable_commenting_for_content_type(self):
|
def test_disable_commenting_for_content_type(self):
|
||||||
|
|
||||||
# Create a conversation.
|
# Create a conversation.
|
||||||
|
Loading…
Reference in New Issue
Block a user