Skip to content

Commit

Permalink
Fix up text of changes.
Browse files Browse the repository at this point in the history
  • Loading branch information
strichter committed Jun 14, 2009
1 parent 94f91b7 commit bc040dc
Showing 1 changed file with 84 additions and 83 deletions.
167 changes: 84 additions & 83 deletions CHANGES.txt
Expand Up @@ -5,105 +5,107 @@ CHANGES
Version 2.0.0 (unreleased)
--------------------------

- KGS 3.4 compatibility. This is a real hard thing, because z3c.form tests
use lxml >= 2.1.1 to check test output, but KGS 3.4 has lxml 1.3.6.
Therefore we agree on that if tests pass with all package versions nailed by
KGS 3.4 but lxml overridden to 2.1.1 then the z3c.form package works with a
plain KGS 3.4.
Features
~~~~~~~~

- Feature: Removed hard z3c.ptcompat and thus z3c.pt dependency.
If you have z3c.ptcompat on the pythonpath it will be used.
- KGS 3.4 compatibility. This is a real hard thing, because `z3c.form` tests
use `lxml` >= 2.1.1 to check test output, but KGS 3.4 has `lxml`
1.3.6. Therefore we agree on that if tests pass with all package versions
nailed by KGS 3.4 but `lxml` overridden to 2.1.1 then the `z3c.form` package
works with a plain KGS 3.4.

- Feature: Added nested group support. Groups are rendered as fieldsets.
Nested fieldsets are very useful when designing forms.
- Removed hard `z3c.ptcompat` and thus `z3c.pt` dependency. If you have
`z3c.ptcompat` on the Python path it will be used.

WARNING: if your Group did have an applyChanges (or any added(?)) method
- Added nested group support. Groups are rendered as fieldsets. Nested
fieldsets are very useful when designing forms.

WARNING: If your group did have an `applyChanges()` (or any added(?)) method
the new one added by this change might not match the signature.

- Added `labelRequired` and `requiredInfo` form attributes. This is
useful for conditional rendering a required info legend in form templates.
The `requiredInfo` label depends by default on a given `labelRequired`
message id and will only return the label if at least one widget field is
required.
- Added `labelRequired` and `requiredInfo` form attributes. This is useful for
conditional rendering a required info legend in form templates. The
`requiredInfo` label depends by default on a given `labelRequired` message
id and will only return the label if at least one widget field is required.

- Add support for refreshing actions after their execution. This is
useful when button action conditions are changing as a result of action
- Add support for refreshing actions after their execution. This is useful
when button action conditions are changing as a result of action
execution. All you need is to set the `refreshActions` flag of the form to
`True` in your action handler.

- Added support for using sources. Where is was previosly possible to
use a vocabulary it is now also possible to use a source. This works both
for basic and contextual sources.
- Added support for using sources. Where it was previosly possible to use a
vocabulary it is now also possible to use a source. This works both for
basic and contextual sources.

**IMPORTANT:** The `ChoiceTerms` and `CollectionTerms` in `z3c.form.term` are
now simple functions that query for real `ITerms` adapters for field's
**IMPORTANT:** The `ChoiceTerms` and `CollectionTerms` in `z3c.form.term`
are now simple functions that query for real `ITerms` adapters for field's
`source` or `value_type` respectively. So if your code inherits the old
`ChoiceTerms` and `CollectionTerms` classes, you'll need to review and adapt
it. See the `z3c.form.term` package and its documentation.
it. See the `z3c.form.term` module and its documentation.

- The new `z3c.form.interfaces.NOT_CHANGED` special value is
available to signal that the current value should be left as is. It's
currently handled in the `z3c.form.form.applyChanges` function.
- The new `z3c.form.interfaces.NOT_CHANGED` special value is available to
signal that the current value should be left as is. It's currently handled
in the `z3c.form.form.applyChanges()` function.

