Metadata-Version: 2.1 Name: Products.Formulator Version: 2.0 Summary: Form library for Zope 4 Home-page: https://github.com/infrae/Products.Formulator Author: Martijn Faassen and community Author-email: info@infrae.com License: BSD Keywords: form generator zope4 Classifier: Development Status :: 5 - Production/Stable Classifier: Framework :: Zope :: 4 Classifier: License :: OSI Approved :: BSD License Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2.7 Classifier: Topic :: Software Development :: Libraries :: Python Modules License-File: LICENSE.txt Requires-Dist: grokcore.component Requires-Dist: setuptools Requires-Dist: zope.component Requires-Dist: zope.i18nmessageid Requires-Dist: zope.interface Requires-Dist: zope.cachedescriptors Requires-Dist: zeam.form.base Requires-Dist: grokcore.chameleon (<4.0) ; python_version == "2.7" Requires-Dist: grokcore.component (<4.0) ; python_version == "2.7" Requires-Dist: grokcore.view (<4.0) ; python_version == "2.7" Requires-Dist: zeam.form.base (<1.4) ; python_version == "2.7" Provides-Extra: test Requires-Dist: plone.testing ; extra == 'test' Requires-Dist: Products.PythonScripts (<5.0) ; (python_version == "2.7") and extra == 'test' Formulator ========== Formulator is a tool to help with the creation and validation of web forms. Form fields are stored as objects in Zope 4, in a special Form folder. .. caution:: This package is not actively maintained. .. contents:: Features -------- * manage form fields through the Zope management interface. * manage field look & feel as well as validation and processing behavior. * automatic field validation. * determine field order and group fields together. * easy extensibility with new field types. * online help. * serialization of form to XML and back. Dependencies ------------ You need to install either zeam.form. The best to install this product is to use buildout and let it resolves the dependencies. Code repository --------------- You can find the code of this extension in Git: https://github.com/infrae/Products.Formulator Credits ======= Developers: - Martijn Faassen (faassen@vet.uu.nl) -- Main developer, design and implementation. - Clemens Klein-Robbenhaar (robbenhaar at espresto.com) -- Many bugfixes and feature additions. Many thanks go to: - Kit Blake (kitblake at v2.nl) -- UI help and design help. - Yury Don (yura at vpcit.ru) -- contributed EmailField and FloatField, design and implementation help. - Stephan Richter (srichter at iuveno-net.de) -- contributed LinkField and FileField. Contributed PatternChecker module used by PatternField. Other design and implementation help. - Nicola Larosa (nico at tekNico.net) -- feedback and bugfixes. - Magnus Heino (magus.heino at rivermen.se) -- feedback and bugfixes. - Joel Burton (jburton at scw.org) -- feedback and bugfixes. - Ulrich Eck (ueck at net-labs.de) -- much help and patience with the TALES tab. - Dirk Datzert (Dirk.Datzert at rasselstein-hoesch.de) -- feedback and bugfixes. - Max Petrich (petrich.max at kis-solution.de) -- feedback and bugfixes. - Matt Behrens (matt.behrens at kohler.com) -- feedback and bugfixes. - Nikolay Kim (fafhrd at datacom.kz) -- code inspiration for XMLToForm/FormToXML. - Godefroid Chapelle (gotcha at swing.be) -- Bugfixes. - Alan Runyan (runyaga at runyaga.com) -- Fix to email regular expression. - Sascha Welter (welter at network-ag.com) -- Extensive help with email regular expression. - Christian Zagrodnick (cz at gocept.com) -- Unicode awareness fixes and XML entry form. - Iutin Vyacheslav (iutin at whirix.com) -- am/pm feature for DateTime fields. - Kapil Thangavelu (k_vertigo at objectrealms.net) -- Enabled ':record' rendering. - Pierre-Julien Grizel (grizel at ingeniweb.com) -- ProductForm. - Sebastien Robin (seb at nexedi.com) -- more consistent ordering in XML serialization, bugfixes - Guido Wesdorp (guido at infrae.com) -- Added extra_item attribute on compound fields, bugfixes. Fixed unicode error in XMLToForm. - Yura Petrov (ypetrov at naumen.ru) -- Various FSForm related improvements. - Vladimir Voznesensky (vovic at smtp.ru) -- Enabling/disabling of fields, bugfix in ``render_view``. - Jeff Kowalczyk -- Whitespace normalization of sources. - Paul Winkler, Dieter Maurer -- help with fix so that help system doesn't cause ZODB writes on every startup. - Garito (garito at sistes.net) -- bugfix with the XML serialization of DateTime values. - Maciej Pietrzak (magh at apcoh.org) -- Fixes for DateTime validation issues in Zope 2.7. - Patrick Earl (pat at dril.com) -- Fixes for DateTime / CheckBox field rendering. - He Wei (hewei at ied.org.cn) -- ZMI and Unicode related fixes. - Bertrand Croq (bertrand.croq at freeskop.com) -- Fixes for a Unicode issue related to titles of new fields and label for radiobuttons patch - Ian Duggan (ian at swishmark.com) -- "Hide day" in DateTimeField feature - Reinout van Rees (reinout at vanrees.org) -- LabelField validation bugfix. - Mikael Barbero (mikael at emu-france.com) -- ZMI enhancement. - Michael Howitz (mh at gocept.com) -- Run tests on GitHub Actions. Special thanks also goes to Rik Hoekstra. Also a thank you to those few valiant souls who suffered through the bugs of ZFormulator, the previous implementation. Let's hope this one's better! Changes ======= 2.0 (2023-03-14) ---------------- Backwards incompatible changes ++++++++++++++++++++++++++++++ - Remove support for Zope 2 help system. - Stop testing Zope 2 compatibility. This release should still work with Zope 2 but the testing infrastructure was modernized to use ``plone.testing`` instead of ``infrae.testing`` and ``infrae.wsgi`` to be more future proof. Expect this to be the last release working on Zope 2. Features ++++++++ - Support Zope 4. Other changes +++++++++++++ - Remove (test) dependencies of ``five.grok``, ``infrae.wsgi`` and ``infrae.testing``. 1.16 (2022-06-16) ----------------- - Run tests in GitHub Actions. - Fix deprecation warnings. 1.15.5 (2013/10/08) ------------------- - Fix various unicode issues following the modifications of the 1.15 series. 1.15.4 (2013/08/26) ------------------- - ``test_form`` now except a list of bad identifiers for fields as a parameter. An error will be returned if one of those identifier is used by a field. - HTML entities are now escaped by default inside field values. - Formulator Widgets will now return unicode when it is possible. - ``zeam.form`` extractors have been updated to have the same Acquisition wrapping than the ``zeam.form`` widgets. - Dependencies got properly defined in ``setup.py`` to facilitate the installation of the product. 1.15.3 (2013/05/23) ------------------- - Fix unicode issues with the integration of ``zeam.form``. - Fix required and readonly attributes with the interface of ``zeam.form``. - Fix ListTextAreaField so it properly works with values from the request. 1.15.2 (2013/03/05) ------------------- - Fix compability with the latest version of ``zeam.form``. 1.15.1 (2012/12/12) ------------------- - Don't validate values against criterias when deserializing when. This makes impossible to deserialize values that are well-formed, but invalid on a given instance, loosing all information by doing so. 1.15 (2012/09/04) ----------------- - Add support to integrate with ``zeam.form``. - Add support for validators to validate already extracted values from the request. - Some level of validation can be disabled when extracting values from the request, if a value with the id ``field.id_novalidate`` is present as well in the request. This is usefull to extract form values from a request intended for an older version of your form. 1.14 (2011/11/10) ----------------- - Compatibility fixes for Zope 2.13 and Python 2.7. - DateTime widget now support datetime values. - Add a method ``test_form`` on a Form to know if it is broken (have ZODB broken fields, or other problems). - Add a way to programmatically change all fields options for a form. - Add support to serialize/deserialize form values on a content object (see the adapters code). - TAL expressions in fields now have access to a context value: the acquisition parent of the form. - Add some fields that where somewhere else in the past, EmailLinesField and an InterfaceField. - Add support for interfaces in XML import/export, for an interface field. - Support for FileSystemSite is optional. 1.13 (2010/07/15) ----------------- - Compatibility fixes for Zope 2.12 and Python 2.6. Those are the requirements now. Ported from 1.11 branch: - Fix problem with MultiListFields not showing values from request if in unicode mode, as the incoming values from the request did not get converted to unicode in the Field._get_default - The "convert_unicode" helper now expects a separate parameter "encoding" instead of assuming utf8 encoding always. Ported from 1.12 branch: - The majority of Widgets now auto-generate an html 'id' attribute for the rendered widget. This 'id' attribute is accessible in page templates via the field/html_id. If the field has an id attribute set in the 'extra' parameter, the value of this attribute is returned, rather than the auto-generated id. The html id and name attributes are now visible in the ZMI edit screen for the fields. The widgets which do not have html_ids are: RadioWidget, MultiCheckBoxWidget, DateTimeWidget. The widgets have a property "has_html_id" that templates can use to determine whether to place a label around the field title. 1.11.6 (2009/11/11) ------------------- - Added the option for the DateTime Widget to use a popup calendar to input the date and time. - The DateTime Widget popup defaults to midnight for the time. - The DateTime Widget now understands both upper and lower case 'am' and 'pm'. - Fix the factor that a REQUEST is required to use a field object on recent Zope (2.11). - Fixed field events: copy of forms containing fields and folders containing forms was broken. - Added a 'required' validator property to FileFields - Added a validator for FileFields to check whether the value is a StringType, which is an indicator that the form encoding is set incorrectly. The error message informs the user the form encoding should be set to multipart/form-data. - Property descriptions are now displayed on the edit tab. These already existed but were never exposed in the ZMI. 1.11.5 (2008/30/09) ------------------- - Reformat documentation to ReST to release an egg. 1.11.4 ------ Bugs fixed: - Zope i18n *needs* an 'en' directory, or browsers like firefox will use the first language in the language preferences list that does have a translation, even if english is above it in the list of preferences. - Tainted strings caused instance error, converted tainted strings back to strings. - Small fix to Selection Field Validators, whose 'validate' functions failed if items values are stored as unicode - update imports needed by the file system Formulator form representation, if CMF is installed. Now both CMF 1.x (for Plone 2.x) and CMF 2.x (for Plone 3.x) should work. Patch provided by "lcanacheu". - checkbox fields and multicheckboxfield items are now rendered with labels around them. 1.11.3 ------ Bugs fixed: - Field Validators 'validate' functions did not accept unicode values as input on fields that require unicode. - Zope 2.10 compatibility: "MessageIDFactory" got renamed to "MessageFactory"; same for "MessageID"; the monkey to allow this class got influenced, too, so all ZODB importing that class need to be updated, too (Problem reported by Yinghoong Chan and Josef Meile) - Zope 2.10 event handling. Formulator now uses Zope 3 style event handling so that no deprecation warnings are seen anymore. - in Zope 2.10 copy & paste of fields did not work anymore, as apparently Zope now requires permission info in the data structure returned by all_meta_types. We have created a new permission "Add Formulator Fields" which is checked when you create a formulator field, or copy & paste it. Note that there is still a "cosmetic" security issue if a non-manager user tries to add a formulator field. "Add and Edit" works, but "Add" gives a login dialog. Actually the field *did* get added, but the URL to which the system tries to return afterwards does not allow access. 1.11.2 ------ Bugs fixed: - Copied fix from the 1.10 branch, TypeError when passing something other than a string into the Validator. 1.11.1 ------ Bugs fixed - Shut up startup warnings about security declarations in Zope 2.8.5. 1.11 ---- Features Added: - Formulator now needs Zope 2.8.4 + Five 1.2. It uses Five's i18n architecture instead of PlacelessTranslationService. Five 1.2 can be downloaded at http://codespeak.net/z3/five If you do not want to install Five 1.2 for some reason, simply remove 'configure.zcml' in the Formulator package. Formulator will then work (but not have i18n support) in a plain Zope 2.8 installation. - Radiobuttons are now rendered with a label around their field value, allowing to click on the value instead of the radio button itself. (Patch from Bertrand Croq). Bugs fixed: - Fixed unicode issues in FormToXML, when the form was in unicode mode and message fields contained non-ascii chars, XML serialization didn't work. 1.10 ---- Features Added: - Allow to group fields of the ZMI form for each field into more groups than the default "widget" and "validator" (Patch from Mikael Barbero) Bugs fixed: - Fixed AttributeError (on __call__) on DummyMessageID. 1.9.0 ----- Features Added: - Added the 'modules' namespace for TALES expresions. - when reordering a field in the "Order" tab the current field is "sticky" for faster moving up and down. (Patch from Sebastien Robin) - Addes serializeValue and deserializeValue methods to the validator classes. The former takes a sax handler as an argument and sends it sax events to serialize the field value, the latter takes serialized values and massages them back into valid formulator values. These methods are not used within formulator itself, and introduce no new dependencies. - A new flag to the DateTimeField widget allows to hide the day, allowing to specify month and year only. The day defaults to the first day of the month in this case. (Patch from Ian Duggan) Bugs Fixed: - Fixed issue for render_view of list fields with no default value. - Fixed issue with non-ascii characters in the title of a newly created form or field if the unicode property has been set (Patch from Bertrand Croq) - Calling "validate" on LabelField directly failed with a KeyError: 'external_validator' (Patch from Reinout van Rees) - A PatternField may have returned garbled results if the pattern has several 'e' or 'f' in the pattern and 'd', 'e' of 'f' in the field value 1.8.0 ----- Features Added: - Remove i18n prefix and message id generation strategy from Formulator. It is cleaner to do this with i18n:translate in ZPT. Extraction of messages can be done from .form XML files (though this functionality is not yet part of Formulator). - Introduce message id markers and .po file for Formulator generated error messages. These can be made translated in your own page templates like this::
- Test framework now uses (and requires) ZopeTestCase. This allowed some testing setup cruft to be removed. Bugs Fixed: - Added explicit security declaration for the "fieldAdd" DTML-file. This fixed a problem with copy & paste fields in Zope 2.7.3. - Fields having been removed via the XML tab in the ZMI still showed up in the "Contents" tab. - As a convenience TALES expressions now may return "None" for the default value, which is rendered as the empty string. (previously it has been rendered as "value".) 1.7.0 ----- Features Added: - Added FormulatorFormFile, which can be used to load XML representations of forms from filesystem code like PageTemplateFile. - i18n-id and i18n-domain support for forms, including descriptions, error-messages, etc. Bugs Fixed: - changed way selection fields check whether their items property is a list or single item. - Made system not reregister help for Fields which already have help, to avoid ZODB writes on startup. - Fixed singleton submit button that wasn't properly closed. - Zope 2.7 compatibility: In Zope 2.7 the behaviour when trying to construct invalid DateTime object changed from raising string exceptions to class based exceptions. This has caused the DateTimeField's to pass through the new exceptions instead of converting them to ValidationError. - PatternFields are no longer documented as "experimental" in the Help system. - DateTime values field values (like start or end time) have been wrongly represented as strings in the XML representation. - Fixed bug with rendering of ListField's similar to the "single element list with one two-char string" bug fixed for validation in 1.6.2. - Fixed bug in DateTime field where a set "default to now" overwrote values in the request. - Severel spelling bugs. - Fixed bug where a set "default" for a checkbox field would always render a checked checkbox, even if redisplaying a submitted form where the user has unchecked the checkbox Actually the works only if the opening ``