@@ -8,6 +8,74 @@ https://zope.readthedocs.io/en/2.13/CHANGES.html
8
8
For the change log of the alpha versions see
9
9
https://github.com/zopefoundation/Zope/blob/4.0a6/CHANGES.rst
10
10
11
+ 4.1 (unreleased)
12
+ ----------------
13
+
14
+ Features
15
+ ++++++++
16
+
17
+ - Modernized request paramter handling
18
+ (`#641 <https://github.com/zopefoundation/Zope/issues/641 >`_):
19
+
20
+ - fully recursive aggregation which can handle structures of arbitrary depth
21
+
22
+ - simplified processing model
23
+
24
+ - support for special HTML5 features: ``_charset_ `` informs
25
+ about the used form encoding; character references used
26
+ to work around encoding limitations
27
+
28
+ - treats parameter values internally as text
29
+ (this means unicode for Python 2).
30
+ For Python 2, the conversion to unicode is skipped if it
31
+ results in a ``UnicodeDecodeError ``. The value is then used
32
+ as is.
33
+
34
+ For Python 2,
35
+ the final values for parameters without converter and encoding directive
36
+ are encoded with Zope's default encoding; character references
37
+ are used for characters which cannot be encoded.
38
+
39
+ - Errors encountered during request parameter processing are
40
+ not reported immediately (at this stage, application specific
41
+ error handling has not yet been set up). Instead, a
42
+ ``post_traverse `` is registered which will raise
43
+ a ``RequestParameterError `` exception after the traversal
44
+ in the proper application context.
45
+ The ``RequestParameterError `` describes all errors
46
+ encountered during request parameter processing.
47
+
48
+ - ``FileUpload `` has new attributes ``type `` (the associated
49
+ MIME type or ``None ``) and the ``dict `` ``type_options ``
50
+ (containing the provided MIME type parameters).
51
+
52
+ Backward incompatibilities:
53
+
54
+ - a parameter must now follow a corresponding default parameter
55
+ to override the default paramter; formerly the relative order
56
+ of parameter and default parameter was of no importance.
57
+
58
+ There is a new directive "conditional" which can also be used
59
+ to define a default value. A conditional parameter is ignored,
60
+ if there is already a corresponding parameter, and
61
+ otherwise acts like a default parameter. Thus, its behaviour
62
+ is comparable to the former bahaviour of "default".
63
+
64
+ - aggregators are now applied from left to right; especially,
65
+ their relative order is important.
66
+ Formerly, aggregators were applied in a fixed order --
67
+ independent of the order in which they were specified.
68
+
69
+ - the converter *functions * (in ``ZPublisher.Converters ``)
70
+ no longer support the conversion of files (because they
71
+ do not know the encoding applicable for the file).
72
+ The converter *directives *, however, can still be applied
73
+ to (uploaded) files. They use the encoding explicitly
74
+ specified via an encoding directive or fall back to
75
+ Zope's default encoding.
76
+
77
+
78
+
11
79
4.0.1 (unreleased)
12
80
------------------
13
81
0 commit comments