[Zope3-Users] z3c:layout - not working with z3c.form.EditForm
kevin gill
kevin at movieextras.ie
Tue Jan 29 09:33:04 EST 2008
In answer to my own question, the EditForm must also inherit from the
z3c.formuilayout.FormLayoutSupport class. This code now works:
from z3c.form import form
from z3c.formui import layout
class IndexForm(layout.FormLayoutSupport, form.EditForm):
pass
Thanks,
Kevin
> I am having a problem configuring a layout template. It works with
> z3c.form.DisplayForm but not with z3c.form.EditForm.
>
> formdemo works fine for me. It seems to use an identical approach.
>
> Thanks, Kevin
>
> -------------------------------------------------------------------
> Here is the details to recreate the problem:
>
> http://localhost:8080/++skin++MySkin/@@index.html does not use the
> template.
>
> http://localhost:8080/++skin++MySkin/@@index2.html uses the template.
>
> I added these packages (setup.py):
>
> 'z3c.pagelet',
> 'z3c.layer',
> 'z3c.form',
> 'z3c.formui',
>
> I configured these packages:
>
> <!-- Add your own component registrations here -->
> <include package="zope.viewlet" file="meta.zcml"/>
> <include package="zope.contentprovider" />
> <include package="zope.viewlet" />
>
> <include package="z3c.form" file="meta.zcml" />
> <include package="z3c.macro" file="meta.zcml" />
> <include package="z3c.pagelet" file="meta.zcml" />
> <include package="z3c.template" file="meta.zcml" />
>
> <include package="z3c.form" />
> <include package="z3c.formui" />
>
> <include package="z3c.layer.pagelet"/>
> <include package="z3c.macro" />
> <include package="z3c.pagelet"/>
>
> I created a new layer (layer.py):
>
> from z3c.form.interfaces import IFormLayer
> from z3c.layer.pagelet import IPageletBrowserLayer
>
> class IMyBrowserLayer(IFormLayer, IPageletBrowserLayer):
> pass
>
> And a new skin (skin.py):
>
> import z3c.formui.interfaces
> import layer
>
> class IMyBrowserSkin(z3c.formui.interfaces.IDivFormLayer,
> layer.IMyBrowserLayer):
> pass
>
> I registered the above:
>
> <interface
> interface=".layer.IMyBrowserLayer"
> type="zope.publisher.interfaces.browser.IBrowserSkinType"
> />
>
> <interface
> interface=".skin.IMyBrowserSkin"
> type="zope.publisher.interfaces.browser.IBrowserSkinType"
> name="MySkin"
> />
>
> I create a layout (template.pt):
>
> <h1>TEMPLATE</h1>
> <tal:block replace="structure provider:pagelet" />
>
> I register it:
>
> <z3c:layout
> for="*"
> layer=".layer.IMyBrowserLayer"
> template="template.pt"
> />
>
> I create two new pages (browser.py):
>
> from z3c.form import form
>
> class IndexForm(form.EditForm):
> pass
>
> class IndexForm2(form.DisplayForm):
> pass
>
> I match these with templates (index.pt and index2.pt):
>
> index.pt
>
> index2.pt
>
> I register the new views:
>
> <z3c:pagelet
> name="index.html"
> for="*"
> permission="zope.Public"
> layer=".layer.IMyBrowserLayer"
> class=".browser.IndexForm"
> />
>
> <z3c:template
> template="index.pt"
> for=".browser.IndexForm"
> layer=".layer.IMyBrowserLayer"
> />
>
> <z3c:pagelet
> name="index2.html"
> for="*"
> permission="zope.Public"
> layer=".layer.IMyBrowserLayer"
> class=".browser.IndexForm2"
> />
>
> <z3c:template
> template="index2.pt"
> for=".browser.IndexForm2"
> layer=".layer.IMyBrowserLayer"
> />
>
>
> _______________________________________________
> Zope3-users mailing list
> Zope3-users at zope.org
> http://mail.zope.org/mailman/listinfo/zope3-users
>
> --
> ** Email Scanned by Elive's Virus Scanning Service -
> http://www.elive.net **
>
>
>
>
>
More information about the Zope3-users
mailing list