Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A widget package for Plone 4 projects.
Python JavaScript CSS Other

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
docs
src/collective
.gitignore
MANIFEST.in
README.rst
README.txt
bootstrap.py
buildout.cfg
enhancedtextlines.png
rebuild_i18n.sh
setup.cfg
setup.py
test-4.1.x.cfg
test-4.2.x.cfg
tokeninput.png

README.rst

collective.z3cform.widgets

Life, the Universe, and Everything

A widget package for Dexterity projects.

collective.z3cform.widgets provides the following widgets:

EnhancedTextLinesFieldWidget

This widget is an ajaxified version of the TextLinesFieldWidget that will allow creation, sort, update and deletion of text lines; degrades to <textarea> if JavaScript is not enabled.

https://github.com/collective/collective.z3cform.widgets/raw/master/enhancedtextlines.png

This widget uses the jQuery TaskPlease plugin.

TokenInputFieldWidget

TokenInputFieldWidget allows your users to select multiple items from a predefined list, using autocompletion as they type to find each item. You may have seen a similar type of text entry when filling in the recipients field sending messages on Facebook. This widget will degrade to <textarea> if JavaScript is not enabled.

https://github.com/collective/collective.z3cform.widgets/raw/master/tokeninput.png

This widget uses the jQuery Tokeninput plugin.

MultiContentSearchFieldWidget

A widget to add a dynamic list of objects. This works as a widget for related items field so it must be used like this.

relatedItems = RelationList(
    title=_(u'label_related_items', default=u'Related Items'),
    default=[],
    value_type=RelationChoice(title=u"Related",
                  source=ObjPathSourceBinder(portal_type='Document')),
    required=False,
    )
form.widget(relatedItems=MultiContentSearchFieldWidget)

the parameters passed to the ObjPathSourceBinder class are used to filter the search of elements to relate to.. if none parameter are passed, a tree structure is shown in the widget.

Don't Panic

New fields

EnhancedTextLinesFieldWidget

To use this widget we must use a List field or a Tuple field with the value_type as an schema.TextLine() like this:

form.widget(subjects = KeywordsFieldWidget)
options = schema.Tuple(
    title=_(u"Options"),
    value_type=schema.TextLine(),
    missing_value=(,),
    )
TokenInputFieldWidget

To use this Widget we must use a List field or a Tuple field with the value_type as a schema.TextLine() like this:

form.widget(options=TokenInputFieldWidget)
subjects = schema.List(
    title=_(u"Categories"),
    value_type=schema.TextLine(),
    default=[],
    )

MultiContentSearchFieldWidget

The parameters passed to the ObjPathSourceBinder class are used to filter the search of elements to relate to.. if none parameter are passed, a tree structure is shown in the widget:

form.widget(relatedItems=MultiContentSearchFieldWidget)
relatedItems = RelationList(
    title=_(u"Related Items"),
    default=[],
    value_type=RelationChoice(title=u"Related",
        source=ObjPathSourceBinder(portal_type='Document')),
    )

Override existing fields

EnhancedTextLinesFieldWidget
TBA
TokenInputFieldWidget

To override an existing field put the following code in the __init__.py of your package:

from plone.autoform.interfaces import WIDGETS_KEY
from plone.directives.form.schema import TEMP_KEY
from plone.app.dexterity.behaviors.metadata import ICategorization
from zope import schema as _schema

_directives_values = ICategorization.queryTaggedValue(TEMP_KEY)
_directives_values.setdefault(WIDGETS_KEY, {})
widget = 'collective.z3cform.widgets.token_input_widget.TokenInputFieldWidget'
_directives_values[WIDGETS_KEY]['subjects'] = widget
_schema.getFields(ICategorization)['subjects'].index_name = 'Categories'
MultiContentSearchFieldWidget
TBA

Future widgets

The following widgets will be available in this package in the near future:

  • widget to select an option from a list; this widget will degrade to <select> if JavaScript is not enabled.
  • widget to select multiple options from a list; this widget will degrade to <select> if JavaScript is not enabled.

This widgets will probably use the Chosen plugin.

Browsers supported

All modern browsers should be supported (Mozilla Firefox 3.0+, Google Chrome 7.0+, Apple Safari 4.0+, Opera 10.0+ and Microsoft Internet Explorer 9.0+).

Mostly Harmless

Have an idea? Found a bug? Let us know by opening a support ticket.

Something went wrong with that request. Please try again.