While trying to implement the outcome of that zope3-dev discussion on
pagelets being content providers, I noticed that the doc strings for
IContentProvider talk about how content providers are to be looked up:
They specify (informally) that content providers are discriminated by
context, request, and view. Also, the documentation of the __parent__
attribute states that the parent is a view.

To my understanding, the interface should only specify how an object
behaves, not how it is obtained. Moreover, I suspect that it might be
enough to require the presence of a parent for the sake of the security
context (as stated in the doc string) without specifying that it must be a
view. The way it is now, a view whose parent is something other than a
view can never be its own content provider. As an example, this includes
pagelets. Unless this is a conscious design choice, IMHO the interface's
documentation should be worded more liberally.


Zope-Dev maillist  -  Zope-Dev@zope.org
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to