[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