[Grok-dev] grok.Skin question.
Fernando Correa Neto
fcdoth at gmail.com
Thu Jul 24 14:10:35 EDT 2008
Someone on IRC asked if I ever used z3c.form with grok and I decided
to give it a try by just using grok components.
In z3c.form, a lot of it's components are registered for
z3c.form.interfaces.IFormLayer. In order to create a form you
basically need to create a layer like:
from z3c.form.interfaces import IFormLayer
from z3c.layout.pagelet import IPageletBrowserLayer
class IMyFormLayer(IFormLayer, IPageletBrowserLayer):
"""a form layer"""
But then in your skin, you must inherit from IMyFormLayer AND
z3c.formui.interfaces.ITableFormLayer (depending on what you want in
So in terms of layers I think we are prettu much OK since we can do this:
class MyGrokLayer(IFormLayer, IPageletBrowserLayer):
But then when you declare your skin naively like this:
class MyGrokSkin(grok.Skin, IDivFormLayer):
It is raises a conflict error like this:
TypeError: Error when calling the metaclass bases
metaclass conflict: the metaclass of a derived class must be a
(non-strict) subclass of the metaclasses of all its bases
So the question is: Would it be possible to create a skin in grok that
gets registered for anything else other than just IBrowserSkinType?
Does anyone know any pattern?
I am attaching my current app.py in case someone decides to take a look.
P.S: The test form is also subclassing grok.View for testing purposes
so I could just reach it through url.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1355 bytes
Desc: not available
Url : http://mail.zope.org/pipermail/grok-dev/attachments/20080724/73793e0e/app.obj
More information about the Grok-dev