fix singlecheckboxwidget for comment form.
svn path=/plone.app.discussion/branches/notification/; revision=33873
This commit is contained in:
		
							parent
							
								
									26031cd1f4
								
							
						
					
					
						commit
						67b5ff566e
					
				@ -57,21 +57,29 @@ class CommentForm(extensible.ExtensibleForm, form.Form):
 | 
			
		||||
                                         'author_username')
 | 
			
		||||
 | 
			
		||||
    def updateFields(self):
 | 
			
		||||
        super(CommentForm, self).updateFields()
 | 
			
		||||
        self.fields['author_notification'].widgetFactory = SingleCheckBoxFieldWidget
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
    def updateWidgets(self):
 | 
			
		||||
        super(CommentForm, self).updateWidgets()
 | 
			
		||||
 | 
			
		||||
        # Widgets
 | 
			
		||||
        self.widgets['in_reply_to'].mode = interfaces.HIDDEN_MODE
 | 
			
		||||
        self.widgets['text'].addClass("autoresize")
 | 
			
		||||
        self.widgets['author_notification'].label = _(u"")        
 | 
			
		||||
        self.widgets['author_notification'].label = _(u"")   
 | 
			
		||||
        
 | 
			
		||||
        # Anonymous / Logged-in
 | 
			
		||||
        portal_membership = getToolByName(self.context, 'portal_membership')
 | 
			
		||||
        if not portal_membership.isAnonymousUser():
 | 
			
		||||
            self.widgets['author_name'].mode = interfaces.HIDDEN_MODE
 | 
			
		||||
            self.widgets['author_email'].mode = interfaces.HIDDEN_MODE
 | 
			
		||||
        registry = queryUtility(IRegistry)
 | 
			
		||||
        settings = registry.forInterface(IDiscussionSettings)
 | 
			
		||||
        if not settings.notification_enabled:
 | 
			
		||||
            self.widgets['author_notification'].mode = interfaces.HIDDEN_MODE
 | 
			
		||||
 | 
			
		||||
        # Notification enabled
 | 
			
		||||
        # XXX: Not working! ComponentLookupError
 | 
			
		||||
        #registry = queryUtility(IRegistry)
 | 
			
		||||
        #settings = registry.forInterface(IDiscussionSettings)
 | 
			
		||||
        #if not settings.notification_enabled:
 | 
			
		||||
        #    self.widgets['author_notification'].mode = interfaces.HIDDEN_MODE            
 | 
			
		||||
        
 | 
			
		||||
    def updateActions(self):
 | 
			
		||||
        super(CommentForm, self).updateActions()        
 | 
			
		||||
@ -90,6 +98,7 @@ class CommentForm(extensible.ExtensibleForm, form.Form):
 | 
			
		||||
        author_name = u""
 | 
			
		||||
        author_username = u""
 | 
			
		||||
        author_email = u""
 | 
			
		||||
        author_notification = None
 | 
			
		||||
 | 
			
		||||
        # Captcha check for anonymous users (if Captcha is enabled)
 | 
			
		||||
        registry = queryUtility(IRegistry)
 | 
			
		||||
 | 
			
		||||
@ -168,7 +168,8 @@ class IComment(Interface):
 | 
			
		||||
    Comments are indexed in the catalog and subject to workflow and security.
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    portal_type = schema.ASCIILine(title=_(u"Portal type"), default="Discussion Item")
 | 
			
		||||
    portal_type = schema.ASCIILine(title=_(u"Portal type"), 
 | 
			
		||||
                                   default="Discussion Item")
 | 
			
		||||
 | 
			
		||||
    __parent__ = schema.Object(title=_(u"Conversation"), schema=Interface)
 | 
			
		||||
    __name__ = schema.TextLine(title=_(u"Name"))
 | 
			
		||||
@ -188,7 +189,9 @@ class IComment(Interface):
 | 
			
		||||
    mime_type = schema.ASCIILine(title=_(u"MIME type"), default="text/plain")
 | 
			
		||||
    text = schema.Text(title=_(u"Comment"))
 | 
			
		||||
 | 
			
		||||
    author_notification = schema.Bool(title=_("Notify me of new posts via email"), required=False)
 | 
			
		||||
    author_notification = schema.Bool(title=_(u"Notify me of new comments via "
 | 
			
		||||
                                             "email."),
 | 
			
		||||
                                     required=False)
 | 
			
		||||
    
 | 
			
		||||
    creator = schema.TextLine(title=_(u"Author name (for display)"))
 | 
			
		||||
    creation_date = schema.Date(title=_(u"Creation date"))
 | 
			
		||||
 | 
			
		||||
@ -86,7 +86,7 @@ class TestCommentsViewletIntegration(FunctionalTestCase):
 | 
			
		||||
        browser.getLink(id='document').click()
 | 
			
		||||
        browser.getControl(name='title').value = "Doc1"
 | 
			
		||||
        browser.getControl(name='allowDiscussion:boolean').value = True
 | 
			
		||||
        browser.getControl(name='form.button.save').click()        
 | 
			
		||||
        browser.getControl(name='form.button.save').click()
 | 
			
		||||
 | 
			
		||||
        doc1 = self.portal['doc1']
 | 
			
		||||
        doc1_url = doc1.absolute_url()        
 | 
			
		||||
 | 
			
		||||
@ -61,5 +61,12 @@ class RegistryTest(PloneTestCase):
 | 
			
		||||
        self.failUnless('show_commenter_image' in IDiscussionSettings)
 | 
			
		||||
        self.assertEquals(self.registry['plone.app.discussion.interfaces.IDiscussionSettings.show_commenter_image'], True)
 | 
			
		||||
 | 
			
		||||
    def test_notification_enabled(self):
 | 
			
		||||
        # Check show_commenter_image record
 | 
			
		||||
        show_commenter_image = self.registry.records['plone.app.discussion.interfaces.IDiscussionSettings.notification_enabled']
 | 
			
		||||
 | 
			
		||||
        self.failUnless('notification_enabled' in IDiscussionSettings)
 | 
			
		||||
        self.assertEquals(self.registry['plone.app.discussion.interfaces.IDiscussionSettings.notification_enabled'], False)
 | 
			
		||||
 | 
			
		||||
def test_suite():
 | 
			
		||||
    return unittest.defaultTestLoader.loadTestsFromName(__name__)
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user