Introduction
============
This package provides a generic Plone form generator.
Use it to build simple, one-of-a-kind, web forms that save or mail form input.
Repository for this add on is at https://github.com/smcmahon/Products.PloneFormGen.
A documentation area is at http://docs.plone.org/working-with-content/managing-content/ploneformgen/
and an issue tracker at https://github.com/smcmahon/Products.PloneFormGen/issues
Please use the Plone forum at https://community.plone.org for
support requests. If you are unable to get your questions answered
there, or are interested in helping develop the product, contact Steve
McMahon: steve@dcn.org.
.. image:: https://travis-ci.org/smcmahon/Products.PloneFormGen.svg?branch=master
:alt: Travis CI badge; if you break it, you fix it.
:target: https://travis-ci.org/smcmahon/Products.PloneFormGen
1.8 Notes
=========
PFG 1.8 is intended for use with Plone 5+. If you're using Plone 4.1.x-4.3.x, choose PFG 1.7.x. PFG 1.6.x targets Plone < 4.1.
collective.js.jqueryui is no longer required. If you've migrated from Plone 4.x and no other package is using it, you may uninstall it.
Known Issues
------------
* Export/Import is not yet working;
* The ReCAPTCHA config form is primitive.
Overview
========
PloneFormGen is a generic Plone form generator using fields,
widgets and validators from Archetypes. Use it to build simple,
one-of-a-kind, web forms that save or mail form input.
To build a web form, create a form folder, then add form fields as
contents. Individual fields can display and validate themselves for
testing purposes. The form folder creates a form from all the contained
field content objects.
Final disposition of form input is handled via plug-in action products.
Action adapters included with this release include a mailer, a
save-data adapter that saves input in tab-separated format for later
download, and a custom-script adapter that makes it possible to script
simple actions without recourse to the Zope Management Interface.
To make it easy to get started, newly created form folders are
pre-populated to act as a simple e-mail response form.
Dependencies
============
Plone: Plone 5.0b2+
Requires PythonField, TALESField and TemplateFields from Jens W.
Klein's ScriptableFields bundle: http://plone.org/products/scriptablefields/
(automatically loaded if you install via Python package).
Encryption of e-mail requires the Gnu Privacy Guard, GnuPG, also known
as gpg. See README_GPG.txt for details.
CAPTCHA support requires either collective.captcha or collective.recaptcha.
See README_CAPTCHA.txt for details.
Installation
============
* Just add ``Products.PloneFormGen`` to the eggs section of your buildout
configuration and run buildout.
* Restart Zope.
* Go to the Site Setup page in the Plone interface and click on the
Add/Remove Products link. Choose PloneFormGen (check its checkbox) and
click the Install button. If PloneFormGen is not available on the
Add/Remove Products list, it usually means that the product did not
load due to missing prerequisites.
* If necessary, use the PloneFormGen configlet in the "Add-on Product
Configuration" section of Site Setup to customize the product for your
site.
Permissions
===========
Site managers may control the visibility and availability of many
PloneFormGen functions by changing permissions for user roles. A
control panel configlet controls role/permission associations for the
portal root. For an explanation of how PloneFormGen permissions map to
form folder and form field fields, see improvement proposal #3, Provide
ways to hide advanced options from classes of
users: http://plone.org/products/ploneformgen/roadmap/3 .
Security
========
As shipped, only managers may use TALES expressions to override
defaults and validators. You may wish to add additional roles, but keep
in mind that this is a potential security risk; it basically gives the
same powers as scripting or skin editing.
History
=======
PloneFormGen has been continually updated since Plone 2. The maintainers
are proud it's still maintained and reliable, but it should not be used
as a good example of a current Plone packages. It contains too many
historical layers.
Credits
=======
Archetypes has been ruthlessly mined for concepts and functionality.
Form and field icons are scavenged from Martijn Faassen's Formulator,
and were edited only to add transparency to make them look a bit better
on the add items menu.
The mail adapter is basically a tailored version of PloneFormMailer,
minus the Formulator adapter machinery. Thanks to PloneFormMailer's
authors, Jens Klein and Reinout van Rees for this code and for
continual assistance since the package's introduction.
Pierre-Yves Landure provided tremendous help with the i18n machinery.
Sebastien Douche and Pierre-Yves Landure provided the French translation.
Martin Aspeli's RichDocument has provided an invaluable reference,
particularly in how to handle installation and testing issues.
Martin Aspeli, Wichert Akkerman, Eric Steele, Jens Klein and Reinout
van Rees all provided valuable early feedback.
Titus Anderson provided the base code for the Ratings-Scale Field.
Andreas Jung contributed the record-editing feature for the Save Data
adapter.
Fulvio Casali, Alex Tokar, David Glick, Steve McMahon, Jesse Snyder,
Michael Dunlap, Paul Bugni, Jon Baldivieso and Andrew Burkhalter all
did amazing things at the December 2008 PFG sprint sponsored by OneNW.
Special thanks to David, for the CAPTCHA work, and Andrew for export/
import.
Thomas Buchberger provided the initial CAPTCHA field implementation.
Maurits van Rees has been a co-maintainer for the 1.7.x and 1.8.x series. David Glick was co-maintainer for versions
1.2.5 through 1.7.x. Thanks, Maurits and David!
Nenad Mancevic (Manca) added the widget toolbox and dramatically enhanced
the quick edit mode for his Google Summer of Code 2010 project. Thanks to
Manca and Google!
Alec Mitchell, Nathan Van Gheem and Eric Steele provided vital assistance
with the Plone 5 update.
See the CHANGES.txt file for the very long list of people who helped
with particular features or bugs.
License
=======
Distributed under the GPL v 2.
See LICENSE.txt and LICENSE.GPL for details.
Change History
==============
1.8.9 (2021-05-27)
------------------
- Fixed incompatibility with Products.PloneHotfix20210518.
[dhavlik, spereverde, maurits]
1.8.8 (2020-11-16)
------------------
- Fixed portal_skins directory path on Plone 5.2
It was ``PloneFormGen/skins/PloneFormGen`` but now has to be ``Products.PloneFormGen:skins/PloneFormGen``.
This might need an upgrade step, but you can also do this manually in portal_skins in the ZMI.
Note that PloneFormGen is not really tested on Plone 5.2.
In fact the automatic tests completely fail on 5.2, so use at your own risk.
[maurits]
- Only apply quickedit bundle js and styles to the quickedit form.
[alecpm]
1.8.7 (2019-11-22)
------------------
- Fix broken RichText fields on Plone 5.1.x.
[alecpm]
1.8.6 (2019-07-29)
------------------
- Improve captcha error message.
[rodfersou, idgserpro]
- Add uninstall profile and setuphandler. Make Plone 5.1 happy.
[smcmahon]
- Allow comma for decimal separation in ExRangeValidator, because
it is allowed by the underlying archetypes fields. Make users in some
european countries happy.
[nilo]
1.8.5 (2017-12-20)
------------------
- Use datepicker widget for datetime input
[tomgross, keul]
1.8.4 (2017-07-08)
------------------
- Fix UnicodeDecodeError: RateScaleField with non-ascii values and without
Thank-you-page.
Fixes `issue #98 <https://github.com/smcmahon/Products.PloneFormGen/issues/98>`_.
[vkarppinen]
- Remove collective.cover adapter reference.
(Closes `#194 <https://github.com/smcmahon/Products.PloneFormGen/issues/194>`_.
[rodfersou]
- Fixed UnicodeDecodeError when vocabulary value is a non-ascii string.
This could happen in selection and multi selection fields.
[maurits]
- Change captcha verification message for `#186 <https://github.com/smcmahon/Products.PloneFormGen/issues/186>`_.
[tkimnguyen]
- Fix issue where quickedit view caused rendering issues because
of a tag not being closed.
[datakurre]
- Fix issue where logic in FormSaveDataAdapter's getColumnTitles was
different than the logic for getColumnNames.
[mikerenfro]
- Fix redundant template fallback value.
[zemm]
1.8.3 (2016-12-06)
------------------
- Transform value to unicode before translating. Fix #182
[pbauer]
1.8.2 (2016-11-22)
------------------
- Fixed showing translations of help text. Since security release
1.8.1, help text was showing up with only the message id, for
example ``help_placeholder``.
Fixes `issue #178 <https://github.com/smcmahon/Products.PloneFormGen/issues/178>`_.
[maurits]
- Use formActionOverride action in embedded view. [fRiSi]
- Add option to download data from saveDataAdapter in excel format
Excel download depends on the availability of the 'xlwt' python package.
[tmog]
1.8.1 (2016-05-01)
------------------
- CGI escape field help (description); prevent method call.
Eliminates XSS vulnerability that could be exploited by users with the ability
to create forms.
[smcmahon]
1.8.0 (2015-10-01)
------------------
- Moved our default_page_types setting to the registry.
[maurits]
- Get email settings from registry. Fixes several Plone 5 errors.
Do not use ``plone_utils.getSiteEncoding()``, because this is
deprecated and always returns ``utf-8``.
[maurits]
- Load widget specific css on quickedit form.
[maurits]
- Fix embedded view by removing deprecated global defines macro.
[buchi]
- Removed inline javascript that tried to block inline validation. It
had no effect anymore on Plone 5, as no inline validation is done
here anyway. And it interferes with themes that load jQuery near
the bottom instead of in the head.
[maurits]
1.8.0b4 (2015-09-09)
--------------------
- Changed our content types to use TinyMCEWidget instead of
RichWidget. The old one only showed a plain textarea. Fixes issue
#152.
- Fixed ``propertiestool.xml`` to not break importing
``types_not_searched``.
1.8.0.beta3 (2015-07-20)
------------------------
- Show loading on new form OK.
1.8.0.beta2 (2015-07-15)
------------------------
- Doc update.
- travis config fixes.
1.8.0.beta1 (2015-07-13)
------------------------
- Quick Editor working!
- Use bundles architecture and requirejs.
1.8.0.alpha1 (2015-06-29)
-------------------------
- Check commit log for changes related to P5 update.
- 1.8 will target Plone 5. Maintenance branch is 1.7-maintenance.
- Use content-core instead of main macro for templates using the
main_template's master macro. Among fitting better in the standard plone
environment and prepares for displaying in a full view (some modifications
needed).
[thet]
For previous changes, see docs/HISTORY.txt.