- When no file is specified in the file upload widget, instead of
overwriting the value with a missing one, the old data is retained.
This is done by returning the new `NOT_CHANGED` special value from the
- When no file is specified in the file upload widget, instead of overwriting
the value with a missing one, the old data is retained. This is done by
returning the new `NOT_CHANGED` special value from the
`FileUploadDataConvereter`.

- Preliminary support for widgets for the `schema.IObject` field has
been added. However, there is a big caveat, please read the
``object-caveat.txt`` document inside the package.
- Preliminary support for widgets for the `schema.IObject` field has been
added. However, there is a big caveat, please read the ``object-caveat.txt``
document inside the package.

A new `objectWidgetTemplate` ZCML directive is provided to register widget
templates for specific object field schemas.

- Implemented the `MultiWidget` widget. This widget allows to use
simple fields like `ITextLine`, `IInt`, `IPassword`, etc. in a `IList` or
`ITuple` sequence.
- Implemented the `MultiWidget` widget. This widget allows you to use simple
fields like `ITextLine`, `IInt`, `IPassword`, etc. in a `IList` or `ITuple`
sequence.

- Implemented `TextLinesWidget` widget. This widget offers a text
area element and splits lines in sequence items. This is usfull for power
user interfaces. The widget can be used for sequence fields (e.g. `IList`)
that specify a simple value type field (e.g. `ITextLine` or `IInt`).
- Implemented `TextLinesWidget` widget. This widget offers a text area element
and splits lines in sequence items. This is usfull for power user
interfaces. The widget can be used for sequence fields (e.g. `IList`) that
specify a simple value type field (e.g. `ITextLine` or `IInt`).

- Added a new flag `ignoreContext` to the form field, so that one can
individually select which fields should and which ones should not ignore the
context.

- Allow raw request values of sequence widgets to be non-sequence
values, which makes integration with Javascript libraries easier.
- Allow raw request values of sequence widgets to be non-sequence values,
which makes integration with Javascript libraries easier.

- Added support in the file upload widget's testing flavor to specify
'base64'-encoded strings in the hidden text area, so that binary data can be
uploaded as well.

- Allow overriding the `required` widget attribute using `IValue`
adapter just like it's done for `label` and `name` attributes.
- Allow overriding the `required` widget attribute using `IValue` adapter just
like it's done for `label` and `name` attributes.

- Add the `prompt` attribute of the `SequenceWidget` to the list of
adaptable attributes.
- Add the `prompt` attribute of the `SequenceWidget` to the list of adaptable
attributes.

- Feature: Added benchmarking suite demonstrating performance gain
when using ``z3c.pt``.
- Added benchmarking suite demonstrating performance gain when using
``z3c.pt``.

- Added support for ``z3c.pt``. Usage is switched on via the
"PREFER_Z3C_PT" environment variable.
- Added support for ``z3c.pt``. Usage is switched on via the "PREFER_Z3C_PT"
environment variable or via ``z3c.ptcompat.config.[enable/diable]()``.

- The `TypeError` message used when a field does not provide
`IFormUnicode` now also contains the type of the field.
- The `TypeError` message used when a field does not provide `IFormUnicode`
now also contains the type of the field.

- Add support for internationalization of `z3c.form` messages.
Added Russian, French, German and Chinese translations.
- Add support for internationalization of `z3c.form` messages. Added Russian,
French, German and Chinese translations.

- Sphinx documentation for the package can now be created using the
new `docs` script.
- Sphinx documentation for the package can now be created using the new `docs`
script.

- The widget for fields implementing `IChoice` is now looked up by
querying for an adapter for ``(field, field.vocabulary, request)`` so it can
be differentiated according to the type of the source used for the field.
- The widget for fields implementing `IChoice` is now looked up by querying
for an adapter for ``(field, field.vocabulary, request)`` so it can be
differentiated according to the type of the source used for the field.

