Custom Object Source Binder for z3c.forms
Within a folderish dexterity content type i had to select objects for a relation field from just that context. Therefore i wrote a small Custom Source Binder.
from plone.formwidget.contenttree.source import ObjPathSource from plone.formwidget.contenttree.source import ObjPathSourceBinder class SubTreeObjPathSource(ObjPathSource): def __init__(self, context, selectable_filter, navigation_tree_query=None): super(SubTreeObjPathSource, self).__init__( context, selectable_filter, navigation_tree_query=navigation_tree_query) del self.navigation_tree_query['portal_type'] self.navigation_tree_query['path']['query'] = \ '/'.join(context.getPhysicalPath()) class SubTreeObjPathSourceBinder(ObjPathSourceBinder): path_source = SubTreeObjPathSource
And the updated field definition:
contact_person = RelationList( title = _(u"Contact Person"), value_type = RelationChoice( source = SubTreeObjPathSourceBinder() ) )