TODO
====

- Added Testcases for i18n.
- Added Testcases Custom renderers.
- Allow to redefine some attribute of the source fields in the fields
  references. So the source fields are the default and can be modified by the
  reference.

0.9.2
=====
- Fixed getting values from select fields if no value is selected and the
  value may be empty. In this case the application send all options to the server.
- Do not include "nullable" when generate model definitions from form definition.
- Restructured documentation.

0.9.1
=====
- Add option to options to define a attribute of the item where to load the available
  options from.

0.9
===
- Set autocomplete="off" for password fields.
- Added serialisation of dates.
- Security fix: Fixed potential code injection issue by removing the rule
  parsing out of formbar and use brabbel library for rule parsing and
  evaluation.

0.8.3
=====
- Added translation for warning and error messages.
- Added translation of options in dropdown fields.
- Fixed "readonly" mode for select fields. Select fields need a disabled
  attribute instead of a readonly attribute.

0.8.2
=====
- Added email field.

0.8.1
=====
- Removed dependency to formencode.
- Added experimental special logic to submit unselected items for radio and
  checkbox input fields.
- Render diff to previous value in dropdowns too.
- Add Section elements.

0.8.0
=====
- Added renderer for checkbox fields.
- Added renderer for radio fields.
- Added label tag for the renderer to have more option on rendering the fields
  label.
- Added support to configure simple text element within the form.
- Removed "star" indicator at labels for requierd fields.
- Support (+,-,*,/) and logical grouping of elements
- Conditionals supports now hidding whole pages.
- Table rendering: td and th supports row and colspan.

0.7.2
=====
- Changed Bootstrap version of demoserver to ver. 3.
- Changed example form. Show all possibilities in one form.

