I have the following situation.
an ICentershockSkin derived from Rotterdam:
an IContentItem that works as base interface for all items:
an ILink that is such an item:
the ILink has an edit view on the default layer:
intended only for use withing the ZMI.
The IContentItem has also registered a view called edit.html on the
another interface derived from IContentItem is the IContentFolder which has no
edit view registered for the ZMI (on the default layer).
All objects derived from IContentItem should use the edit.html registered for
IContentItem unless they want to provide their own view. (all request are for
This works fine when I call the edit view on a IContentFolder, which has no
edit view registered on the default layer.
However is does not work for the ILink, the edit view defined by IContentItem
on the ICentershockSkin is never called.
There are 2 edit.html views around for the ILink.
The first one on the default layer which is also on the ICentershockLayer
since Rotterdam is derived from the default layer.
The second one comes from the IContentItem from which the ILink is derived.
Obviously always the second one is called.
1) Rename edit.html to something else to avoid this name clash
2) Do not derive ICentershockSkin from Rotterdam instead only from Interface.
That caused TraversalErrors here.
Is this intended behavior? (that Skin inheritance is over Interface
intheritance) or is the behavior undefined? Any other ways to solve that
Or do I get the entire problem wrong?
Zope3-users mailing list