Merge pull request #12 from lentinj/master

Add some default binder instances with no filters
This commit is contained in:
Jamie Lentin 2013-06-29 13:18:58 -07:00
commit e8d7f0bc34
3 changed files with 30 additions and 1 deletions

View File

@ -10,7 +10,27 @@ Choice fields, and a multi-select one (AutocompleteMultiSelectionFieldWidget)
for collection fields (e.g. List, Tuple) with a value_type of Choice.
When using this widget, the vocabulary/source has to provide the IQuerySource
interface from z3c.formwidget.query and have a search() method.
interface from z3c.formwidget.query and have a search() method. The easiest
way to do this is generate one with one of:
* plone.formwidget.contenttree.PathSourceBinder(navigation_tree_query=None, **kw)
* plone.formwidget.contenttree.ObjPathSourceBinder(navigation_tree_query=None, **kw)
* plone.formwidget.contenttree.UUIDSourceBinder(navigation_tree_query=None, **kw)
Where ``navigation_tree_query`` is some restrictions that should be applied to
any Catalog query. The rest of the arguments are used to form a filter (see source.py).
``PathSourceBinder`` and ``ObjPathSourceBinder`` store the selected object's
path in the field value. This means that the link will be broken if the object
is moved. ``UUIDSourceBinder`` stores UUID references, so will handle pages
being moved.
If you do not want to filter the content tree whatsoever, there are some
pre-baked instances too:
* plone.formwidget.contenttree.path_src_binder
* plone.formwidget.contenttree.obj_path_src_binder
* plone.formwidget.contenttree.uuid_src_binder
Example Usage::

View File

@ -4,6 +4,10 @@ Changelog
1.0.7 (unreleased)
------------------
* Add in some default binder instances, mostly for use with supermodel XML
schemas.
[lentinj]
* Switch to ``plone.app.testing``
[saily]

View File

@ -6,3 +6,8 @@ from plone.formwidget.contenttree.widget import MultiContentTreeFieldWidget
from plone.formwidget.contenttree.source import PathSourceBinder,\
ObjPathSourceBinder, UUIDSourceBinder
# Some binder instances for use with plone.supermodel schemas
path_src_binder = PathSourceBinder()
obj_path_src_binder = ObjPathSourceBinder()
uuid_src_binder = UUIDSourceBinder()