1.2.4

 - Added Rating-Scale Field based on Titus Anderson's LikertField.
   Thanks to Titus and the University of Louisville.

 - Add delete capabilities to Andreas' record editor. Added escaping
   for multi-line fields. Guarded editing with ModifyPortalContent
   rather than the download permission.

 - Save adapter: stored records can now be edited through the Plone UI
   via the data saver's tabular view.
   The edit UI is pretty basic and provides only a text field per
   stored value. No fancy widgets, no validation.
   (Andreas Jung)

1.2.3

 - Created egg framework, moved svn trunk to
   collective/Products.PloneFormGen/trunk.

 - Some change around Plone 3.1 caused a problem where minor version
   updates of PFG would cause the formgen_tool to be created inside the
   portal_quickinstaller, thoroughly fouling it up. Yuck. Fixed.
   (Tracker #205; Thanks, Wouter Vanden Hove)

1.2.2

 - The PicklistWidget used to pick ThanksPage fields doesn't respect the 
   order of the value it's supplied, so let's always sort the values
   into the same order as the form. (Thanks, Lucia Colombo)

 - Adapt more public page templates to have Plone 3+ -specific versions.
   (Tracker: 189; Thanks, Max Bloechle)

 - Mailer "None" radio button choices for to_field and replyto_field
   should be selected when appropriate. (Tracker 190)

 - Hide useless "properties" and "references" tabs in Plone 3+.
   (Thanks, ddurham)

 - Added 'Contributor' to default roles allowed to create Form Folders.
   (Tracker #199; thanks, Marc Nieper-Wißkirchen)

 - Values in password fields were being lost whenever a form didn't
   validate. While this might make sense in other contexts, it doesn't
   match the common use case in PFG. Fixed. (Tracker #200)

 - Mailer body prepend and append fields were showing unnecessary
   and misleading text format selection boxes. (Tracker #185; Same
   problem as #173)

1.2.1

 - Using non-ascii chars in the title of a required field would provoke a
   UnicodeDecodeError on failed validation. Fixed. (Tracker #174; Thanks,
   Daniel Kraft)

 - In a Plone 3 site that has Kupu's UID Linking and/or Image Captioning
   features enabled, PFG textarea fields show a format select field and
   cause server crashes. Fixed. (Tracker 173; Thanks John Stahl and Jon
   Baldivieso)

1.2.0

 - Fixes in nl translation. (Tracker 166: Radek Jankiewicz)
 
 - Remove obsolete migration from PFGDataGrid. (Tracker 169: Thanks, Zippy)

1.2-RC2

 - Dramatically simplify schema for most components by hiding most
 metadata fields in Plone 3. (Tracker 161; Thanks, Jon Stahl)

 - Empty, hidden lines field caused error on form display. Fixed.
 (Tracker #151)

1.2-RC1

 - Improve error message on mail attempt when no recipient address is
 found and form owner has no e-mail address. Also, make it less likely
 by using portal email_from_address as a fallback. (Tracker #140, 
 thanks Andreas Jung)

1.2-Beta-6

 - Mailer was having problems with i18n characters in fields in Plone 3+.
 Fixed. (Tracker #144, thanks Anders Avlesen)

 - Manually editing saved data (in a save data adapter) was not working
 since storage change in 1.2 beta 1. Fixed. (Tracker #145)

 - Fixed: Exception when submitting a form with a text field that
 exceeds the "Max Length" character limit. (Tracker #142)

1.2-Beta-5

 - Thanks page editing was having kupu problems in Plone 3 for fields off the
 default schema. So, when running Plone 3.0, pack them on the default schema.
 This also brings the schema count down to 5, to avoid schema selection widget.
 Not ideal, but it's working.

 - When a form date field was not required, it was possible to enter invalid
 dates. Added a special validator that should cause a validation error when
 a bad date is actually entered, but not if the month or year is left as
 "--" (Tracker #132)

 - Added README_PLONE3.txt to document workaround for permissions problem
 using selection and multi-selection form fields in Plone 3.0 (fixed in 3.0.1).
 (Tracker #136)

 - There was no status message when validation failed in Plone 3. Fixed.
 (Tracker #133, thanks Lucie Lejard)

 - Validation script was discarding any errors that might already be in the 
 CMFFormController state. Fixed. (Tracker #134, thanks Lucie Lejard)

 - Fields in fieldsets were not being offered as options in the mailer's extract
 recipient and extract replyto options. Fixed. (Tracker #123, thanks Marie
 Robichon)

 - The validation message rewriter for Plone 2.1 was broken, resulting in an
 error whenever a form wouldn't validate. Fixed. (Tracker #124, thanks Aleksandr
 Vladimirskiy)

1.2-Beta-4

 - In Plone 3, Kupu has started saving "<p>&nbsp;</p>" for empty inputs. This 
 forced white space into the the form if prologue and/or epilogue were empty.
 Fixed with custom mutators. (Tracker #120, thanks Michael Dunlap)

 - Check ids of fields to make sure they don't collide with known 
 troublesome ids ('zip', 'location', 'language'). Also prevent use of
 ids that duplicate those in fieldset folders. (Tracker #94, thanks Gregory
 Hnatiuk; Tracker #107, thanks Kim Nielsen)

 - Turn off KSS blur event handling for rendered forms in Plone 3. Maybe
 we'll be able to implement in-line validation later.

 - Bring Plone 3 macro versions into line with Archetypes 1.5.

 - Remove several workarounds for Archetypes 1.5 beta bugs that were fixed in
 RC3.

 - Partial date entries to a Date/Time Field would raise a DateError exception.
 Fixed. (Tracker #118)
 
 - New Czech translation of plone-ploneformgen domain. Thanks, Jan Pokorny.

 - Updated Dutch translations, thanks to: markvl, justi and jladage and
 initial translations by Atopia.

1.2-Beta-3

 - The 1.2-Beta-2 customizable string validators change introduced a problem
 that caused an error if a string field had no validator. Fixed.

 - Add ability to set display strings for boolean field checked and unchecked.
 These are used in the thanks page and mailer in place of '0' and '1'. (Tracker
 #112)

1.2-Beta-2

 - Changed "Cancel" button to act as a reset button on rendered forms. It really
 has no other imaginable purpose. Change default to hide this nearly useless
 artifact. Add option to set button label.

 - Added start, end and future year options to DateTime Field. (Tracker #65,
 Thanks to Paul Eipper for the suggestion and Jeremy Keiper for the patch.)

 - Added new French message translations. Thanks, Gaël Le Mignot.

 - Add override to selectively enable/disable fields. Disabling a field removes
 it from the rendered field list. It will not appear in the form and will not be
 validated.

 - Add facility for customizable string validators and messages for use with the
 FormStringField. Currently, customization is via the config.py file. I may
 eventually figure out a way to get this into the configlet.

 - Add a content override for the RichLabelField.

 - If "PloneFormGen" was missing from any skin layer sets, uninstall or
 reinstall would fail. Fixed. (Tracker #109, Thanks: Yuri)

1.2-Beta-1

 - Eradicate use of context['global_vars'], which is not supported in
 Plone 3. All tests now pass in Plone 3b3 (with patched Archetypes, see
 http://dev.plone.org/archetypes/ticket/724).

 - Extended characters in field title or description would provoke
 unicode cannot decode error. This occurs on indexing the field, and may
 be an Archetypes problem. Since there's no good reason to have these
 searchable, fixed by setting searchable false for field titles and
 descriptions. (Tracker # 102 and 104, Thanks: Petrus Wang)

 - Added Italian translation for Plone domain (add-item menu, schema
 names and such). Thanks to Carrer Yuri.

 - It's now possible to specify multiple e-mail recipients for the TO
 field via either the recipient override or using a multi-select field.
 (Tracker #59, Thanks, Edouard Mercier)

 - Fixed-point field minimum-value field changed from required to
 not-required. Requiring it made it impossible to set 0 for a minimum
 value. (Tracker #98, Thanks: Jeremy Keiper)

 - Added specialValidator method to BaseFormField to give form fields a
 way to do a more sophisticated validation than what's allowed by
 Archetypes-style validators.

 - Changed underlying storage mechanism for save-data adapter to use an
 IOBTree rather than Archetypes lines field storage (a sequence).
 This should cure a problem with data object size growing geometrically
 with new inputs (Tracker #81, thanks Jean-Paul Ladage).

 Existing save data adapters will be migrated when first touched by the new PFG
 version.
 
 This is NOT backwards compatible! So, you will not be able to save data
 in 1.2 and revert to 1.1.

 - Change default download format of new save-data adapters to csv.

 - Move 1.1.1 to branches/1.1. SVN trunk is now 1.2.

1.1.1

 - The "strip trailing white space" fix in 1.1 handled the issue for
 validation, but the unchanged field was still processed and
 mailed/saved. Fixed.

 - Fixed a bug introduced by "strip trailing white space" fix in 1.1 that
 would cause a name error when validating an individual field (not a form).

 - When htmlValue for Selection and Multi-Selection fields doesn't find
 the submitted value in the field vocabulary, it should go ahead and
 return what was submitted. (Thanks, lzdych for a code fix)

 - Use the portal_transforms text_to_html transform to convert
 multi-line text field inputs to html. This will convert eols to breaks
 rather than collapsing lines. (Thanks: Darrick Servis)

 - Minor i18n fixups.

1.1

 - The mail adapter was truncating subject lines longer than 76
 characters due to a bad interaction between security testing and header
 encoding. Fixed. (Tracker #84, thanks to Mike Sassak for a great bug
 report)

 - Restore document actions to base view template. The reason for
 leaving them out probably wasn't as good as I thought when first
 excising them. (Tracker #86, thanks to Gregory Hnatiuk)

 - Strip trailing white space in all string-ish fields. Also, don't
 accept required fields when only white space is submitted. (Fixes
 Tracker #79: thanks Rene Pijlman)

 - For Selection or Multi-Selection form fields, no input could result
 in an error "AttributeError 'NoneType' object has no attribute
 'encode'". This was a bug in the display labels fix in RC3. Fixed.
 (Tracker #80, thanks Rene Pijlman)

 - The "Thanks Page" option in the form folder edit view would display
 python scripts and other non-Plone objects. Fixed. (Tracker #78, Thanks
 Marie Robichon)

1.1-RC3

 - The creation of sample objects in initializeArchetypes left catalog
 orphans for the portal_factory objects.Solve the problem by removing
 them from the portal_catalog and uid_catalog, hopefully not causing
 other problems in the process. (Tracker #74, Thanks Jeremy Keiper)

 - Made the thanks-page and mailer display labels for selection and
 multi-selection fields rather than the values. (Tracker #71; thanks to
 Radim Novotny for diagnosis and patch.)


1.1-RC2

 - Added localized time support for display (thanks page and mailer)
 renderings from Date-Time Field. (Tracker #71, thanks, Sufyan Patel)

 - Removed the "hidden" option from most fields. Archetypes support for
 it was uneven and not really necessary for anything more than strings,
 lines and text. So, why not get it out of the way? (Tracker #69, thanks
 to Radim Novotny for pointing out the problem.) 

 - Added optional tabular and record supplemental views for save data
 adapter.

 - Added convenience method 'getColumnTitles' to saver.

1.1-RC1

 - File fields would not show up on the thanks page, and their column
 names would be omitted from saver data. Fixed.

 - CustomScriptAdapter 'fields' parameter was mis-identified as 'results' in
 sample comment documentation. Fixed. (Thanks, Brook Milligan)

 - Made the success action given to CFMFormController always be
 "traverse_to". The form previously would traverse to objects
 implementing IPloneFormGenThanksPage, but redirect to other pages or
 templates. While there might be reasons to do this, they're overwhelmed
 by the puzzle this might pose for the user trying to figure out why
 request was available for one type and not another. Note that this does
 not apply to overrides, where the action type must always be specified.

 - Custom validators for File Fields always received None as "value"
 parameter due to the fact that the file widget appends _file to the
 input name. Fixed. (Tracker #64; Thanks, Kiran Jonnalagadda for a
 diagnosis and patch.)

1.1-Beta-4

 - Attempts to use acquired scripts in form setup and after validation
 overrides of form would provoke an AttributeError. Scripts inside the
 form folder worked. This was due to an unfortunate choice of workaround
 for expression context poisoning: aq_explicit was being used for the
 context. Added a cleanExpressionContext routine to clean the expression
 context instead by deleting the cache for the object context after calling
 a TALES expression. That allowed fixing the context to allow acquisition.
 (Tracker #62)

 - Added convenience method InputAsDictionaries to save-data adapter.
 Returns saved data as list of dictionaries with column keys.

 - fgGetSuccessAction was unnecessarily causing a traverse from the Zope
 root. This was a problem if any parent of the form was private. Fixed.
 (Tracker #60; Thanks Marcel)

 - Downloading data from the save data adapter would provoke a Unicode
 exception if data included non-ASCII, 'use column names' was in effect,
 and one of the preset extra data choices was checked. Fixed. (Tracker
 #55)

 - DataGridField example: DGF field wasn't being added to fieldset
 allowed types. Fixed. (Tracker #61, thanks, Paul Eipper)

 - Added explicit, empty .po files for English to (hopefully) resolve
 tracker #56 (thanks, Christof Haemmerle and sydw (#plone).

1.1-Beta-3

 - Added Polish (PL) translation donated by Lukasz Lichota. Fixed up a
 couple of duplicate msgids revealed by the new translation files.

 - More uninstall cleanup. On uninstall, remove FormFolder and
 FieldsetFolder from siteProperties use_folder_tabs and
 typesLinkToFolderContentsInFC. (Tracker #57, thanks DigitalD)

 - The validation message cleanup routine introduced in 1.1 beta 1 would
 fail with a message "TypeError: cleanupMessage() takes exactly 1
 argument (2 given)" under Plone < 2.5. Fixed.

 - Added class selector to div surrounding form to facilitate CSS
 decoration. (Tracker #46, Thanks Steve Rauch)

 - When possible, get guess_content_type from zope.app.content_types
 rather than OFS.content_types. Now no deprecation errors in 2.5.2 RC 1.

 - A KeyError exception in an action adapter would be swallowed by a too
 extensive try/except. Fixed. (Tracker #54, thanks, Maurits van Rees)

 - Added an example of adding a new widget to PFG from another product.
 Copy PFGDataGrid from the examples directory to Products/ to activate a
 DataGridField form field.

 - Using an after-validation override was clobbering the expression
 context, causing an error if we ended up traversing to a template.
 Fixed.

 - On uninstall, remove 'PloneFormGen' layer from all skin selections.

1.1-Beta-2

 - Added "Execution Condition" override to action adapters. This allows
 conditional execution of action adapters depending on form input.

 - Atopia <info@atopia.nl> has contributed a Dutch translation. Thanks!

 - Simon Käser has contributed a German translation. Thanks!

1.1-Beta-1

 - Added a rudimentary facility to return better alternatives to the
 Archetypes validation messages. These should also be translatable. This
 will probably need refinement. Ideally, we'll abandon it when this gets
 straightened out in Archetypes. Thanks to Matej Baric (#plone mte) for
 pressing me on the need for this.

 - The thanks page option to ignore empty fields wasn't working. Fixed.

 - Workaround what I consider a Zope marshalling error: the production
 of lists like ['one', ''] and [''] for list fields. PFG will now pop
 list results if the last item is an empty string. This is done before
 validation.

 - Made installation add FormFolder to default_page_types. (Tracker #49:
 Thanks, Jon Stahl)

1.1-Alpha-4

 - Fixed bad interaction between Thanks Pages and fieldsets. (Tracker
 #44, Thanks: David Sandy)

 - Attempted to exterminate all the cases where PFG tests to see if a
 field is a label or file field by checking the meta_type. Replaced with
 tests of isLabel or isFileField methods. This is a first step towards
 making it easier to add support for new field types.

1.1-Alpha-3

 - Added "Fieldset Folder", which puts its enclosed fields into an XHTML
 fieldset with an optional legend. (Feature Enhancement Proposal #2,
 thanks Michael Dunlap)

 - Added TALES overrides for subject, sender and recipient to the
 mailer. (Tracker #43, thanks: Pierre-Yves Landure)

 - Fix for Tracker #42 -  Editing Short Names Has No Effect. (Thanks:
 Kevin Strasser)

1.1-Alpha-2

 - Added default mail addressing setup to configlet.

 - Added default mail template setup to configlet.

 - Activate action adapters on creation to save confusion.

 - Set up a portal_properties property sheet for site configuration
 persistence.

1.1-Alpha-1

 - Added a configlet to control association of roles and PFG permissions
 at the portal root. (This completes Feature Enhancement Proposal #3,
 thanks Joel Burton)

 - Moved recipient fields of mail adapter to default schema. They're the
 most likely to be customized.

 - Added specific permissions for advanced and encryption-related
 fields. We'll use these to hide the fields from roles that needn't see
 them.

 - Add framework to allow different add permissions for different content
 types. Set individual add permission for Custom Script Adapter.

 - Mailer wasn't picking up owner e-mail address unless owner is a manager.
 Fixed.

 - Removing an active action adapter would result in a KeyError on form
 submit. Fixed. The missing adapter will now be ignored.

 - Added "Custom Script Adapter" by Mikko Ohtamaa (#plone: Moo). This is
 an action adapter that makes it easy to script success actions without
 having to use the ZMI to add/manipulate a python script. Note:
 PythonField (from the ScriptableFields bundle) is now required.

 - Change configure.zcml.plone25 to be configure.zcml. Users of Plone
 2.1.x will need to delete or rename this file to avoid errors (unless
 they have independently updated Five).

1.0.1

 - The memberEmail and memberFullName methods (convenience methods for
 use in defaults) were only working for managers. Fixed. (Tracker #39,
 thanks: Jacob Nordfalk)

 - Using the "Form Setup Script" override in Plone 2.5.1 would cause a
 misleading "NameError: name 'checkPermission' is not defined" error on
 form display. Evaluation of the TALESField was clobbering the request's
 expression context. Fixed. (Tracker #37, thanks: Andreas Jung)

 - Mailer was using MIMEMultipart even when there were no attachments.
 Fixed. (tracker #36, thanks: Igor Stroh)

1.0

 - Set default maxlength for textarea form field to 0 to work around the
 Archetypes 1.4.1 "characters remaining" bug
 <http://dev.plone.org/archetypes/ticket/691>.

 - Added option to get column names as a first line in input downloaded
 from save adapter. (thanks: Servilio Afre Puentes)

 - International characters in a field title could cause a unicode
 decode error in the mail adapter's addressing schema. Fixed. (tracker
 #35, thanks: Pierre-Yves Landure)

 - Creating a form field with an ID of 'language' would cause a nasty,
 hard-to-debug problem with PTS. PFG will now raise a BadRequest
 exception if the user tries to injure themselves this way. (tracker
 #32, thanks, Rocky Burt)

 - Fixed a problem with the MaxLengthValdiator where sometimes an unset
 (by the user) widget.maxlength actually has an empty string as the
 value which would make the int(widget.maxlength) call fail (Rocky
 Burt).

 - The mailer was including rich-text labels in mailed results;
 save-data adapter was including rich-text and plain labels. Fixed.
 (Tracker #31, thanks: jim sfba)

1.0-RC2

 - Made PATH_INFO a default member of the x-info headers for mailer.

 - Tightened field read permissions (from View to ModifyPortalContent)
   on mailer to prevent the view method from disclosing its settings.

 - Added rich text label (tracker #28, thanks: Pierre-Yves Landure)

 - Added .mo files for existing translations in locales/.

1.0-RC1

 - More i18n fixes from Pierre-Yves Landure (tracker #24).

 - Added functional tests for mailer, saver and fgValidate.

 - Allow multiple live action adapters. (tracker #12)

1.0-beta6

 - Added marker interface for thanks pages to make it easier to
   use a derived content type for that purpose. (Thanks: Emyr Thomas)

 - Added After Validation override to form folder.

 - Added header injection override to form folder.

 i18n work by Pierre-Yves Landure:

 - Added a better localisation support, compatible with Five and Zope 3.

 - Corrected an i18n bug in Mailer Adapter

 - Completed french translation

1.0-beta5

 - Switch version numbering to match the release mangement process of
   PloneSoftwareCenter.

 - Added uninstall code that cleans up most of what the install routine
   does.

 - Added to thanks page the ability to display a different message
   when there's no form submit. (tracker #15; thanks: Emyr Thomas)

0.4.0

 - Made it easy (too easy?) to clear input saved in save
   data adapter.

 - Rich text field now has control over use of HTMLTidy. Only
   appears if HTMLTidy is available.

 - Added a "Form Setup Script" option to the form override fieldset.
   This is meant to allow for a script to set up multiple field defaults.

 - Activated encryption for mail adapter. Note that the encryption
   field set will not display unless gpg is available.

0.3.0

 - Added convenience methods for use in default overrides
   to get member data: memberFullName, memberEmail, memberId.
   This is a partial solution to tracker #10 (thanks, Norbert Klamann).
   Made sample form replyto use here/memberEmail

 - Fixed problem with Plone 2.5 that prevented use of
   custom defaults and validators in field preview context.
   For those who are interested, it turns out that tales
   expression evaluation caches contexts, so its necessary
   to set the object context carefully to avoid sabotaging
   other tales evaluations.

 - Make a blank custom validator act as if python:False

 - Make field custom validators a bit easier to use by
   having a 'value' variable available. Asking
   folks to handle the request may be a bit much.

 - Custom field validators weren't working a form context. Fixed.

 - Added form action override. (tracker #6, thanks: Michael Dunlap)

 - Lots of i18n machinery fixes, including for vocabularies for
   selection and multi-selection widgets. Generated first .pot file.

0.2.0

 - Added 'thanks page' content type that's smart enough to display select
   field input. (tracker #3, thanks: Kim Nielsen)

 - CSV download option for save adapter. (tracker #1, thanks: Jon Stahl)

 - Mailer will now throw an assertion exception if there is no specified
   recipient e-mail address and the owner doesn't have an address. This
   is rude, but better than an unintelligible traceback due to an SMTP error.
   (tracker #7, thanks: Carl Brewer)

 - Added checked/unchecked validators for boolean field 
   (tracker #4, thanks: Kim Nielsen)

 - Removed confusing and unnecessary require & hidden options
   from label field (tracker #2, thanks: Kim Nielsen)

0.1.0

 - On initial creation, a Form Folder now populates itself with
   a sample mail form

 - Gave saveDataAdapter a download method and matching permission

 - Removed "Form" prefix from field type names

 - Consolidated repeatedly used schema fields

 - Changed 18n domain to ploneformgen

0.0.5

 - Mail adapter now handles file fields as attachments.

 - File field input length validated against maximum.

 - Added maxlength validator. Applied it wherever widget
   has maxlength attribute.

 - Allow button label customization.

 - Added override for thank you page.

 - Mail adaptor: allow use of selection fields for recipient.

 - Mail Adaptor: pick up optional HTTP headers for use as X- mail headers.


0.0.4

 - Added first draft of e-mail adapter. Much of the code and schema derived
   from PloneFormMailer (thanks to Jens Klein, Reinout van Rees and their
   collaborators).

 - Prevented form prologue/epilogue decoration from showing up in field tests.

 - Escaped strings saved by saveDataAdapter

0.0.3

 - Added additional min/max validation to integer field.

 - Added first adapter -- save data to tab-delimited format
   stored in object attribute.

 - Added "hidden" flag to all fields.

 - Converted interfaces to Z3 style (wiggy).

 - Moved Plone content to content subdirectory (wiggy).

0.0.2

 - Added basic unit tests for installation, instantiation and editing

 - Added simple interfaces IfgForm and IfgField, mainly as markers.

 - Made form fields invisible (to the add menu) 