[Zope-dev] zope.app.publication dependencies (volunteers needed!)

Chris McDonough chrism at plope.com
Thu May 14 19:10:25 EDT 2009

On 5/14/09 6:36 PM, Hanno Schlichting wrote:
> Chris McDonough wrote:
>> I did a bit of research on the direct "zope.app.*" dependencies of zope.formlib.
>> - I looked into its dependency on zope.app.pagetemplate.
>>     It defines two "named templates" in its form.py module using
>>     The ViewPageTemplateFile class from zope.app.pagetemplate.
>>     Each is registered in its configure.zcml as adapter with the
>>     name "default". I don't have enough zen to know what the intent
>>     is here or whether the named templates could use
>>     zope.pagetemplate instead.
> This is part of the whole named template adapter story. The rationale
> for the whole story is to be able to replace the template of a view
> without touching the view. So the template is looked up as an adapter
> and not just accessed as self.index / self.template. Personally I find
> the whole feature just annoying and overcomplicated. I think the whole
> feature is due for removal. It's only used in a very minor number of
> cases and not consistently with views in general.
>> - I looked into its dependency on zope.app.form.  It
>>     essentially uses a bunch of interfaces from the
>>     zope.app.form.interfaces package.  I don't know whether it
>>     would be reasonable to move all those interfaces
>>     to zope.browser or somewhere else, but essentially
>>     moving those interfaces to somewhere "neutral"
>>     would break this particular dependency.
> Why not move the interfaces to zope.formlib and invert the dependency,
> so zope.app.form depends on zope.formlib? Or are these generally useful
> outside of a formlib context?

That's possible.

A Google search indicates that zope.app.form.interfaces is being used by:

- zope.formlib

- schooltool

- plone (maybe)

- alchemist

- sputnik (an openplans project)

- collective.easyslider

- zc.extjs

- zenoss

- alphaflow

It's also apparently documented in Phillip's book.  So... what?  Errrr... I 
dunno.  The interfaces are:

from zope.app.form.interfaces import IInputWidget, IDisplayWidget
from zope.app.form.interfaces import InputErrors, WidgetInputError
from zope.app.form.browser.interfaces import IWidgetImportErrorView

Any thoughts?

- C

More information about the Zope-Dev mailing list