deform / CHANGES.txt

Changes
=======

Next Release
------------

Bug Fixes
~~~~~~~~~

- When the hidden widget is used to deserialize a field, return
  ``colander.null`` rather than the empty string so that it may be
  used to represent non-text fields such as ``colander.Integer``.
  This is isomorphic to the change done previously to
  ``deform.TextInputWidget`` to 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.DateInputWidget`` class definition.

Features
~~~~~~~~

- Add a ``deform.widget.RichTextWidget`` widget, which adds the 
  TinyMCE WYSIWIG javascript editor to a text area.

- Add a ``deform.widget.AutocompleteInputWidget`` widget, 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.Widget`` class now accepts an extra keyword argument in
  its constructor: ``css_class``.

  If ``css_class`` contains a value, the rendered widget will get a class
  attribute equal to the value.


0.3
---

Bug Fixes
~~~~~~~~~

- Change default form action to the empty string (rather than ``.``).
  Thanks to Kiran.

Features
~~~~~~~~

- Add ``deform.widget.DateInputWidget`` widget, which is a date picker
  widget.  This has now become the default widget for the
  ``colander.Date`` schema 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.null`` rather than
  ``None`` as 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
  ``default`` argument to a ``colander.SchemaNode``, or if you've
  defined a custom Colander type, you'll want to read `the updated
  Colander documentation <http://docs.repoze.org/colander>`_
  (particularly the changelist).  Short story: use the ``missing``
  argument instead.

- If you've created a custom widget, you will need to tweak it
  slightly to handle the value ``colander.null`` as input to both
  ``serialize`` and ``deserialize``.  See the Deform docs at
  `http://docs.repoze.org/deform <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.Form`` class now accepts two extra keyword arguments in
  its constructor: ``use_ajax`` and ``ajax_options``.

  If ``use_ajax`` is ``True``, 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_options`` is a string which allows you to pass extra options
  to the underlying AJAX form machinery when ``use_ajax`` is 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.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.