-
Notifications
You must be signed in to change notification settings - Fork 8
/
README.txt
121 lines (90 loc) · 3.87 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
**************************
collective.z3cform.widgets
**************************
.. contents:: Table of Contents
Overview
--------
A widget package for Dexterity projects.
collective.z3cform.widgets provides the following widgets:
**TasksWidget**
Adds a list of options; degrades to <textarea> if JavaScript is not
enabled. 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(options=TasksFieldWidget)
options = schema.List(
title=_(u"Available options"),
value_type= schema.TextLine(),
default=[],
required=True,
)
This widget uses the `jQuery TaskPlease`_ plugin.
**KeywordsWidget**
Tokenizing autocomplete text entry; will degrade to <textarea> if
JavaScript is not enabled. 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=KeywordsFieldWidget)
options = schema.List(
title=_(u"Available options"),
value_type= schema.TextLine(),
default=[],
required=True,
)
This widget uses the `jQuery Tokeninput`_ plugin.
**RelatedContentWidget**
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=RelatedContentFieldWidget)
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.
Use
---
New fields
^^^^^^^^^^
::
subjects = schema.Tuple(
title = _(u'label_categories', default=u'Categories'),
description = _(u'help_categories',
default=u"Also known as keywords, tags or labels, "
u"these help you categorize your content.'),
value_type = schema.TextLine(),
required = False,
missing_value = (,),
)
form.widget(subjects = KeywordsFieldWidget)
Override existing fields
^^^^^^^^^^^^^^^^^^^^^^^^
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.keywords_widget.KeywordsFieldWidget'
_directives_values[WIDGETS_KEY]['subjects'] = widget
_schema.getFields(ICategorization)['subjects'].index_name = 'Subject'
Here we replace the subject's widget.
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+).
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.
.. _`jQuery TaskPlease`: https://github.com/Quimera/tasksplease
.. _`jQuery Tokeninput`: http://loopj.com/jquery-tokeninput/
.. _`Chosen`: http://harvesthq.github.com/chosen/