[Checkins] SVN: Products.CMFDefault/branches/2.2/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:23:47 EST 2009
Log message for revision 106413:
- 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/branches/2.2/Products/CMFDefault/upgrade/to22.py
-=-
Modified: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/to22.py
===================================================================
--- Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/to22.py 2009-12-10 16:21:10 UTC (rev 106412)
+++ Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/to22.py 2009-12-10 16:23:46 UTC (rev 106413)
@@ -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