update CommentsViewlet to follow best practice for showing a z3c.form inside a Viewlet. Override update method instead of init method.
svn path=/plone.app.discussion/branches/notification/; revision=34052
This commit is contained in:
parent
90c44a7c67
commit
57b41454bb
@ -150,7 +150,7 @@
|
|||||||
formatting.
|
formatting.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div tal:replace="structure view/contents" />
|
<div tal:replace="structure view/form/render" />
|
||||||
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
@ -18,6 +18,7 @@ from zope.interface import Interface, implements
|
|||||||
from zope.viewlet.interfaces import IViewlet
|
from zope.viewlet.interfaces import IViewlet
|
||||||
|
|
||||||
from z3c.form import form, field, button, interfaces, widget
|
from z3c.form import form, field, button, interfaces, widget
|
||||||
|
from z3c.form.interfaces import IFormLayer
|
||||||
from z3c.form.browser.textarea import TextAreaWidget
|
from z3c.form.browser.textarea import TextAreaWidget
|
||||||
from z3c.form.browser.checkbox import SingleCheckBoxFieldWidget
|
from z3c.form.browser.checkbox import SingleCheckBoxFieldWidget
|
||||||
|
|
||||||
@ -187,25 +188,16 @@ class CommentForm(extensible.ExtensibleForm, form.Form):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class CommentsViewlet(ViewletBase, layout.FormWrapper):
|
class CommentsViewlet(ViewletBase):
|
||||||
|
|
||||||
form = CommentForm
|
form = CommentForm
|
||||||
|
|
||||||
index = ViewPageTemplateFile('comments.pt')
|
index = ViewPageTemplateFile('comments.pt')
|
||||||
|
|
||||||
def __init__(self, context, request, view, manager):
|
def update(self):
|
||||||
super(CommentsViewlet, self).__init__(context, request, view, manager)
|
super(CommentsViewlet, self).update()
|
||||||
if self.form is not None:
|
z2.switch_on(self, request_layer=IFormLayer)
|
||||||
self.form_instance = self.form(self.context.aq_inner, self.request)
|
self.form = CommentForm(aq_inner(self.context), self.request)
|
||||||
self.form_instance.__name__ = self.__name__
|
self.form.update()
|
||||||
|
|
||||||
self.portal_discussion = getToolByName(self.context, 'portal_discussion', None)
|
|
||||||
self.portal_membership = getToolByName(self.context, 'portal_membership', None)
|
|
||||||
|
|
||||||
def render_form(self):
|
|
||||||
z2.switch_on(self, request_layer=self.request_layer)
|
|
||||||
self.form.update(self.form_instance)
|
|
||||||
return self.form.render(self.form_instance)
|
|
||||||
|
|
||||||
# view methods
|
# view methods
|
||||||
|
|
||||||
@ -304,7 +296,8 @@ class CommentsViewlet(ViewletBase, layout.FormWrapper):
|
|||||||
return settings.show_commenter_image
|
return settings.show_commenter_image
|
||||||
|
|
||||||
def is_anonymous(self):
|
def is_anonymous(self):
|
||||||
return self.portal_membership.isAnonymousUser()
|
portal_membership = getToolByName(self.context, 'portal_membership', None)
|
||||||
|
return portal_membership.isAnonymousUser()
|
||||||
|
|
||||||
def login_action(self):
|
def login_action(self):
|
||||||
return '%s/login_form?came_from=%s' % (self.navigation_root_url, url_quote(self.request.get('URL', '')),)
|
return '%s/login_form?came_from=%s' % (self.navigation_root_url, url_quote(self.request.get('URL', '')),)
|
||||||
|
Loading…
Reference in New Issue
Block a user