=======
Changes
=======

4.2.0 (2012-11-27)
==================

- LP #1017884:  Add redirect status codes (303, 307) to the set which prevent
  form rendering.

- Replaced deprecated ``zope.component.adapts`` usage with equivalent
  ``zope.component.adapter`` decorator.

- Replaced deprecated ``zope.interface.implements`` usage with equivalent
  ``zope.interface.implementer`` decorator.

- Dropped support for Python 2.5.

- Make separator of ``SourceSequenceDisplayWidget`` configurable.


4.1.1 (2012-03-16)
==================

- Added `ignoreContext` attribute to form classes to control whether
  `checkInvariants` takes the context of the form into account when
  checking interface invariants.

  By default `ignoreContext` is set to ``False``.  On the `AddForm` it is
  ``True`` by default because the context of this form is naturally not
  suitable as context for the interface invariant.


4.1.0 (2012-03-15)
==================

- `checkInvariants` now takes the context of the form into account when
  checking interface invariants.

- Tests are no longer compatible with Python 2.4.


4.0.6 (2011-08-20)
==================

- Fixed bug in ``orderedSelectionList.pt`` template.

4.0.5 (2010-09-16)
==================

- Fixed Action name parameter handling, since 4.0.3 all passed names were
  lowercased.

4.0.4 (2010-07-06)
==================

- Fixed tests to pass under Python 2.7.

- Fix validation of "multiple" attributes in orderedSelectionList.pt.

4.0.3 (2010-05-06)
==================

- Keep Actions from raising exceptions when passed Unicode lables [LP:528468].

- Improve display of the "nothing selected" case for optional Choice fields
  [LP:269782].

- Improve truth testing for ItemDisplayWidget [LP:159232].

- Don't blow up if TypeError raised during token conversion [LP:98491].

4.0.2 (2010-03-07)
==================

- Adapted tests for Python 2.4 (enforce sorting for short pprint output)

4.0.1 (2010-02-21)
==================

- Documentation uploaded to PyPI now contains widget documentation.
- Escape MultiCheckBoxWidget content [LP:302427].

4.0 (2010-01-08)
================

- Widget implementation and all widgets from zope.app.form have been
  moved into zope.formlib, breaking zope.formlib's dependency on
  zope.app.form (instead zope.app.form now depends on zope.formlib).

  Widgets can all be imported from ``zope.formlib.widgets``.

  Widget base classes and render functionality is in
  ``zope.formlib.widget``.

  All relevant widget interfaces are now in ``zope.formlib.interfaces``.

3.10.0 (2009-12-22)
===================

- Use named template from zope.browserpage in favor of zope.app.pagetemplate.

3.9.0 (2009-12-22)
==================

- Use ViewPageTemplateFile from zope.browserpage.

3.8.0 (2009-12-22)
==================

- Adjusted test output to new zope.schema release.

3.7.0 (2009-12-18)
==================

- Rid ourselves from zope.app test dependencies.

- Fix: Button label needs escaping

3.6.0 (2009-05-18)
==================

- Remove deprecated imports.

- Remove dependency on zope.app.container (use ``IAdding`` from
  ``zope.browser.interfaces``) instead.  Depend on
  ``zope.browser>=1.1`` (the version with ``IAdding``).

- Moved ``namedtemplate`` to ``zope.app.pagetemplate``, to cut some
  dependencies on ``zope.formlib`` when using this feature. Left BBB
  imports here.

3.5.2 (2009-02-21)
==================

- Adapt tests for Python 2.5 output.

3.5.1 (2009-01-31)
==================

- Adapt tests to upcoming zope.schema release 3.5.1.

3.5.0 (2009-01-26)
==================

New Features
------------

- Test dependencies are declared in a `test` extra now.

- Introduced ``zope.formlib.form.applyData`` which works like
  ``applyChanges`` but returns a dictionary with information about
  which attribute of which schema changed.  This information is then
  sent along with the ``IObjectModifiedEvent``.

  This fixes https://bugs.launchpad.net/zope3/+bug/98483.

Bugs Fixed
----------

- Actions that cause a redirect (301, 302) do not cause the `render` method to
  be called anymore.

- The zope.formlib.form.Action class didn't fully implement
  zope.formlib.interfaces.IAction.

- zope.formlib.form.setupWidgets and zope.formlib.form.setupEditWidgets did
  not check for write access on the adapter but on context. This fixes
  https://bugs.launchpad.net/zope3/+bug/219948


3.4.0 (2007-09-28)
==================

No further changes since 3.4.0a1.

3.4.0a1 (2007-04-22)
====================

Initial release as a separate project, corresponds to zope.formlib
from Zope 3.4.0a1
