fix attribute error when submitting the comment form.
omit form fields for comment form the right way. svn path=/plone.app.discussion/trunk/; revision=28345
This commit is contained in:
parent
f14fc83d85
commit
878f45029b
@ -44,7 +44,6 @@ from plone.z3cform import layout
|
|||||||
|
|
||||||
from zope import interface, schema
|
from zope import interface, schema
|
||||||
from z3c.form import form, field, button, interfaces
|
from z3c.form import form, field, button, interfaces
|
||||||
from plone.z3cform.layout import wrap_form
|
|
||||||
|
|
||||||
from plone.z3cform import z2
|
from plone.z3cform import z2
|
||||||
|
|
||||||
@ -92,28 +91,33 @@ class CommentForm(extensible.ExtensibleForm, form.Form):
|
|||||||
ignoreContext = True # don't use context to get widget data
|
ignoreContext = True # don't use context to get widget data
|
||||||
label = u"Add a comment"
|
label = u"Add a comment"
|
||||||
|
|
||||||
|
fields = field.Fields(IComment).omit('portal_type',
|
||||||
|
'__parent__',
|
||||||
|
'__name__',
|
||||||
|
'comment_id',
|
||||||
|
'in_reply_to',
|
||||||
|
'mime_type',
|
||||||
|
'creator',
|
||||||
|
'creation_date',
|
||||||
|
'modification_date',
|
||||||
|
'author_username',
|
||||||
|
'author_name',
|
||||||
|
'author_email',)
|
||||||
|
|
||||||
@button.buttonAndHandler(u'Post comment')
|
@button.buttonAndHandler(u'Post comment')
|
||||||
def handleApply(self, action):
|
def handleApply(self, action):
|
||||||
data, errors = self.extractData()
|
data, errors = self.extractData()
|
||||||
print data['title'] # ... or do stuff
|
if data.has_key('title'):
|
||||||
|
print data['title'] # ... or do stuff
|
||||||
@property
|
|
||||||
def fields(self):
|
|
||||||
title = FieldProperty(IComment['title'])
|
|
||||||
text = FieldProperty(IComment['text'])
|
|
||||||
return field.Fields(title, text)
|
|
||||||
|
|
||||||
class ViewletFormWrapper(ViewletBase, layout.FormWrapper):
|
class ViewletFormWrapper(ViewletBase, layout.FormWrapper):
|
||||||
|
|
||||||
implements(IViewlet)
|
implements(IViewlet)
|
||||||
|
|
||||||
form = CommentForm
|
form = CommentForm
|
||||||
label = 'Add Comment'
|
|
||||||
|
|
||||||
index = ViewPageTemplateFile('comments.pt')
|
def index(self):
|
||||||
|
return ViewPageTemplateFile('comments.pt').__of__(self)(self)
|
||||||
#def index(self):
|
|
||||||
# return ViewPageTemplateFile('comments.pt').__of__(self)(self)
|
|
||||||
|
|
||||||
def __init__(self, context, request, view, manager):
|
def __init__(self, context, request, view, manager):
|
||||||
super(ViewletFormWrapper, self).__init__(context, request, view, manager)
|
super(ViewletFormWrapper, self).__init__(context, request, view, manager)
|
||||||
@ -124,20 +128,10 @@ class ViewletFormWrapper(ViewletBase, layout.FormWrapper):
|
|||||||
self.portal_discussion = getToolByName(self.context, 'portal_discussion', None)
|
self.portal_discussion = getToolByName(self.context, 'portal_discussion', None)
|
||||||
self.portal_membership = getToolByName(self.context, 'portal_membership', None)
|
self.portal_membership = getToolByName(self.context, 'portal_membership', None)
|
||||||
|
|
||||||
#def contents(self):
|
|
||||||
# """This is the method that'll call your form. You don't
|
|
||||||
# usually override this.
|
|
||||||
# """
|
|
||||||
# # A call to 'switch_on' is required before we can render
|
|
||||||
# # z3c.forms within Zope 2.
|
|
||||||
# z2.switch_on(self, request_layer=self.request_layer)
|
|
||||||
# return self.render_form()
|
|
||||||
|
|
||||||
def render_form(self):
|
def render_form(self):
|
||||||
#z2.switch_on(self, request_layer=self.request_layer)
|
z2.switch_on(self, request_layer=self.request_layer)
|
||||||
self.form.update(self.form_instance)
|
self.form.update(self.form_instance)
|
||||||
return self.form.render(self.form_instance)
|
return self.form.render(self.form_instance)
|
||||||
#return self.form_instance()
|
|
||||||
|
|
||||||
# view methods
|
# view methods
|
||||||
|
|
||||||
@ -220,8 +214,7 @@ class ViewletFormWrapper(ViewletBase, layout.FormWrapper):
|
|||||||
zope_time = DateTime(time.year, time.month, time.day, time.hour, time.minute, time.second)
|
zope_time = DateTime(time.year, time.month, time.day, time.hour, time.minute, time.second)
|
||||||
return util.toLocalizedTime(zope_time, long_format=True)
|
return util.toLocalizedTime(zope_time, long_format=True)
|
||||||
|
|
||||||
CommentsViewlet = wrap_form(CommentForm, __wrapper_class=ViewletFormWrapper)
|
CommentsViewlet = layout.wrap_form(CommentForm, __wrapper_class=ViewletFormWrapper)
|
||||||
|
|
||||||
|
|
||||||
class AddComment(BrowserView):
|
class AddComment(BrowserView):
|
||||||
"""Add a comment to a conversation
|
"""Add a comment to a conversation
|
||||||
|
Loading…
Reference in New Issue
Block a user