Introduction
============
Provides form to update object properties via ``Plone`` UI.
Quick Intro
-----------
* it replicates ZMI ``/manage_propertiesForm`` form in ``Plone`` UI
* it's like ``collective.interfaces`` package to manage zope interfaces via
``Plone`` but to manage ``PropertyManager`` based properties
* it uses ``z3c.form`` library to generate CRUD form
* it is tested in ``Plone 3`` (``Plone 4`` to be checked soon)
* it's installable via ``portal quickinstaller`` tool, for detailed instructions
on how to add it to your zope instance, please, check ``docs/INSTALL.txt``
file
Property attributes
-------------------
``IPropertyManager`` interface provides properties with the next list of
metadata:
* ``id``: required
* ``type``: required
* ``select_variable``: optional; for selection and multiple selection property
types to provide the name of a property or method which returns a list of
strings from which the selection(s) can be chosen
* ``mode``: optional; must contain 0 or more chars from the set 'w', 'd'; 'w' -
value may be changed by user, 'd' - user can delete property, '' - property
and it's value may be shown in property listings, but it is read-only and
may not be deleted; without mode key property is assumed to have the mode 'wd'
(writeable and deletable)
* ``label``: optional
* ``description``: optional
Property types
--------------
Default property manager property types are listed below. All of them are
planned to be supported by ``collective.properties`` management form (see
``TODO`` section below for what's not implemented yet):
* ``float`` - floating number
* ``int`` - integer
* ``long`` - long integer
* ``string`` - utf-8 encoded string
* ``lines`` - list of utf-8 encoded strings
* ``text`` - utf-8 encoded text (string with line breaks)
* ``date`` - Zope2 DateTime object
* ``tokens`` - list of utf-8 encoded strings, entered as text line and split by
space characters afterwards
* ``selection`` - utf-8 encoded string, the only difference between string
property type is that ``selection`` property values is selected from list of
available options, this property type owns extra item in the property
dictionary, 'select_variable' which provides the name of a property or method;
note: make sure your vocabulary doesn't include unicode strings, only
integers, floats, utf-8 encoded strings and booleans, otherwise old
PropertyManager form breaks
which returns a list of strings from which the selection can be chosen.
* ``multiple selection`` - list of utf-8 encoded strings, these strings are also
selected from list of available options as described above in ``selection``
property type
Compatibility
-------------
It's been tested only with Plone 3 so far.
Notes
-----
``Property Manager`` interface defines some reserved strings that are prohibited
to be used as property ids. It provides validation method which is also used by
collective.properties management form. That's why it's secure to install this
package in ``Plone`` site and let non-tech content manager use it's properties
form.
Not all standard properties are handled yet. For details, please, see ``TODO``
section below.
``collective.properties`` form simply skips property types that it doesn't
know how to handle. So to manage them you still need to use standard
``/manage_propertiesForm`` form.
Form that this package provides to manage properties is fully compatible with
old ``Property Manager`` form (``/manage_propertiesForm``) so it's possible to
manage properties on both of them at the same time, and there won't be any
issues with string encodings, etc... ``collective.properties`` form saves
data in the same format original form does.
TODO
----
* add tests
* test in plone4
* improve installation docs re z3c.form versions and installing Plone z3cform
support via quickinstaller
Changelog
=========
1.0a2 - May 10, 2001
--------------------
- Add Manage Properties form title and description with details on how to use it.
[piv]
- Set Property Value inputs to readonly mode for non-writable properties.
Validate property update on server side as well.
[piv]
- Disable deletion checkboxes for non-deletable properties. Validate deletion
on server side as well.
[piv]
- Added selection and multiple selection property type handling.
[piv]
- Added tokens property type handling.
[piv]
- Added date property type handling.
[piv]
- Store string and text property types as 'utf-8' encoded strings to be
OFS.PropertyManager compliant. So now it's possible to use both forms
to manage properties w/o any encoding issues.
[piv]
- Made lines property type work.
[piv]
- Added boolean property type handling.
[piv]
1.0a1 - March 14, 2011
----------------------
- Initial release, no handlers for date and selection fields, no tests yet.
[piv]