- move `formErrorsMessage` attribute from `AddForm` and `EditForm` to
the `z3c.form.form.Form` base class as it's very common validation status
- Move `formErrorsMessage` attribute from `AddForm` and `EditForm` to the
`z3c.form.form.Form` base class as it's very common validation status
message and can be easily reused (especially when translations are
provided).

Expand All @@ -114,11 +116,10 @@ Refactoring

- Templates now declare XML namespaces.

- HTML output is now compared using a modified version of
the XML-aware output checker provided by `lxml`.
- HTML output is now compared using a modified version of the XML-aware output
checker provided by `lxml`.

- Remove unused imports, adjust buildout dependencies in
`setup.py`.
- Remove unused imports, adjust buildout dependencies in `setup.py`.

- Use the `z3c.ptcompat` template engine compatibility layer.

Expand All @@ -127,17 +128,17 @@ Fixed Bugs

- **IMPORTANT** - The signature of `z3c.form.util.extractFileName` function
changed because of spelling mistake fix in argument name. The
`allowEmtpyPostFix` is now called `allowEmptyPostfix` (note `Empty`
instead of `Emtpy` and `Postfix` instead of `PostFix`).
`allowEmtpyPostFix` is now called `allowEmptyPostfix` (note `Empty` instead
of `Emtpy` and `Postfix` instead of `PostFix`).

- **IMPORTANT** - The `z3c.form.interfaces.NOVALUE` special value has been
renamed to `z3c.form.interfaces.NO_VALUE` to follow the common naming
style. The backward-compatibility `NOVALUE` name is still in place, but the
`repr` output of the object has been also changed, thus it may break your
doctests.

- When dealing with `Bytes` fields, we should do a null conversion
when going to its widget value.
- When dealing with `Bytes` fields, we should do a null conversion when going
to its widget value.

- `FieldWidgets` update method were appending keys and values within each
update call. Now the `util.Manager` uses a `UniqueOrderedKeys`
Expand All @@ -148,29 +149,29 @@ Fixed Bugs
probably use a customized `UserList` implementation. Now we can call
``widgets.update()`` more then one time without any side effect.

- `ButtonActions` update where appending keys and values within each
update call. Now we can call ``actions.update()`` more then one time without
any side effect.
- `ButtonActions` update where appending keys and values within each update
call. Now we can call ``actions.update()`` more then one time without any
side effect.

- The `CollectionSequenceDataConverter` no longer throws a
``TypeError: 'NoneType' object is not iterable`` when passed the value
of a non-required field (which in the case of a `List` field is `None`).
- The `CollectionSequenceDataConverter` no longer throws a ``TypeError:
'NoneType' object is not iterable`` when passed the value of a non-required
field (which in the case of a `List` field is `None`).

- The `SequenceDataConverter` and `CollectionSequenceDataConverter`
converter classes now ignore values that are not present in the terms when
converting to a widget value.
- The `SequenceDataConverter` and `CollectionSequenceDataConverter` converter
classes now ignore values that are not present in the terms when converting
to a widget value.

- Use ``nocall:`` modifier in `orderedselect_input.pt` to avoid calling
list entry if it is callable.
- Use ``nocall:`` modifier in `orderedselect_input.pt` to avoid calling list
entry if it is callable.

- `SingleCheckBoxFieldWidget` doesn't repeat the label twice (once in
``<div class="label">``, and once in the ``<label>`` next to the checkbox).
- `SingleCheckBoxFieldWidget` doesn't repeat the label twice (once in ``<div
class="label">``, and once in the ``<label>`` next to the checkbox).

- Don't cause warnings in Python 2.6.

- `validator.SimpleFieldValidator` is now able to handle
`interfaces.NOT_CHANGED`. This value is set for file uploads when
the user does not choose a file for upload.
`interfaces.NOT_CHANGED`. This value is set for file uploads when the user
does not choose a file for upload.


Version 1.9.0 (2008-08-26)
Expand Down

0 comments on commit bc040dc

Please sign in to comment.