Deform Change History¶
2.0a2 (2013-10-18)¶
PasswordWidgetandCheckedPasswordWidgethave grown an additional argument/attribute namedredisplay, which controls what happens on a validation failure of a form involving such a field. IfredisplayisTrue(the default), the password will be re-rendered into the form when the form is re-rendered after validation failure. IfredisplayisFalse, the password will not be re-rendered into the form. The default isFalse, which means that, as of this release, passwords will not be redisplayed; this changes the default behavior wrt previous releases. Values typed into password fields are not redisplayed by default during validation failure, as a security measure (the value winds up in browser history). UsePasswordWidget(redisplay=True)orCheckedPasswordWidget(redisplay=True)to make these widgets redisplay passwords on validation failures, matching the old behavior.- When using the default Chameleon template renderer, template names can now
be “asset specifications” e.g.
mypackage:subdir1/subdir2/mytemplate.ptinstead of extensionless paths relative to a search path. When template names are specified as asset specifications, thepkg_resources.resource_filenameAPI is used to dereference them into an actual file path.
2.0a1 (2013-10-05)¶
This is an alpha release of Deform v2. Deform v2 is backwards incompatible with Deform v1. It requires the use of Twitter Bootstrap v3, whereas deform v1 did not require Bootstrap.
A demonstration site that shows Deform 2 in action exists at http://deform2demo.repoze.org.
Both Deform 1 and Deform 2 will be maintained going forward. If you wish
to continue using Deform 1, because you cannot upgrade, or cannot depend on
Bootstrap 3, please pin your deform distribution requirement to
something below 2.0a1, e.g. deform<=1.999.
This first alpha release is missing formal documentation updates. Apologies, we needed to get a release out onto PyPI, as not having one is holding back the development of a number of platforms and applications that depend on the changes in v2+. Documentation updates will be forthcoming over the lifetime of future alpha/beta releases. However, below is a list of known issues that need to be addressed to make a final release of Deform 2, as well as information about new features, and migration notes. You may also be able to make use of the demo site at http://deform2demo.repoze.org to divine how things have changed, and what CSS and JavaScript resources you’ll need to include in your pages to make use of this release.
TODO
- docs
- decide how to explain form.css (include in requirements or?)
- horizontal/inline forms + structural things
- assets for templates: deform should provide a tool to resolve that?
- placeholder support for all textual inputs (and required/maxlength see also https://github.com/Pylons/deform/pull/116)
- display help-blocks for readonly fields?
- maybe readonly should be a property of the schema, not the widget.
- consider whether “style”/”css_class” on multi-input widgets should apply to a container or each element.
- audit use of e.g. string:${css_class} so we don’t see unexpected class=”None” in widget rendering output.
- some sort of test for mapping_item input_prepend/input_append
- Currently description shows up as both tooltip of label and as help-block. Maybe make these two things separate or at least don’t show them both using the same value.
- normalize CSS class names to deform-foo rather than deformFoo
- sequence_of_sequences: js that processes close/order buttons has to be less promiscuous (it uses e.g. “find”); symptom: buttons appear/disappear, act on the wrong element, etc... ugh 2013/10/05 cannot replicate, but still believe there may be an issue, but maybe iElectric fixed it
NICE TO HAVE
- structural widget (mapping_item.pt) - do we need that or not or what? + add a demo
- prepend/append t.bootstrap stuff
- https://github.com/Pylons/deform/pull/116#issuecomment-23210460
- group demos by widget type
- handle ajax demo more UX friendly
- Put drag handles in panel headers: https://github.com/Pylons/deform/issues/180
NEW FEATURES:
- input_prepend/input_append in mapping_item widget.
- field.parent
- field.get_root
- inline attr of checkboxchoice and radiochoice widgets (see https://github.com/Pylons/deform/pull/182)
- http://deform2demo.repoze.org/
MIGRATION NOTES:
- removed deprecated height, width, skin, theme parameters from RichTextWidget (use “options” instead)
- removed deprecated render_initial_item from SequenceWidget
- removed deprecated deform.Set (use colander.Set instead)
- DateInputWidget renamed parameter dateFormat to format (dateFormat now unsupported).
- DateTimeInputWidget now renders as two fields: one for a date and one for a time, using pickadate.
- We no longer bother trying to use the native datetimeinput widget on any browser, because the support is so spotty.
- DateTimeInputWidget takes two options now: date_options and time_options instead of a single options dictionary. The options are pickadate date/time options respectively.
- It is no longer possible to do DateTimeWidget().options[‘a’] = ‘foo’ or DateTimeWidget().date_options[‘a’] = ‘foo’. If you need to change options imperatively, set the entire .options/.date_options dictionary.
- merged TypeaheadInputWidget to AutocompleteInputWidget (removed delay parameter)
- AutocompleteInputWidget now accepts string type for “values”
- widgets no longer accepts “size” (instead use style=”width: x”), except SelectWidget (it means the size of the dropdown)
- get_widget_resources now returns asset specifications rather than deform-static-relative paths
- deform 2.0 requires users to manually load TB 3.0 and jquery 2.0
- required labels no longer insert an asterisk inside a <span class=”req”> inside themselves. instead the label element has a required class if the field is required; use form.css to display this as an asterisk.
- min_length of AutocompleteInputWidget now defaults to 1 (was 2)
0.9.9 (2013-09-23)¶
Bug Fixes¶
- rename country specific locales to only include language [iElectric]
- Un-break single select widget. See https://github.com/Pylons/deform/issues/181
0.9.8 (2013-09-01)¶
Features¶
deform.widget.RichTextWidgetnow accepts a dict/two-tupleoptionsfor specifying arbitrary options to pass to TinyMCE’sinitfunction. All default options are now part of the class itself (where possible) and can be customised by usingoptions. [davidjb]- Widgets now accept an
item_css_classargument. This argument, when provided, sets a class value on the top level element of the item template which surrounds the widget (usually an <li>). - DateTime widget now handles stripping timezones from ISO-formatted strings that include microseconds. Previously it would just choke.
Bug Fixes¶
- Trigger a change event when adding/removing sequence items.
- Add optional label to checkbox widget.
- Raise a ValueError exception when the prototype for a field in a sequence has no name. See https://github.com/Pylons/deform/issues/149
- Worked on the templates to make as many widgets be proper HTML. Deformdemo now includes a validator which can be used for checking. The major changes involve ensuring that only <li> can be children of <ul> and that labels always refer to distinct fields. Also labels are set around fields to provide better touch targets: you can click on the label as well as the field. Validation still raises some errors about invalid attributes such as prototype but these can be safely ignored: browsers will ignore things they don’t know about - this is defined in HTML 5 (it used to be guess work). Having the right <label> added a wart to mappings where the first item doesn’t get a counter because the label is already assigned. This may be revisited as it seems to affect only mappings. See https://github.com/Pylons/deformdemo/pull/20 for futher context.
0.9.7 (2013-03-06)¶
Bug Fixes¶
- Readonly checkbox template had a logic error.
Documentation¶
- Corrected the expected server response when using the Autocomplete widget.
0.9.6 (2013-01-10)¶
Bug Fixes¶
- Fixed remove bug in nested sequences. See https://github.com/Pylons/deform/pull/89
- Fixed bug wherein items added to a sequence nor the initial items rendered in a sequence would not reflect the correct defaults of the item widget. See https://github.com/Pylons/deform/pull/79
- Fix bug where native datetime/date widget rendering competed with jQuery datetime/date widget rendering. See https://github.com/Pylons/deform/pull/142
Dependencies¶
- Depend on and use zope.deprecation to deprecate Set class.
- Deform now depends on Colander >= 1.0a1 (previously it depended on >= 0.8).
It requires Colander 1.0a1’s newer
cstruct_childrenandappstruct_childrenmethods of schema objects as well as being able to import objects from Colander that don’t exist in earlier versions. - Deform now depends on Chameleon >= 2.5.1 (previously it depended on >= 1.2.3). It requires the Markup class supplied by this version or better.
- Deform no longer has a setup_requires dependency on setuptools_git (useless, as the version on PyPI is broken).
- Setup.py now includes all testing requirements in tests_require that are in testing extras and vice versa.
Features¶
- Allow SelectWidget to produce <optgroup> HTML tags. See https://github.com/Pylons/deform/pull/87
- Allow
deform.form.Formconstructor to accept anautocompletekeyword argument, which controls theautocompleteattribute of the form tag. - Add Python 3.3 Trove classifier.
- Pass through unknown keys in a
filedictFileData serialization (FBO of passing out of band information). deform.Settype deprecated in favor of use ofcolander.Set.- Give the preview_url method of the tempstore access to the stored item. [tomster]
- Add
styleattribute/arguments to textinput-related widgets allowing you to set the style of the tag by hand. - Allow
deform.widget.SequenceWidgetconstructor to accept anorderablekeyword argument. Default isFalse. IfTrue, allow drag-and-drop reordering of SequenceWidget items (via jQuery UI Sortable). - The default widget for the colander.Money type is now deform.widgets.MoneyInputWidget.
- Built-in widgets may have a ‘readonly’ attribute/constructor-argument, to
indicate that a form field associated with the widget should use its
readonly template instead of its normal readwrite template. A
readonlykeyword argument can still be passed toField.serializeto render a field as readonly, like in older versions. deform.field.Fieldnow has a__contains__method, which returnsTrueif the named field is a subfield of the field on which it is called.deform.field.Fieldnow has avalidate_pstructmethod which works likevalidateexcept it accepts a pstruct directly instead of accepting a list of controls.deform.field.Field.validatenow accepts asubcontrolargument for validating a submapping of a form.- In support of “retail” form rendering, the
serializemethod of widgets now accepts arbitrary keyword arguments. These are used as top-level value overrides to widget templates. - In support of “retail” form rendering, the
serializemethod of a Field now accepts arbitrary keyword arguments. These are passed along to it’s widget’sserializemethod. - It is now possible to pass an
appstructargument to thedeform.Field(and by extension, thedeform.Form) constructor. When you do so, you can omit passing anappstructargument to therendermethod of the field/form. Fields set a cstruct value recursively when supplied with anappstructargument to their constructor. This is in support of “retail” form rendering. - Form/field objects are now initialized with a cstruct (recursively) when created. This means that accessing form.cstruct will return the current set of rendering values. This value is reset during validation, so after a validation is done you can re-render the form to show validation errors. This is in support of “retail” form rendering.
- Form/field objects now have peppercorn-field-outputting methods:
start_mapping,end_mapping,start_sequence,end_sequence,start_rename,end_renamein support of retail form rendering. - The
deform.Field(and thereforedeform.Form) classes now expose arender_templatemethod, which injectsfieldandcstructinto the dictionary passed to the template if they don’t already exist in the**kwpassed. This is in support of retail form rendering. - Add
set_appstructandset_pstructmethods to Field; these accept, respectively, an appstruct or a pstruct and set the cstruct related to the field to the deserialized or serialized value.
Documentation¶
- Add a (weak) “Retail Form Rendering” chapter to the docs.
0.9.5 (2012-04-27)¶
- Add translations for TinyMCE. Thanks OCHIAI, Gouji.
- Japanese translation thanks to OCHIAI, Gouji.
- Modified Russian translation thanks to aleksandr.rakov
- Date(Time)Widget supports now options to configure it, thx to gaston tjebbes, kiorky
- FileUploadWidget now sanitizes IE/Windows whole-path filenames before passing them back to the caller during deserialization/validation.
- Add docs and dev setup.py aliases ala Pyramid.
- Add MoneyInputWidget widget type.
- Allow a custom i18n domain to be used for the “Add ${subitem_title}” link of a SequenceWidget. See https://github.com/Pylons/deform/issues/85 .
- Allow the use of Integer values with SelectWidget. See https://github.com/Pylons/deform/issues/81 .
- CheckedInputWidget and CheckedPasswordWidget now populate the “confirm” element with the cstruct value (for edit forms).
- Update to JQuery 1.7.2.
- Update to jquery.form 3.09.
0.9.4 (2012-02-14)¶
- No longer Python 2.5 compatible. Python 2.6+ is required.
- Python 3.2 compatible.
- Translate title attribute for remove button in sequence fields.
- Do not output empty error messages for sequence items. After translation these would insert the PO file metadata.
- Update to lingua for translations, add french translation
- fix multiple i18n issues.
- Fix a bug where displaying error could lead on an error when you have imbricated Mapping objects
- Fix issue #54: form.pt does not show validation errors from the top node of the schema. See https://github.com/Pylons/deform/issues/54 for more information.
- Previously, all CheckedInputWidget and CheckedPasswordWidget fields had hardcoded input[name] attributes of ‘value’ and ‘confirm’. When deserializing a form, this caused colander.null to be passed to the widget deserialization function since neither submitted value matched the name of the field. This change simply replaces ‘value’ with the name of the field and ‘confirm’ with the name of the field with ‘-confirm’ appended.
- In select widget, add css_class to <select> rather than only <option>.
- Allow RichText fields to load their editor only after clicking on them
- There is no longer a
deform_ajaxifyglobal javascript function. Instead forms are AJAXified directly by the javascript callback for the form.
0.9.3 (2011-08-10)¶
- Update Dutch translations.
- Translate title and description of items for sequence fields.
- Add a new API method to field objects:
translate. This method will use the translator passed to the underlying renderer to translate message ids into text.
0.9.2 (2011-07-22)¶
- Chameleon 2 compatibility.
- Use default widgets for a schema’s baseclass if known instead of always falling back to a text widget.
- Deform now includes a
beautify.css(contributed by Ergo^) in its static directory, which can be used to make form element styling prettier. - Moved
deformdemointo its own package and Github repository (https://github.com/Pylons/deformdemo).
0.9.1 (2011-06-23)¶
Add Dutch translation.
Add the
deform.widget.DateTimeWidgetwidget, which uses the jQueryUI Timepicker add-on.DateTimeWidgetuses the ISO8601 combined date and time format internally, as expected bycolander.DateTime, but converts to the more friendly separate date and time format for display in the widget.This widget is now the default for colander.DateTime schema types.
Upgrade to jquery-ui 1.8.11, as required by the timepicker.
Compile all
.pofiles to.moindeform/localeand remove Texan locale (funny, but breakspython setup.py compile_catalogwith an UnknownLocale error.)Fix references to repoze.bfg and update obsoletes URLs in the demo application
Remove unused
jquery.autocomplete.min.jsfile from static directory.SelectWidget now has a
sizeattribute to support single select widgets that are not dropdowns.The value fed to the
deform.form.Buttonclass asnamewould generate an invalid HTML id if it contained spaces. Now it converts spaces to underscores if they exist in the name. See https://github.com/Pylons/deform/pull/14 .Deformdemo application now has a Time field demonstration.
Deform Chameleon templates now contain i18n:translate tags.
German translation updated.
Fixed invalid HTML generated for “select” widget.
When using an ajax form without a redirect, a submit overwrites the form. In the case of a form validation failure on first submit, no event handlers were registered to submit the form via ajax on the second submit. This is now fixed. See https://github.com/Pylons/deform/pull/1 .
0.9 (2011-03-01)¶
- Moved to GitHub (https://github.com/Pylons/deform).
- Added tox.ini for testing purposes.
- Fix select dropdown behavior on Firefox by fixing CSS (closes http://bugs.repoze.org/issue152).
- Removed
wufoo.css, minimizedform.css. Changed templates around to deal with CSS changes. - Sequence widgets now accept a min_len and a max_len argument, which influences its display of close and add buttons.
- Convert demo application from repoze.bfg to Pyramid.
- Depend on Chameleon<1.999 (deform doesn’t yet work with Chameleon 2).
0.8.1 (2010-12-17)¶
Features¶
- Allow
deform.form.Buttonclass to be passed adisabledflag (false by default). If a Button is disabled, its HTMLdisabledsetting will be set true.
0.8 (2010-12-02)¶
Features¶
- Added Polish locale data: thanks to Marcin Lulek.
Bug Fixes¶
- Fix dynamic sequence item adding on Chrome and Firefox 4. Previously if there was a validation error rendering a set of sequence items, the “add more” link would be rendered outside the form, which would cause it to not work. Wrapping the sequence item <li> element in a <ul> fixed this.
0.7 (2010-10-10)¶
Features¶
- Added Danish locale.
- Added Spanish locale: thanks to David Cerna for the translations!
DatePartsWidgetnow renders error “Required” if all blank or “Incomplete” if partially blank for consistency with the other widgets.- Different styling involving <li> and <ul> for checkbox choice, checked input, radio choice, checked password, and dateparts widgets (via Ergo^). See http://bugs.repoze.org/issue165.
Dependencies¶
- Deform now depends on
colanderversion 0.8 or better (the demo wants to use schema bindings). - Deform now depends on
Chameleon(uppercase) rather thanchameleonto allow for non-PyPI servers.
Features¶
Sequence widgets are no longer
structuralby default; they now print the label of the sequence above the sequence adder.Radio buttons in a radio button choice widget are now spaced closer together and the button is on the left hand side.
The sequence remove button is no longer an image.
The sequence widget now puts the sequence adding link after any existing items in the sequence (previously the link was always beneath the sequence title).
It is now possible to associate a widget with a schema node within the schema directly. For example:
import colander import deform.widget class MySchema(Schema): description = colander.SchemaNode( colander.String(), widget=deform.widget.RichTextWidget() )
For more information, see “Changing the Default Widget Associated With a Field” in the documentation.
The constructor of
deform.Fieldobjects (and thusdeform.Formobjects) now accept arbitrary keyword arguments, each of which is attached to the field or form object being constructed, as well as being attached to its descendant fields recursively.The form object’s template now respects the
css_classargument / attribute of the form node.CheckboxChoice and RadioChoice widgets now use <ul> and <li> to display individual choice elements (thanks to Ergo^), and both widgets put the label after the element instead of before as previously.
The
deform.widget.AutocompleteInputWidgetwidget now uses JQuery UI’s autocomplete sublibrary <http://docs.jquery.com/UI/Autocomplete> instead of thejquery.autocompletelibrary to perform its job in order to reduce the number of libraries needed by Deform. Some options have been changed as a result, and the set of resources returned byform.get_widget_resourceshas changed.This change also implies that when a widget which uses a remote URL as a
valuesinput, the remote URL must return a JSON structure instead of a\n-delimited list of values.
Requirements¶
- This Deform version requires
colanderversion 0.7.3 or better.
Bug Fixes¶
RichTextWidget,AutocompleteInputWidget,TextInputWidgetwith input masks, andCheckedInputWidgetwith input masks could not be used properly within sequences. Now they can be. See alsoInternalandBackwards Incompatibilitieswithin this release’s notes. This necessitated new requireddeform.load()anddeform.addCallback()JavaScript APIs.- Radio choice widgets included within a submapping no longer put their selections on separate lines.
- Rich text widgets are now 500 pixels wide by default instead of 640.
- RadioChoiceWidgets did not work when they were used within
sequences. Making them work required some changes to the its
template and it added a dependency on
peppercorn>= 0.3. - To make radio choice widgets work within sequences, the
deform.addSequenceItem JavaScript method needed to be changed. It
will now change the value of
nameattributes which contain a marker that looks like an field oid (e.g.deformField1), and, like the code which changes ids in the same manner, appends a random component (e.g.deformField1-HL6sgP). This is to support radio button groupings. - The mapping and sequence item templates now correctly display errors
with
msgvalues that are lists. Previously, a repr of a Python list was displayed when a widget had an error with amsgvalue that was a list; now multiple <p> nodes are inserted into the rendering, each <p> node containing an individual error message. (Note that this change requires colander 0.7.3).
Backwards Incompatibilities¶
- The JavaScript function
deform.load()now must be called by the HTML page (usually in a script tag near the end of the page, ala<script..>deform.load()</script>) which renders a Deform form in order for widgets which use JavaScript to do proper event and behavior binding. If this function is not called, built-in widgets which use JavaScript will no longer function properly. - The JavaScript function
deformFocusFirstInputwas removed. This is now implied bydeform.load(). - The
closebutton_urlargument to the SequenceWidget no longer does anything. Style the widget template via CSS to add an image.
Internal¶
- Provided better instructions for running the demo app and running
the tests for the demo app in
deformdemo/README.txt. - Try to prevent false test failures by injecting sleep statements in
things that use
browser.key_press. - Moved
deformdemo/tests/test_demo.pytodeformdemo/test.pyas well as movingdeformdemo/tests/selenium.pytodeformdemo/selenium.py. Removed thedeformdemo/testssubdirectory. - The date input widget now uses JQueryUI’s
datepickerfunctionality rather than relying on JQuery Tools’dateinput. The latter was broken for sequences, and the former works fine. - The various deform* JavaScript functions in
deform.jshave now been moved into a top-level namespace. For example, where it was necessary to calldeformFocusFirstInput()before, it is now necessary to calldeform.focusFirstInput(). - Make the TinyMCE rich text widget use
mode: 'exact'instead ofmode: 'textareas'. richtext,autocomplete_input,textinput,checked_input, anddateinput, andformtemplates now use the newdeform.addCallbackindirection instead of each registering their own JQuery callback or performing their own initialization logic, so that each may be used properly within sequences.- Change sequence adding logic to be slightly simpler.
- The sample app form page now calls
deform.load()rather thandeformFocusFirstInput(). - Added new demo app views for showing a sequence of autocompletes, a sequence of dateinputs, a sequence of richtext fields, a sequence of radio choice widgets and a sequence of text inputs with masks and tests for same.
Documentation¶
- Added a note about
get_widget_resourcesto the “Basics” chapter. - Added a note about
deform.load()JavaScript requiredness to the “Basics” chapter. - Add new top-level sections named
Widget TemplatesandWidget JavaScriptto the “Widgets” chapter.
0.5 (2010-08-25)¶
Features¶
- Added features which make it possible to inquire about which resources (JavaScript and CSS resources) are required by all the widgets that make up a form rendering. Also make it possible for a newly created widget to specify its requirements. See “Widget Requirements and Resources” in the widgets chapter of the documentation.
- Add the
get_widget_requirementsmethod todeform.Fieldobjects. - Add the
get_widget_resourcesmethod todeform.Fieldobjects. - Allow
deform.Field(anddeform.Form) objects to accept a “resource registry” as a constructor argument. - Add the
deform.Field.set_widgetsmethod, which allows a (potentially nested) set of widgets to be applied to children fields of the field upon which it is called. - Add the
deform.widget.TextInputCSVwidget. This widget is exactly like thedeform.widget.TextAreaCSVwidget except it accepts a single line of input only. - The default widget for
colander.Tupleschema types is nowdeform.widget.TextInputCSV. - The
deform.widget.FileUploadWidgetnow returns an instance ofdeform.widget.filedictinstead of a plain dictionary to make it possible (using isinstance) to tell the difference between file upload data and a plain data dictionary for highly generalized persistence code.
0.4 (2010-08-22)¶
Bug Fixes¶
- When the hidden widget is used to deserialize a field, return
colander.nullrather than the empty string so that it may be used to represent non-text fields such ascolander.Integer. This is isomorphic to the change done previously todeform.TextInputWidgetto support nontextual empty fields. - Fix typo about overriding templates using set_zpt_renderer in templating chapter.
- Fix link to imperative schema within in Colander docs within “Basics”.
- Remove duplicate
deform.widget.DateInputWidgetclass definition.
Features¶
- Add a
deform.widget.RichTextWidgetwidget, which adds the TinyMCE WYSIWIG javascript editor to a text area. - Add a
deform.widget.AutocompleteInputWidgetwidget, which adds a text input that can be supplied a URL or iterable of choices to ease the search and selection of a finite set of choices. - The
deform.widget.Widgetclass now accepts an extra keyword argument in its constructor:css_class. - All widgets now inherit a
css_classattribute from the basedeform.widget.Widgetclass. If css_class` contains a value, the “primary” element in the rendered widget will get a CSSclassattribute equal to the value (“primary” is defined by the widget template’s implementor). - The
deform.Fieldclass now as an__iter__method which iterates over the children fields of the field upon which it is called (for item in field==for item in field.children).
0.3 (2010-06-09)¶
Bug Fixes¶
- Change default form action to the empty string (rather than
.). Thanks to Kiran.
Features¶
- Add
deform.widget.DateInputWidgetwidget, which is a date picker widget. This has now become the default widget for thecolander.Dateschema type, preferred to the date parts widget. - Add text input mask capability to
deform.widget.TextInputWidget. - Add text input mask capability to
deform.widget.CheckedInputWidget.
Backwards Incompatibilities¶
- Custom widgets must now check for
colander.nullrather thanNoneas the null sentinel value. - Dependency on a new (0.7) version of Colander, which has been
changed to make using proper defaults possible; if you’ve used the
defaultargument to acolander.SchemaNode, or if you’ve defined a custom Colander type, you’ll want to read the updated Colander documentation (particularly the changelist). Short story: use themissingargument instead. - If you’ve created a custom widget, you will need to tweak it
slightly to handle the value
colander.nullas input to bothserializeanddeserialize. See the Deform docs at http://docs.repoze.org/deform for more information.
0.2 (2010-05-13)¶
Every form has a formid now, defaulting to
deform. The formid is used to compute the id of the form tag as well as the button ids in the form. Previously, if a formid was not passed to the Form constructor, no id would be given to the rendered form and the form’s buttons would not be prefixed with any formid.The
deform.Formclass now accepts two extra keyword arguments in its constructor:use_ajaxandajax_options.If
use_ajaxisTrue, the page is not reloaded when a submit button is pressed. Instead, the form is posted, and the result replaces the DOM node on the page.ajax_optionsis a string which allows you to pass extra options to the underlying AJAX form machinery whenuse_ajaxis True.Added a couple Ajax examples to the demo app.
Add a rudimentary Ajax chapter to the docs.
0.1 (2010-05-09)¶
- Initial release.