I think you want to do something along these lines:
from zope.formlib import form
from zope.interface import Interface
subject = schema.TextLine(
comments = schema.TextLine(
form_fields = form.Fields(IEmailForm)
def handle_email_action(self, action, data):
self.status = u'Email Sent'
def validate_input(self, action, data):
#validation logic here
return  # no errors
def send_mail(subject, comments):
Plumb it in with zcml in the normal way. No idea about mutable schemas.
Hope that helps,
Graham Stratton wrote:
I have a seemingly simple problem. I want to provide a web form which
is emailed off on submission. I'd like to do some validation before it
is emailed off.
*snip saga involving much of formlib and browser:form*
On much reflection, I think what I probably want to do is to implement
an 'email form' content type, which has an address to email the form to,
and a schema, and then use the formlib machinery to produce and validate
a form from this. Is this the right way to go? I can't work out how I
can use any of the higher-level formlib code. Will I need to render one
widget at a time and do my own validation? Or is there something useful
I guess in the longer term it would make sense to make my schema
persistent and based on the mutable schema implementation. How might I
go about that? I did play a bit with the mutable schema utility, but I
got errors when trying to add Text and TextLine fields. I also don't
really understand why it's a utility anyway. Does it offer a way to
edit any persistent schema?
I'm feeling very lost, I hope someone can point me in the right
direction. Thanks for the all the support.
Zope3-users mailing list