[Testbot] Plone 4.3 - Python 2.7 - Build # 2441 - Still failing! - 4 failure(s)
jenkins at plone.org
jenkins at plone.org
Wed Aug 13 18:54:49 UTC 2014
-------------------------------------------------------------------------------
Plone 4.3 - Python 2.7 - Build # 2441 - Still Failing!
-------------------------------------------------------------------------------
http://jenkins.plone.org/job/plone-4.3-python-2.7/2441/
-------------------------------------------------------------------------------
CHANGES
-------------------------------------------------------------------------------
Repository: plone.app.dexterity
Branch: refs/heads/master
Date: 2014-08-13T20:05:25+02:00
Author: Bo Simonsen (bosim) <bo at geekworld.dk>
Commit: https://github.com/plone/plone.app.dexterity/commit/b2b1bf7f8535baa3a4fdf62a1df0a99942d2e512
Remove line feeds and carrige returns from meta description and added upgrade step to do it for existing content
Files changed:
A plone/app/dexterity/upgrades/to2004.py
M plone/app/dexterity/behaviors/metadata.py
M plone/app/dexterity/profiles/default/metadata.xml
M plone/app/dexterity/upgrades/configure.zcml
diff --git a/plone/app/dexterity/behaviors/metadata.py b/plone/app/dexterity/behaviors/metadata.py
index 2d5e120..da4b9d8 100644
--- a/plone/app/dexterity/behaviors/metadata.py
+++ b/plone/app/dexterity/behaviors/metadata.py
@@ -324,7 +324,19 @@ def _get_description(self):
def _set_description(self, value):
if isinstance(value, str):
raise ValueError('Description must be unicode.')
+
+ # If description is containing linefeeds the HTML
+ # validation can break.
+ # See http://bo.geekworld.dk/diazo-bug-on-html5-validation-errors/
+
+ if '\n' in value:
+ value = value.replace('\n', '')
+
+ if '\r' in value:
+ value = value.replace('\r', '')
+
self.context.description = value
+
description = property(_get_description, _set_description)
diff --git a/plone/app/dexterity/profiles/default/metadata.xml b/plone/app/dexterity/profiles/default/metadata.xml
index cffdc60..b75a5da 100644
--- a/plone/app/dexterity/profiles/default/metadata.xml
+++ b/plone/app/dexterity/profiles/default/metadata.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<metadata>
- <version>2003</version>
+ <version>2004</version>
<dependencies>
<dependency>profile-plone.app.z3cform:default</dependency>
</dependencies>
diff --git a/plone/app/dexterity/upgrades/configure.zcml b/plone/app/dexterity/upgrades/configure.zcml
index 1b40b5d..575d5c8 100644
--- a/plone/app/dexterity/upgrades/configure.zcml
+++ b/plone/app/dexterity/upgrades/configure.zcml
@@ -52,4 +52,12 @@
handler=".to2003.fix_installed_products"
/>
+ <genericsetup:upgradeStep
+ source="2003"
+ destination="2004"
+ title="Remove line feeds and carrige returns from the description"
+ profile="plone.app.dexterity:default"
+ handler=".to2004.remove_cr_and_lf_description"
+ />
+
</configure>
diff --git a/plone/app/dexterity/upgrades/to2004.py b/plone/app/dexterity/upgrades/to2004.py
new file mode 100644
index 0000000..00d44a5
--- /dev/null
+++ b/plone/app/dexterity/upgrades/to2004.py
@@ -0,0 +1,35 @@
+from Products.CMFCore.utils import getToolByName
+
+from plone.dexterity.interfaces import IDexterityFTI
+
+
+def remove_cr_and_lf_description(context):
+ types = []
+
+ behaviors = [
+ 'plone.app.dexterity.behaviors.metadata.IBasic',
+ 'plone.app.dexterity.behaviors.metadata.IDublinCore'
+ ]
+
+ context = context.aq_parent
+ sm = context.getSiteManager()
+ for (name, fti) in sm.getUtilitiesFor(IDexterityFTI):
+ for behavior in behaviors:
+ if behavior in fti.behaviors:
+ types.append(name)
+
+ catalog = getToolByName(context, 'portal_catalog')
+
+ for portal_type in types:
+ brains = catalog.searchResults(
+ portal_type=portal_type
+ )
+
+ for brain in brains:
+ obj = brain.getObject()
+
+ if '\n' in obj.description:
+ obj.description = obj.description.replace('\n', '')
+
+ if '\r' in obj.description:
+ obj.description = obj.description.replace('\r', '')
Repository: plone.app.dexterity
Branch: refs/heads/master
Date: 2014-08-13T20:08:01+02:00
Author: Bo Simonsen (bosim) <bo at geekworld.dk>
Commit: https://github.com/plone/plone.app.dexterity/commit/88e4c05cfea536f5ec0d3fe4b992d4ed30176ec4
Updated history
Files changed:
M docs/HISTORY.txt
diff --git a/docs/HISTORY.txt b/docs/HISTORY.txt
index 9820b20..d7bec81 100644
--- a/docs/HISTORY.txt
+++ b/docs/HISTORY.txt
@@ -4,7 +4,9 @@ Changelog for plone.app.dexterity
2.1.2 (unreleased)
------------------
-- Nothing changed yet.
+- Remove line feeds and carrige returns from meta description and
+ added upgrade step to do it for existing content
+ [bosim]
2.1.1 (2014-04-13)
Repository: plone.app.dexterity
Branch: refs/heads/master
Date: 2014-08-13T20:08:34+02:00
Author: Bo Simonsen (bosim) <bo at geekworld.dk>
Commit: https://github.com/plone/plone.app.dexterity/commit/029dfef6a5e590f1bbd64cf6cb7356539c2a06d1
Merge pull request #119 from plone/fix-cr-lf-in-description
Fixing HTML validation errors when using Diazo
Files changed:
A plone/app/dexterity/upgrades/to2004.py
M docs/HISTORY.txt
M plone/app/dexterity/behaviors/metadata.py
M plone/app/dexterity/profiles/default/metadata.xml
M plone/app/dexterity/upgrades/configure.zcml
diff --git a/docs/HISTORY.txt b/docs/HISTORY.txt
index 9820b20..d7bec81 100644
--- a/docs/HISTORY.txt
+++ b/docs/HISTORY.txt
@@ -4,7 +4,9 @@ Changelog for plone.app.dexterity
2.1.2 (unreleased)
------------------
-- Nothing changed yet.
+- Remove line feeds and carrige returns from meta description and
+ added upgrade step to do it for existing content
+ [bosim]
2.1.1 (2014-04-13)
diff --git a/plone/app/dexterity/behaviors/metadata.py b/plone/app/dexterity/behaviors/metadata.py
index 2d5e120..da4b9d8 100644
--- a/plone/app/dexterity/behaviors/metadata.py
+++ b/plone/app/dexterity/behaviors/metadata.py
@@ -324,7 +324,19 @@ def _get_description(self):
def _set_description(self, value):
if isinstance(value, str):
raise ValueError('Description must be unicode.')
+
+ # If description is containing linefeeds the HTML
+ # validation can break.
+ # See http://bo.geekworld.dk/diazo-bug-on-html5-validation-errors/
+
+ if '\n' in value:
+ value = value.replace('\n', '')
+
+ if '\r' in value:
+ value = value.replace('\r', '')
+
self.context.description = value
+
description = property(_get_description, _set_description)
diff --git a/plone/app/dexterity/profiles/default/metadata.xml b/plone/app/dexterity/profiles/default/metadata.xml
index cffdc60..b75a5da 100644
--- a/plone/app/dexterity/profiles/default/metadata.xml
+++ b/plone/app/dexterity/profiles/default/metadata.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<metadata>
- <version>2003</version>
+ <version>2004</version>
<dependencies>
<dependency>profile-plone.app.z3cform:default</dependency>
</dependencies>
diff --git a/plone/app/dexterity/upgrades/configure.zcml b/plone/app/dexterity/upgrades/configure.zcml
index 1b40b5d..575d5c8 100644
--- a/plone/app/dexterity/upgrades/configure.zcml
+++ b/plone/app/dexterity/upgrades/configure.zcml
@@ -52,4 +52,12 @@
handler=".to2003.fix_installed_products"
/>
+ <genericsetup:upgradeStep
+ source="2003"
+ destination="2004"
+ title="Remove line feeds and carrige returns from the description"
+ profile="plone.app.dexterity:default"
+ handler=".to2004.remove_cr_and_lf_description"
+ />
+
</configure>
diff --git a/plone/app/dexterity/upgrades/to2004.py b/plone/app/dexterity/upgrades/to2004.py
new file mode 100644
index 0000000..00d44a5
--- /dev/null
+++ b/plone/app/dexterity/upgrades/to2004.py
@@ -0,0 +1,35 @@
+from Products.CMFCore.utils import getToolByName
+
+from plone.dexterity.interfaces import IDexterityFTI
+
+
+def remove_cr_and_lf_description(context):
+ types = []
+
+ behaviors = [
+ 'plone.app.dexterity.behaviors.metadata.IBasic',
+ 'plone.app.dexterity.behaviors.metadata.IDublinCore'
+ ]
+
+ context = context.aq_parent
+ sm = context.getSiteManager()
+ for (name, fti) in sm.getUtilitiesFor(IDexterityFTI):
+ for behavior in behaviors:
+ if behavior in fti.behaviors:
+ types.append(name)
+
+ catalog = getToolByName(context, 'portal_catalog')
+
+ for portal_type in types:
+ brains = catalog.searchResults(
+ portal_type=portal_type
+ )
+
+ for brain in brains:
+ obj = brain.getObject()
+
+ if '\n' in obj.description:
+ obj.description = obj.description.replace('\n', '')
+
+ if '\r' in obj.description:
+ obj.description = obj.description.replace('\r', '')
-------------------------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CHANGES.log
Type: application/octet-stream
Size: 8456 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140813/477e25bb/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build.log
Type: application/octet-stream
Size: 93608 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140813/477e25bb/attachment-0003.obj>
More information about the Testbot
mailing list