[Zope3-Users] formlib confusion

Alen Stanisic alen.stanisic at gmail.com
Thu Apr 6 19:27:49 EDT 2006


Hi Pete,

I assign templates in view classes when using formlib:

from zope.app.pagetemplate.viewpagetemplatefile import
ViewPageTemplateFile
class ConsumerRegistrarForm(form.Form):
    .
    .
    template = ViewPageTemplateFile('registrar.zpt')
    .
    .

I would also be interested to find out if zcml template directive could
still be used with formlib forms.

Alen

On Thu, 2006-04-06 at 10:41 -0400, Pete Taylor wrote:
> hi all...  i've recently tried to start moving away from
> zope.app.form.browser.editview's EditView, and to zope.formlib.form's
> Form and EditForm, but have run into something that confuses me.
> 
> i'm setting up the zcml for both of them basically the same way, using
> browser:page and assigning a template.  my issue is that it doesn't
> seem like EditForm is paying any attention to my page template.  no
> matter what i do to the page template, nothing changes in the display,
> but if i remove the page template entirely, i get a system error
> saying it can't find the resource, just like i'd expect.
> 
> so the machinery is aware of the page template, but seems to ignore it
> entirely.
> 
> my class looks something like the following... the actions are just
> placeholders until i figure out why the page template doesn't seem to
> have any affect.
> 
> <code>
> 
> class ConsumerRegistrarForm(form.Form):
>  	    """form to be filled out at signup"""
>  	    form_fields = form.Fields(IConsumerRegistrar,
> IConsumerPrincipalInfo, omit_readonly=True)
>  	
>  	    primary_actions = form.Actions()
>  	    secondary_actions = form.Actions()
>  	
>  	    @zope.cachedescriptors.property.Lazy
>  	    def actions(self):
>  	        return list(self.primary_actions) + list(self.secondary_actions)
>  	
>  	    @form.action(u'Register', primary_actions)
>  	    def handle_registration_action(self, action, data):
>  	        self.status = u"You clicked the button!"
>  	
>  	    @form.action(u'SomethingElse', secondary_actions)
>  	    def handle_somethingelse_action(self, action, data):
>  	        self.status = u'This does nothing!'
>  	
>  	    def setUpWidgets(self, ignore_request=False):
>  	        self.widgets = form.setUpWidgets(
>  	            self.form_fields, self.prefix, self.context, self.request,
>  	            ignore_request=ignore_request
>  	            )
> 
> </code>
> 
> <zcml_config>
> 
>   <!-- consumer registar -->
>  	  <browser:addform
>  	      schema="..interfaces.registration.IConsumerRegistrar"
>  	      label="Add Consumer Registrar"
>  	      content_factory="..registration.ConsumerRegistrar"
>  	      name="AddConsumerRegistrar.html"
>  	      permission="zope.ManageServices"
>  	      />
>  	
>  	  <browser:addMenuItem
>  	      title="Consumer Registrar"
>  	      description="Consumer Registrar"
>  	      class="..registration.ConsumerRegistrar"
>  	      permission="zope.ManageServices"
>  	      view="AddConsumerRegistrar.html"
>  	      />
>  	
>  	  <browser:page
>  	      for="..interfaces.registration.IConsumerRegistrar"
>  	      class=".registration.ConsumerRegistrarForm"
>  	      template="registrar.zpt"
>  	      name="register.html"
>  	      permission="zope.Public"
>  	      />
>  	
>  	  <browser:page
>  	      for="..interfaces.principal.IConsumerPrincipalInfo"
>  	      class=".registration.ConsumerRegistrarForm"
>  	      template="registrar.zpt"
>  	      name="register.html"
>  	      permission="zope.Public"
>  	      />
> 
> </zcml_config>
> 
> any thoughts on this would be very appreciated...  my original page
> template was so simple that i didn't notice it wasn't having any
> affect.  but once i started adding viewlets to it that didn't show up
> in view source at all, i realized something was amiss.  i deleted
> everything except the bare skeleton, including all metal:use-macro
> statements in my page template, and still, the view kept showing up
> exactly the same way.  even just making it blank html that said "I am
> the page template!" for the body didn't make any difference to the
> view, which makes me think it's paying no attention to it at all.
> 
> Thanks, as always :)
> Pete
> 
> --
> "All guilt is relative, loyalty counts, and never let your conscience
> be your guide."
>   - Lucas Buck, American Gothic
> _______________________________________________
> Zope3-users mailing list
> Zope3-users at zope.org
> http://mail.zope.org/mailman/listinfo/zope3-users



More information about the Zope3-users mailing list