[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py - some metadata tools neither have a _DCMI nor a DCMI attribute

Yvo Schubbe y.2009 at wcm-solutions.de
Thu Dec 10 11:24:29 EST 2009


Log message for revision 106415:
  - some metadata tools neither have a _DCMI nor a DCMI attribute
  - also override the 'Discussion Item' workflow if no override exists

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py	2009-12-10 16:23:46 UTC (rev 106414)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py	2009-12-10 16:24:29 UTC (rev 106415)
@@ -27,6 +27,8 @@
 from Products.CMFCore.interfaces import IWorkflowDefinition
 from Products.CMFCore.permissions import ModifyPortalContent
 from Products.CMFCore.utils import getToolByName
+from Products.CMFDefault.MetadataTool import MetadataSchema
+from Products.CMFDefault.MetadataTool import _DCMI_ELEMENT_SPECS
 
 _KNOWN_IMPORT_STEPS = (
     'actions',
@@ -315,9 +317,11 @@
     logger = logging.getLogger('GenericSetup.upgrade')
     metadata_tool = getToolByName(tool, 'portal_metadata')
     if getattr(aq_base(metadata_tool), 'DCMI', None) is None:
-        dcmi = metadata_tool._DCMI
-        del metadata_tool._DCMI
-        metadata_tool.DCMI = dcmi
+        if getattr(aq_base(metadata_tool), '_DCMI', None) is None:
+            metadata_tool.DCMI = MetadataSchema('DCMI', _DCMI_ELEMENT_SPECS)
+        else:
+            metadata_tool.DCMI = metadata_tool._DCMI
+            del metadata_tool._DCMI
     logger.info('Dublin Core metadata definition updated.')
 
 
@@ -362,8 +366,11 @@
     discussion_overrides = [x for x in wf_tool.listChainOverrides()
                                                if x[0] == 'Discussion Item']
 
+    if not discussion_overrides: 
+        return True
+
     # Only apply if Discussion Item has an empty workflow chain
-    if discussion_overrides and not discussion_overrides[0][1]:
+    if not discussion_overrides[0][1]:
         return True
 
     return False



More information about the checkins mailing list