From: Jamie L. <svn...@pl...> - 2011-03-30 16:15:44
|
Author: lentinj Date: Wed Mar 30 16:14:08 2011 New Revision: 48287 Modified: plone.formwidget.contenttree/branches/archetypes-content-source/plone/formwidget/contenttree/source.py Log: During widget traversal, PUBLISHED isn't available but still need to instantiate the form. getSite() is better than nothing Modified: plone.formwidget.contenttree/branches/archetypes-content-source/plone/formwidget/contenttree/source.py ============================================================================== --- plone.formwidget.contenttree/branches/archetypes-content-source/plone/formwidget/contenttree/source.py (original) +++ plone.formwidget.contenttree/branches/archetypes-content-source/plone/formwidget/contenttree/source.py Wed Mar 30 16:14:08 2011 @@ -6,6 +6,7 @@ from zope.schema.interfaces import IContextSourceBinder +from zope.app.component.hooks import getSite from zope.globalrequest import getRequest from plone.app.layout.navigation.interfaces import INavigationQueryBuilder @@ -176,7 +177,7 @@ content = context if not IAcquirer.providedBy(content): - content = getRequest()['PUBLISHED'].context + content = getattr(getRequest(),'PUBLISHED',getSite()) self.saved_path_source = self.path_source( content, selectable_filter=self.selectable_filter, @@ -215,9 +216,10 @@ def __call__(self, context): content = context if not IAcquirer.providedBy(content): - content = getRequest()['PUBLISHED'].context + content = getattr(getRequest(),'PUBLISHED',getSite()) self.saved_path_source = ArchetypesContentSource(content) return self.saved_path_source def __contains__(self, value): + # Invoked only if we haven't been bound to a context properly return self.saved_path_source.__contains__(value) |