forked from Pylons/deform
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.txt
143 lines (90 loc) · 4.46 KB
/
TODO.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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
TODOs
=====
- [_] Easier JQuery UI theme changing.
- [X] Put input element on left hand side of label in
RadioChoiceWidget and CheckboxChoiceWidget.
- [_] RadioChoiceWidget doesn't work when used multiple times in a
page.
- [X] Make error message translations possible.
- [_] Progressive form validation (show validation errors as you
type).
- [X] Date widget with picker (see ``deform.widget.DateInputWidget``).
- [_] Time widget with picker.
- [_] DateTime widget with pickers.
- [X] Add a single-select widget.
- [X] Add a multi-select checkbox widget.
- [X] Add a "combo-box" widget (serviced by AutoComplete text box)
o Mixes free-form input with a drop-down.
- [_] Add a multi-select widget using dual lists.
- [X] Add "fixed-lentgh" string widgets (done by using jquery.maskedinput in
text input field)
o E.g., in parts of an SSN, filling in all digits in the first
part's field jumps automatically to the second.
- [_] Add a country / postal code widget
o Does a lookup and shows city and state / province.
- [_] Add an ISBN widget.
o Does a lookup and shows author, title, etc..
- [X] Make forms automagically put the cursor into the first field of a form.
- [X] Readonly widget variants
- [X] Use case: require (email or phonenumber; see
require_one_or_another in deformdemo).
- [X] Add a convention that allows a widget to specify the (logical)
resources it requires (e.g. ["foo.css", "jquery"]). Add an API
that allows you to retrieve all the logical resources required
by all widgets that are part of a form.
- [X] Provide a lame default widget for tuples in order to avoid ``
File "/Users/...deform/widget.py", line 92, in serialize raise
NotImplementedError`` during serialization or provide a better
error message (maybe a subclass of Widget that spits out a more
informative error message). (used TextInputCSV widget).
- [ ] Somehow prevent schemas that have sequence types (tuples and
sequences) that have no schema children from reaching the point
where we try to serialize them, as a hapless user will wind up
with a `` File "/Users/...../deform/widget.py", line 773, in
serialize item_field = field.children[0]`` exception instead of
a more sensible error message.
- [ ] Allow for single-field readonly renderings (e.g. on an add form,
the name must be provided, on an edit form the name cannot be
provided).
- [ ] Make deform.widget.RichText render only on oid specific element
in templates.
- [ ] Work out RichTextWidget default height and width and overrides
for them, then document how to do so.
- [ ] Add placeholder text to
:class:`deform.widget.AutocompleteinputWidget`
- [ ] CSRF:
<DanielHolth> I came up with a repoze.bfg.formish CSRF solution
that I don't entirely hate. The token stored on the
FormController is hmac(''.join(user_id, str(self.__class__),
request.url, csrf_secret), session_identifier). The main form
template inserts the token into the form if
hasattr(form.controller.csrf_token) and it's checked with a
decorator on the action method.
<DanielHolth> I tried setting
the token as a default value for a String() but then the form
will compute the correct csrf token when submitted without that
key.
<wiggy> I use a CSRForm class which is derived from formish.Form
and every user gets a secret which is reset on login
- Apply patches:
[ ] http://bugs.repoze.org/issue151
[X] http://bugs.repoze.org/issue165
- [ ] Spinner for upload widget.
- [ ] Focus first element in node when sequence item is added.
- [ ] http://deformdemo.repoze.org/multiple_forms/ has weird styling.
- [X] Date parts widget renders error "Incomplete" if all blank.
should be "Required" for consistency with others
Topics Needing Documentation
----------------------------
- Associating a Colander type with a new default widget type.
- Changing the close button image.
- Interfield validation.
- Explain ``widget_maker``.
Documentation Done, But Could be Better
---------------------------------------
- The Form class (and thee Button class) explanations.
- Multiple forms on the same page (in Form API docs only).
- FileUploadWidget tmpstore (in FileUploadWidget API docs only).
- Form post target changing (only in API docs)
- Internationalization (weak chapter)
- Creating a new schema type (punts to Colander docs in basic.rst)