FormBuild 4.0.0
Build HTML forms quickly and easily. (Pre-release not ready for broad use, please use 0.3.x).
License: MIT

FormBuild
+++++++++

.. contents ::


Summary
=======

Build forms quickly and easily using groups of simple helper functions.

Get Started
===========

* Download and install from source

Author
======

James Gardner


Changes
=======

4.0 (dev)
---------

2011-07-06
~~~~~~~~~~

* Series of quick hacks to make a ``TableForm`` broadly compatible with the
  old 0.3.x branch so that authtkt works.

2011-02-14
~~~~~~~~~~

* Separates of ``Field`` for when you just want the fields, ``Form`` for an
  HTML form using labels and fieldsets and ``TableForm`` which generates
  slighlty unclean HTML but which actually works very well in real life
* Ability to choose XHTML or HTML and to use a custom builder for HTML
  generation
* Distinction between strings to escape and those to treat as HTML so that 
  HTML can be embedded without risk of XSS attacks
* Documentation of JavaScript integration for data and autocomplete
* Can keep the order of custom attributes if a ``formbuild.OrderedDict`` is used
  for them
* Removal of ``formbuild.internal``

Still more refactoring to do.

3.1
---

2011-02-09
~~~~~~~~~~

* Better support for nested record format
* Support for regular expressions in option definitions, useful for sharing
  options within repeated fieldsets

3.0.3
-----

2010-09-01
~~~~~~~~~~

* Allow a list or tuple of escaped HTML string as argument to ``action_bar()``
* Gave ``submit()`` default arguments, ``submit`` and ``Submit``.

3.0.2
-----

2010-08-07
~~~~~~~~~~

* Fixed bug with ``end_layout()``
* Added optional ``side`` argument to ``field()`` so that labels can be
  put *above* fields when it is set to ``False``
* Added a ``required_position`` argument to ``field()`` so that the required
  asterix can be put after the label when set to ``'after'``.

3.0.1
-----

2010-01-15
~~~~~~~~~~

* Added ``for`` attributes to ``<label>`` fields generated by ``field()``

2009-12-24
~~~~~~~~~~

* Support for BuildKit
* Fixed tests with legacy WebHelpers

3.0
---

FormBuild 3 is a complete from-the-ground-up re-write of FormBuild 2 with
deliberately more limited scope but increased real-world usefuleness.

Major changes since previous version:

* Removal of the ``formbuild.helpers`` module
* Removal of dependency on ``WebHelpers``
* Removal of all previously deprecated code
* Renaming the ``values``, ``errors``, ``state`` and ``options`` argument to
  ``Form`` to ``value``, ``error``, ``flow`` and ``option`` respectively
* Removal of ability to set values, or options at design time
* Introduction of a ``checked`` argument to ``Form`` to determine whether 
  checkboxes are checked or not at form execution time, not based on values
  or at design time
* The ``id`` attribute is no longer automatically generated based on the name
  and the ``type`` attribute comes before ``name`` for ``<input>`` fields
* Added doctests for all fields
* Added full documentation

2.2.1
-----

2009-10-20
~~~~~~~~~~

* Added helpers for ``combo()`` and ``dropdown()``
* Refactored the options code for using a dropdown in a field
* Started updating the documentation 
* Removed some old comments, moved deprecated code to the end

2.2.0
-----

2009-10-04
~~~~~~~~~~

* Added the ability of ``select()`` to use the new ``options`` infrastructure.
* Updated the ``MANIFEST.in`` file to include tests and docs in the source
  distribution.
* Moved the ``formbuild.helpers`` doctest code into the main ``doc.py`` test.

2009-08-20
~~~~~~~~~~

* Made the use of the ``default`` argument raise an Exception instead of 
  logging an error

2009-08-08
~~~~~~~~~~

* Added some documentation tests
* Changed ``checkbox_group()`` and ``radio_group()`` to take a ``sub_name``
  argument for formatting fields according to a NestedRecord structure.
* The ``combo()`` and ``checkbox_group()`` fields can now take options from
  those passed to the ``Form`` object constructor.
* Added Sphinx code
* Made ``checkbox_group()`` and ``radio_group()`` XHTML compatible by using
  the attribute ``checked="checked"``.
* Allowed the ``checkbox()`` to also be able to get its value from the
  ``options`` argument  passed to the ``Form`` constructor and determine
  whether not it is ticked from a ``True`` or ``False`` value in the ``values``
  argument passed to the ``Form`` constructor.

2.1.3
-----

2009-07-13
~~~~~~~~~~

* Used CSS for spacing of required asterix
* Added an options argument to Form instead of individual fields having
  options

2.1.2
-----

* Added a stricter ``errors_to_dict()`` function that catches errors such as
  forgetting ``allow_extra_fields``, ``filter_extra_fields``.
* Added a values_to_dict() function for encoding values
* Added a .validation_state attribute and ValidationState class.
* The title() field and action bar now have a colspan of 3

2.1.1
-----

* Added a title() field to the Form
* Added an imagebutton field
* Added field_pre and field_extra options to the field() method

2.0.1
-----

* Updated the tests
* Added a style used for padding to the labels in checkbox groups.
* Changed _group() helper to automatically convert arguments to unicode.

2.0.0
-----

* First pre-alpha version of the refactored FormBuild.

License
=======
FormBuild - Build HTML forms quickly and easily
Copyright (C) 2008-2010 <James Gardner>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Download
========