[Checkins] SVN: z3c.ptcompat/trunk/src/z3c/ptcompat/ - Make zope.app.form directives optional
Sidnei da Silva
sidnei at enfoldsystems.com
Tue Apr 7 00:04:57 EDT 2009
Log message for revision 98963:
- Make zope.app.form directives optional
Changed:
U z3c.ptcompat/trunk/src/z3c/ptcompat/meta.zcml
U z3c.ptcompat/trunk/src/z3c/ptcompat/zcml.py
-=-
Modified: z3c.ptcompat/trunk/src/z3c/ptcompat/meta.zcml
===================================================================
--- z3c.ptcompat/trunk/src/z3c/ptcompat/meta.zcml 2009-04-07 03:39:17 UTC (rev 98962)
+++ z3c.ptcompat/trunk/src/z3c/ptcompat/meta.zcml 2009-04-07 04:04:56 UTC (rev 98963)
@@ -8,92 +8,99 @@
<!-- browser pages -->
<meta:directive
- name="page"
- schema="zope.app.publisher.browser.metadirectives.IPageDirective"
- handler=".zcml.page_directive"
- />
+ name="page"
+ schema="zope.app.publisher.browser.metadirectives.IPageDirective"
+ handler=".zcml.page_directive"
+ />
<meta:directive
- name="viewlet"
- schema="zope.viewlet.metadirectives.IViewletDirective"
- handler=".zcml.viewlet_directive"
- />
+ name="viewlet"
+ schema="zope.viewlet.metadirectives.IViewletDirective"
+ handler=".zcml.viewlet_directive"
+ />
<meta:directive
- name="viewletManager"
- schema="zope.viewlet.metadirectives.IViewletManagerDirective"
- handler=".zcml.viewlet_manager_directive"
- />
+ name="viewletManager"
+ schema="zope.viewlet.metadirectives.IViewletManagerDirective"
+ handler=".zcml.viewlet_manager_directive"
+ />
- <meta:complexDirective
- name="form"
- schema="zope.app.form.browser.metadirectives.IFormDirective"
- handler=".zcml.FormDirective"
- >
+ <configure zcml:condition="installed zope.app.form">
- <meta:subdirective
- name="widget"
- schema="zope.app.form.browser.metadirectives.IWidgetSubdirective"
- />
+ <!-- Those directives are only registered if zope.app.form is
+ available, to avoid a hard dependency -->
- </meta:complexDirective>
+ <meta:complexDirective
+ name="form"
+ schema="zope.app.form.browser.metadirectives.IFormDirective"
+ handler=".zcml.FormDirective"
+ >
+ <meta:subdirective
+ name="widget"
+ schema="zope.app.form.browser.metadirectives.IWidgetSubdirective"
+ />
- <meta:complexDirective
- name="editform"
- schema="zope.app.form.browser.metadirectives.IEditFormDirective"
- handler=".zcml.EditFormDirective"
- >
+ </meta:complexDirective>
- <meta:subdirective
- name="widget"
- schema="zope.app.form.browser.metadirectives.IWidgetSubdirective"
- />
- </meta:complexDirective>
+ <meta:complexDirective
+ name="editform"
+ schema="zope.app.form.browser.metadirectives.IEditFormDirective"
+ handler=".zcml.EditFormDirective"
+ >
+ <meta:subdirective
+ name="widget"
+ schema="zope.app.form.browser.metadirectives.IWidgetSubdirective"
+ />
- <meta:complexDirective
- name="subeditform"
- schema="zope.app.form.browser.metadirectives.ISubeditFormDirective"
- handler=".zcml.SubeditFormDirective"
- >
+ </meta:complexDirective>
- <meta:subdirective
- name="widget"
- schema="zope.app.form.browser.metadirectives.IWidgetSubdirective"
- />
- </meta:complexDirective>
+ <meta:complexDirective
+ name="subeditform"
+ schema="zope.app.form.browser.metadirectives.ISubeditFormDirective"
+ handler=".zcml.SubeditFormDirective"
+ >
+ <meta:subdirective
+ name="widget"
+ schema="zope.app.form.browser.metadirectives.IWidgetSubdirective"
+ />
- <meta:complexDirective
- name="addform"
- schema="zope.app.form.browser.metadirectives.IAddFormDirective"
- handler=".zcml.AddFormDirective"
- >
+ </meta:complexDirective>
- <meta:subdirective
- name="widget"
- schema="zope.app.form.browser.metadirectives.IWidgetSubdirective"
- />
- </meta:complexDirective>
+ <meta:complexDirective
+ name="addform"
+ schema="zope.app.form.browser.metadirectives.IAddFormDirective"
+ handler=".zcml.AddFormDirective"
+ >
+ <meta:subdirective
+ name="widget"
+ schema="zope.app.form.browser.metadirectives.IWidgetSubdirective"
+ />
- <meta:complexDirective
- name="schemadisplay"
- schema="zope.app.form.browser.metadirectives.ISchemaDisplayDirective"
- handler=".zcml.SchemaDisplayDirective">
+ </meta:complexDirective>
- <meta:subdirective
- name="widget"
- schema="zope.app.form.browser.metadirectives.IWidgetSubdirective"
- />
- </meta:complexDirective>
+ <meta:complexDirective
+ name="schemadisplay"
+ schema="zope.app.form.browser.metadirectives.ISchemaDisplayDirective"
+ handler=".zcml.SchemaDisplayDirective">
+ <meta:subdirective
+ name="widget"
+ schema="zope.app.form.browser.metadirectives.IWidgetSubdirective"
+ />
+
+ </meta:complexDirective>
+
+ </configure>
+
</meta:directives>
</configure>
Modified: z3c.ptcompat/trunk/src/z3c/ptcompat/zcml.py
===================================================================
--- z3c.ptcompat/trunk/src/z3c/ptcompat/zcml.py 2009-04-07 03:39:17 UTC (rev 98962)
+++ z3c.ptcompat/trunk/src/z3c/ptcompat/zcml.py 2009-04-07 04:04:56 UTC (rev 98963)
@@ -8,7 +8,6 @@
from zope.viewlet.interfaces import IViewletManager
from zope.app.publisher.browser import viewmeta
from zope.app.pagetemplate import simpleviewclass
-from zope.app.form.browser import metaconfigure as formmeta
from z3c.ptcompat import ViewPageTemplateFile
from z3c.ptcompat import config
@@ -112,56 +111,63 @@
return viewletmeta.viewletManagerDirective(_context, name, *args, **kwargs)
-if config.PREFER_Z3C_PT:
- # Replace globals in *Factory by the ones from our package, cloning
- # the existing functions so we don't have to re-define them.
- new_factory_globals = dict(ViewPageTemplateFile=ViewPageTemplateFile,
- SimpleViewClass=SimpleViewClass)
+try:
+ # Make zope.app.form a soft-dependency. We only register custom
+ # directives if it is available.
+ from zope.app.form.browser import metaconfigure as formmeta
+except ImportError:
+ pass
+else:
+ if config.PREFER_Z3C_PT:
+ # Replace globals in *Factory by the ones from our package, cloning
+ # the existing functions so we don't have to re-define them.
+ new_factory_globals = dict(ViewPageTemplateFile=ViewPageTemplateFile,
+ SimpleViewClass=SimpleViewClass)
- AddViewFactory = clone_and_replace_globals(formmeta.AddViewFactory,
- new_factory_globals)
- EditViewFactory = clone_and_replace_globals(formmeta.EditViewFactory,
- new_factory_globals)
- DisplayViewFactory = clone_and_replace_globals(formmeta.DisplayViewFactory,
+ AddViewFactory = clone_and_replace_globals(formmeta.AddViewFactory,
new_factory_globals)
+ EditViewFactory = clone_and_replace_globals(formmeta.EditViewFactory,
+ new_factory_globals)
+ DisplayViewFactory = clone_and_replace_globals(formmeta.DisplayViewFactory,
+ new_factory_globals)
- # Now, replace globals in the directive handlers' __call__ by our own
- # factories that were cloned right above.
- new_form_globals = dict(AddViewFactory=AddViewFactory,
- EditViewFactory=EditViewFactory,
- DisplayViewFactory=DisplayViewFactory)
+ # Now, replace globals in the directive handlers' __call__ by our own
+ # factories that were cloned right above.
+ new_form_globals = dict(AddViewFactory=AddViewFactory,
+ EditViewFactory=EditViewFactory,
+ DisplayViewFactory=DisplayViewFactory)
- class AddFormDirective(formmeta.AddFormDirective):
- __call__ = clone_and_replace_globals(
- formmeta.AddFormDirective.__call__.im_func,
- new_form_globals)
+ class AddFormDirective(formmeta.AddFormDirective):
+ __call__ = clone_and_replace_globals(
+ formmeta.AddFormDirective.__call__.im_func,
+ new_form_globals)
- class EditFormDirective(formmeta.EditFormDirective):
- __call__ = clone_and_replace_globals(
- formmeta.EditFormDirective.__call__.im_func,
- new_form_globals)
+ class EditFormDirective(formmeta.EditFormDirective):
+ __call__ = clone_and_replace_globals(
+ formmeta.EditFormDirective.__call__.im_func,
+ new_form_globals)
- class FormDirective(formmeta.FormDirective):
- __call__ = clone_and_replace_globals(
- formmeta.FormDirective.__call__.im_func,
- new_form_globals)
+ class FormDirective(formmeta.FormDirective):
+ __call__ = clone_and_replace_globals(
+ formmeta.FormDirective.__call__.im_func,
+ new_form_globals)
- class SubeditFormDirective(formmeta.SubeditFormDirective):
- __call__ = clone_and_replace_globals(
- formmeta.SubeditFormDirective.__call__.im_func,
- new_form_globals)
+ class SubeditFormDirective(formmeta.SubeditFormDirective):
+ __call__ = clone_and_replace_globals(
+ formmeta.SubeditFormDirective.__call__.im_func,
+ new_form_globals)
- class SchemaDisplayDirective(formmeta.SchemaDisplayDirective):
- __call__ = clone_and_replace_globals(
- formmeta.SchemaDisplayDirective.__call__.im_func,
- new_form_globals)
-else:
- AddViewFactory = formmeta.AddViewFactory
- EditViewFactory = formmeta.EditViewFactory
- DisplayViewFactory = formmeta.DisplayViewFactory
+ class SchemaDisplayDirective(formmeta.SchemaDisplayDirective):
+ __call__ = clone_and_replace_globals(
+ formmeta.SchemaDisplayDirective.__call__.im_func,
+ new_form_globals)
+ else:
+ AddViewFactory = formmeta.AddViewFactory
+ EditViewFactory = formmeta.EditViewFactory
+ DisplayViewFactory = formmeta.DisplayViewFactory
- AddFormDirective = formmeta.AddFormDirective
- EditFormDirective = formmeta.EditFormDirective
- FormDirective = formmeta.FormDirective
- SubeditFormDirective = formmeta.SubeditFormDirective
- SchemaDisplayDirective = formmeta.SchemaDisplayDirective
+ AddFormDirective = formmeta.AddFormDirective
+ EditFormDirective = formmeta.EditFormDirective
+ FormDirective = formmeta.FormDirective
+ SubeditFormDirective = formmeta.SubeditFormDirective
+ SchemaDisplayDirective = formmeta.SchemaDisplayDirective
More information about the Checkins
mailing list