-
-
Notifications
You must be signed in to change notification settings - Fork 75
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[fc] Repository: Products.Archetypes
Branch: refs/heads/1.10.x Date: 2016-08-11T12:27:40-06:00 Author: Sean Upton (seanupton) <sdupton@gmail.com> Commit: plone/Products.Archetypes@2ea2aa4 DateWidget, DatetimeWidget (pick-a-date) now able to clear previous values; fixes inability to clear an already set date or datetime in Archetypes fields; backport of already merged fix for 1.11.1. Files changed: M CHANGES.rst M Products/Archetypes/Widget.py M Products/Archetypes/tests/test_pawidgets.py Repository: Products.Archetypes Branch: refs/heads/1.10.x Date: 2016-08-12T01:34:16+02:00 Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org> Commit: plone/Products.Archetypes@7171122 Merge pull request #61 from seanupton/1.10.x DateWidget, DatetimeWidget (pick-a-date) now able to clear previous Files changed: M CHANGES.rst M Products/Archetypes/Widget.py M Products/Archetypes/tests/test_pawidgets.py
- Loading branch information
1 parent
cd503c6
commit 823fea1
Showing
1 changed file
with
165 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,97 +1,200 @@ | ||
Repository: Products.PortalTransforms | ||
Repository: Products.Archetypes | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2016-07-22T10:46:19-06:00 | ||
Branch: refs/heads/1.10.x | ||
Date: 2016-08-11T12:27:40-06:00 | ||
Author: Sean Upton (seanupton) <sdupton@gmail.com> | ||
Commit: https://github.com/plone/Products.PortalTransforms/commit/555076af97cabf783d87e7824a38f46d2491ef37 | ||
Commit: https://github.com/plone/Products.Archetypes/commit/2ea2aa46e5496d01b2f331a697e8835e950b2e6e | ||
|
||
Fix rest heading level regression introduced in 2.2.0, levels in body | ||
headings now match what was previously output by old Zope2 | ||
reStructuredText wrapper, which means Products.Archetypes tests for | ||
transforms will pass again. | ||
DateWidget, DatetimeWidget (pick-a-date) now able to clear previous | ||
values; fixes inability to clear an already set date or datetime in | ||
Archetypes fields; backport of already merged fix for 1.11.1. | ||
|
||
Files changed: | ||
M CHANGES.rst | ||
M Products/PortalTransforms/transforms/rest.py | ||
M Products/Archetypes/Widget.py | ||
M Products/Archetypes/tests/test_pawidgets.py | ||
|
||
diff --git a/CHANGES.rst b/CHANGES.rst | ||
index 0495fc8..ceafaee 100644 | ||
index 7aa4424..f8f20a4 100644 | ||
--- a/CHANGES.rst | ||
+++ b/CHANGES.rst | ||
@@ -10,6 +10,12 @@ New: | ||
@@ -14,7 +14,9 @@ New features: | ||
|
||
Fixes: | ||
Bug fixes: | ||
|
||
+- Fix regression in rest transform vs. old Zope2 reStructuredText wrapper: | ||
+ headings now proper level in settings for body, which was necessary to | ||
+ preserve levels assumed in downstream use of this transform | ||
+ (e.g. Archetypes). Behavior now matches that of previous wrapper. | ||
-- *add item here* | ||
+- DateWidget, DatetimeWidget now able to clear previous values; backported | ||
+ fix from 1.11.1. | ||
+ [seanupton] | ||
|
||
|
||
1.10.15 (2016-05-15) | ||
diff --git a/Products/Archetypes/Widget.py b/Products/Archetypes/Widget.py | ||
index 1dba93f..116d1db 100644 | ||
--- a/Products/Archetypes/Widget.py | ||
+++ b/Products/Archetypes/Widget.py | ||
@@ -1023,6 +1023,10 @@ def process_form(self, instance, field, form, empty_marker=None): | ||
|
||
value = value.split('-') | ||
|
||
+ if value[0] == '': | ||
+ # empty value, clear any previous value | ||
+ return None, {} | ||
+ | ||
- *add item here* | ||
|
||
|
||
diff --git a/Products/PortalTransforms/transforms/rest.py b/Products/PortalTransforms/transforms/rest.py | ||
index ed28b23..9610552 100644 | ||
--- a/Products/PortalTransforms/transforms/rest.py | ||
+++ b/Products/PortalTransforms/transforms/rest.py | ||
@@ -100,7 +100,7 @@ def convert(self, orig, data, **kwargs): | ||
'raw_enabled': 0, | ||
'language_code': language, | ||
# starting level for <H> elements: | ||
- 'initial_header_level': initial_header_level, | ||
+ 'initial_header_level': initial_header_level + 1, | ||
# set the reporting level to something sane: | ||
'report_level': report_level, | ||
# don't break if we get errors: | ||
try: | ||
value = DateTime(datetime(*map(int, value))) | ||
except: | ||
@@ -1102,8 +1106,11 @@ def process_form(self, instance, field, form, empty_marker=None): | ||
return empty_marker | ||
|
||
tmp = value.split(' ') | ||
+ | ||
if not tmp[0]: | ||
- return empty_marker | ||
+ # empty: clear, not preserve, any previous value | ||
+ return None, {} | ||
+ | ||
value = tmp[0].split('-') | ||
if len(tmp) == 2 and ':' in tmp[1]: | ||
value += tmp[1].split(':') | ||
diff --git a/Products/Archetypes/tests/test_pawidgets.py b/Products/Archetypes/tests/test_pawidgets.py | ||
index 2421358..a8a85e6 100644 | ||
--- a/Products/Archetypes/tests/test_pawidgets.py | ||
+++ b/Products/Archetypes/tests/test_pawidgets.py | ||
@@ -124,6 +124,16 @@ def test_process_form(self): | ||
(datetime(2011, 11, 22)) | ||
) | ||
|
||
+ def test_process_form_empty_existing(self): | ||
+ form = { | ||
+ 'fieldname': '' | ||
+ } | ||
+ self.assertEqual( | ||
+ self.widget.process_form( | ||
+ self.context, self.field, form)[0], | ||
+ None | ||
+ ) | ||
+ | ||
|
||
class DatetimeWidgetTests(unittest.TestCase): | ||
|
||
@@ -188,6 +198,16 @@ def test_process_form(self): | ||
(datetime(2011, 11, 22, 13, 30)) | ||
) | ||
|
||
+ def test_process_form_empty_existing(self): | ||
+ form = { | ||
+ 'fieldname': '' | ||
+ } | ||
+ self.assertEqual( | ||
+ self.widget.process_form( | ||
+ self.context, self.field, form)[0], | ||
+ None | ||
+ ) | ||
+ | ||
|
||
class SelectWidgetTests(unittest.TestCase): | ||
|
||
|
||
|
||
Repository: Products.PortalTransforms | ||
Repository: Products.Archetypes | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2016-08-11T22:48:26+02:00 | ||
Branch: refs/heads/1.10.x | ||
Date: 2016-08-12T01:34:16+02:00 | ||
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org> | ||
Commit: https://github.com/plone/Products.PortalTransforms/commit/14a4e26d4389addc6157a047b7d63a34bb73f906 | ||
Commit: https://github.com/plone/Products.Archetypes/commit/71711223ac415084f9642d57a16fff7cf623d82c | ||
|
||
Merge pull request #15 from seanupton/master | ||
Merge pull request #61 from seanupton/1.10.x | ||
|
||
Fix rest heading level regression introduced in 2.2.0 | ||
DateWidget, DatetimeWidget (pick-a-date) now able to clear previous | ||
|
||
Files changed: | ||
M CHANGES.rst | ||
M Products/PortalTransforms/transforms/rest.py | ||
M Products/Archetypes/Widget.py | ||
M Products/Archetypes/tests/test_pawidgets.py | ||
|
||
diff --git a/CHANGES.rst b/CHANGES.rst | ||
index 0495fc8..ceafaee 100644 | ||
index 7aa4424..f8f20a4 100644 | ||
--- a/CHANGES.rst | ||
+++ b/CHANGES.rst | ||
@@ -10,6 +10,12 @@ New: | ||
@@ -14,7 +14,9 @@ New features: | ||
|
||
Fixes: | ||
Bug fixes: | ||
|
||
+- Fix regression in rest transform vs. old Zope2 reStructuredText wrapper: | ||
+ headings now proper level in settings for body, which was necessary to | ||
+ preserve levels assumed in downstream use of this transform | ||
+ (e.g. Archetypes). Behavior now matches that of previous wrapper. | ||
-- *add item here* | ||
+- DateWidget, DatetimeWidget now able to clear previous values; backported | ||
+ fix from 1.11.1. | ||
+ [seanupton] | ||
|
||
|
||
1.10.15 (2016-05-15) | ||
diff --git a/Products/Archetypes/Widget.py b/Products/Archetypes/Widget.py | ||
index 1dba93f..116d1db 100644 | ||
--- a/Products/Archetypes/Widget.py | ||
+++ b/Products/Archetypes/Widget.py | ||
@@ -1023,6 +1023,10 @@ def process_form(self, instance, field, form, empty_marker=None): | ||
|
||
value = value.split('-') | ||
|
||
+ if value[0] == '': | ||
+ # empty value, clear any previous value | ||
+ return None, {} | ||
+ | ||
- *add item here* | ||
|
||
|
||
diff --git a/Products/PortalTransforms/transforms/rest.py b/Products/PortalTransforms/transforms/rest.py | ||
index ed28b23..9610552 100644 | ||
--- a/Products/PortalTransforms/transforms/rest.py | ||
+++ b/Products/PortalTransforms/transforms/rest.py | ||
@@ -100,7 +100,7 @@ def convert(self, orig, data, **kwargs): | ||
'raw_enabled': 0, | ||
'language_code': language, | ||
# starting level for <H> elements: | ||
- 'initial_header_level': initial_header_level, | ||
+ 'initial_header_level': initial_header_level + 1, | ||
# set the reporting level to something sane: | ||
'report_level': report_level, | ||
# don't break if we get errors: | ||
try: | ||
value = DateTime(datetime(*map(int, value))) | ||
except: | ||
@@ -1102,8 +1106,11 @@ def process_form(self, instance, field, form, empty_marker=None): | ||
return empty_marker | ||
|
||
tmp = value.split(' ') | ||
+ | ||
if not tmp[0]: | ||
- return empty_marker | ||
+ # empty: clear, not preserve, any previous value | ||
+ return None, {} | ||
+ | ||
value = tmp[0].split('-') | ||
if len(tmp) == 2 and ':' in tmp[1]: | ||
value += tmp[1].split(':') | ||
diff --git a/Products/Archetypes/tests/test_pawidgets.py b/Products/Archetypes/tests/test_pawidgets.py | ||
index 2421358..a8a85e6 100644 | ||
--- a/Products/Archetypes/tests/test_pawidgets.py | ||
+++ b/Products/Archetypes/tests/test_pawidgets.py | ||
@@ -124,6 +124,16 @@ def test_process_form(self): | ||
(datetime(2011, 11, 22)) | ||
) | ||
|
||
+ def test_process_form_empty_existing(self): | ||
+ form = { | ||
+ 'fieldname': '' | ||
+ } | ||
+ self.assertEqual( | ||
+ self.widget.process_form( | ||
+ self.context, self.field, form)[0], | ||
+ None | ||
+ ) | ||
+ | ||
|
||
class DatetimeWidgetTests(unittest.TestCase): | ||
|
||
@@ -188,6 +198,16 @@ def test_process_form(self): | ||
(datetime(2011, 11, 22, 13, 30)) | ||
) | ||
|
||
+ def test_process_form_empty_existing(self): | ||
+ form = { | ||
+ 'fieldname': '' | ||
+ } | ||
+ self.assertEqual( | ||
+ self.widget.process_form( | ||
+ self.context, self.field, form)[0], | ||
+ None | ||
+ ) | ||
+ | ||
|
||
class SelectWidgetTests(unittest.TestCase): | ||
|
||
|
||
|