0.7.1
=====
- Set value of the field always on rendering (Fixes issue with dropdown fields in view model
- Split loading and filtering of options. Make filtering option available as
  method for external applications.
- Add support for defining buttons in a form. This is optional. If no form
  section is defined the default buttons will be added.

0.7.0
=====
- Added new renderer to render a editor for formbar forms. The editor support
  depends on a service which will render the form. This is not part of the
  editor. See ringo version > 0.12.0 for an example. Renderer support a live
  preview of the form.
- Removed injected "eval_url" in the formbar.js file. The js file is now
  static. The eval url must now provided on form initialisation.
- Use ACE editor for formbar editor. (http://ace.c9.io/)

0.6.5
=====
- Added support for the "value" attribute in the form configuration to define
  a default value of the field. This attribute is also used for Infofields.
- Added support for the "and" and "or" operators in rules.
- Added another variable identifier "@" in filter definitons of selection
  renderers. Variables beginning with "@" indicate a attribute in the forms item.
- Added another variable identifier "$" in filter definitons of selection
  renderers. Variables beginning with "@" indicate a special values like
  "$user" for the current user of the request.
- Add renderer option "remove_filtered" to completely ignore filtered items in
  selection list rendering.

0.6.4
=====
- Fixed rule evaluation. Allow " and ' in rules.
- #5. Added basic filtering on selections. Currently only works on SQLAlchemy relations.

0.6.3
=====
- Workaroud for https://github.com/formencode/formencode/pull/58
- Added "rows" attribute for textarea. (Renderer attribute)
- Add option to provide a external service to evaluate rules.
- If external service for rule evaluation is defined use this service for
  client side evaluation.
- Add support for nested fieldset elements up to three levels.
- Replaced bootstrap-datepicker. Now using: https://github.com/eternicode/bootstrap-datepicker
- Add HTML-Renderer. Can be used to include custom HTML in the form.

0.6.2
=====
- Add "History" feature. You can now optionally provide a dictionary with old
  values and the form will renderer the differences to these values in a nice
  visual way in read only mode. This is very similar to the change history
  known from other office products.
- Fixed bug in evaluating expressions in JS when rendering read only mode. Add
  value attribute for readonly dropdown fields holding the unexpanded value.

0.6.1
=====
- Fixed bug in deserialisation. Do not ignore readonly fields on
  deserialisation.

0.6.0
=====
- Added support for warning rules.
- Refactored serialisation, deserialisation, validation and rendering of the
  form. Splitted up the code to make it more readable.

0.5.2
=====
- Fix error on saving manytomany or onetomany relations. If there was only on
  item linked. The saving fails and other items are linked.
- Fix providing external values while rendering the form through the render
  function. Changed values merge mechanism.

0.5.1
=====
- Fix serialisation on GET requests.
- Implement serialisation of datetimes.

0.5.0
=====
- Added support for conditionals.
	- Conditionals are evaluated based on JavaScript on the client side
	- Conditionals are evaluated with Formed-Rules on Server side
	- Rules for fields which are with in a disabled conditional are now
	  exluded from validation.
- Rules are now checked after the basic type conversation is done. Pre rules
  will still validate on the raw submitted (unconverted) data.
- Changed default mode of rules from "pre" to "post"
- Clean submitted data. The submitted data will be cleaned on validation.
  Values for fields which are not actually configured in the form are erased
  from the submitted data.
- Show number of errors in the form outline for every page.
- Rendering of buttons can now be disabled on rendering the form using
  (buttons=false) as paramenter.
- Fixed preloading values on form rendering.
- Refactored code for evaluating expressions.

0.4.6
=====
- Added Renderer for hidden fields.

0.4.5
=====
- Make formbar compatible with Bootstrap 3

0.4.4
=====
- Added datetime conversion. Converts submitted strings in with format
  "2013-10-10 22:42:31" into a datetime.
- Change Layout of the buttonpane. Removed margin and padding. No background.


0.4.3
=====
- Added "time" fields. Will take the time in the form "HH:MM:SS" and converts
  it into the total amount of seconds.
- Fixed error in rule evaluation with non ascii values. The values are now
  converted to ascii (non ascii values are replace with '?') before
  evaluating.
- Improved "tabbing" in forms. Markers for required fields aren't links
  anymore which are tabable.
- Added support for CSRF protection. The form can now be initialised with a
  token for CSRF protection which is rendered as hidden field in the forms.

0.4.2
=====

- Added support for File Fields.

0.4.1
=====

- Added support for table rendering as additional layout element. Follows
  basically the html syntax (table, tr, th, td).
- Added support InfoFields. Infofields are not part of the datamodel. The are
  used to display dynamic calculated values.
- Added helper script "generate.py" to generate various information about the
  form configuration. E.g generate the SQLAlchemy model.
- Added optional request param for form initialisation. The current request
  from a wenframeform can no be provided to the form. This might be usefull
  while rendering with external renderers.

0.4.0
=====

- Removed FormAlchemy dependency. This includes some internal refactoring as
  the rendering and converting of values (especially relations) must now be
  done by formbar.

0.3.1
=====

- Fixed readonly view for textarea. Replace \n with <br>
- Added "in" rule operand. ($field in ['1','2','3'])

0.3
===

- Added a configurable JS-Callback function which is called when the user
  changes the currently selected page. The function will sent some information
  (selected page, item, itemid) to a configurable URL. The server behind the
  URL can save these values in a session and reuse it to preselect the page on
  the next form rendering.

Form-Rendering:
- Splitted up rendering of forms. The Fieldrenderer now renders label, field,
  help and errors seperately for each field.
- Enabled customs Renderers. Among the default FA Renderes wen can now
  configure our own renderers more easly. The goal is to  get rid of the FA
  Alchemy dependencie.

0.2.2
=====

- Added a new DatefieldRenderer which uses a bootstrap specific datepicker
  widget. Needs JS. Currently this widget is used if the datetype "date" is
  provided.
- Added helper method to get the needed JS code for formbar. Needed in other
  libraries.
- Renderer is not set depending on the datatype anymore. Default renderer is
  a TextfieldRenderer or the Renderer set by Formencode.
- Renderer is only set by the renderer attribute for an entity
- Fix in setup.py. Use hgtools to build package.
- Added support for pages in forms.


0.2.1
=====

- Added support for i18n. A translation function like gettext can now be
  injected on initialisation of a form.

0.2
===

- Changed initialisation of field.
- Implemented dropdonw field
- Layout Change. Field height is now 30px to match the Ringo form layout.

0.1
===

- First working version.
