[Zope3-Users] Re: Email application form causing despair!

Peter Bengtsson peter at fry-it.com
Tue Mar 14 12:01:32 EST 2006


Good code Laurence. Thanks.
I wish we had a Cookbook to put all of these into.
Zopelabs.com sucks unfortunately.

Laurence Rowe wrote:
> I think you want to do something along these lines:
> 
> from zope.formlib import form
> from zope.interface import Interface
> 
> class IEmailForm(Interface):
>     subject = schema.TextLine(
>         title=u'Subject',
>         required=True,
>         )
>     comments = schema.TextLine(
>         title=u'Comments',
>         required=True,
>         )
> 
> class EmailForm(form.Form):
>     form_fields = form.Fields(IEmailForm)
> 
>     @form.action("Email", validator='validate_input')
>     def handle_email_action(self, action, data):
>         send_mail(data['subject'], data['comments'])
>         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,
> 
> Laurence
> 
> 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 in zope.app.form?
>>
>> 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.
>>
>> Regards,
>>
>> Graham
> 
> _______________________________________________
> Zope3-users mailing list
> Zope3-users at zope.org
> http://mail.zope.org/mailman/listinfo/zope3-users
> 

-- 
Peter Bengtsson,
work www.fry-it.com
home www.peterbe.com
hobby www.issuetrackerproduct.com


More information about the Zope3-users mailing list