[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ - avoid write-on-read
Yvo Schubbe
y.2009 at wcm-solutions.de
Sat Dec 5 05:29:47 EST 2009
Log message for revision 106215:
- avoid write-on-read
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
U Products.CMFDefault/trunk/Products/CMFDefault/MetadataTool.py
U Products.CMFDefault/trunk/Products/CMFDefault/tests/test_MetadataTool.py
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2009-12-05 09:41:23 UTC (rev 106214)
+++ Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2009-12-05 10:29:47 UTC (rev 106215)
@@ -4,6 +4,9 @@
2.2.0-beta (unreleased)
-----------------------
+- MetadataTool: Improved tool initialization.
+ This prevents write-on-read behavior of newly created tool instances.
+
- views: Improved ContentAddFormBase.
Permissions and container constraints are now checked by the '__call__'
method. There is no need to add security declarations for derived add forms.
Modified: Products.CMFDefault/trunk/Products/CMFDefault/MetadataTool.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/MetadataTool.py 2009-12-05 09:41:23 UTC (rev 106214)
+++ Products.CMFDefault/trunk/Products/CMFDefault/MetadataTool.py 2009-12-05 10:29:47 UTC (rev 106215)
@@ -324,7 +324,7 @@
"""
# Don't replace.
if self.element_specs.has_key( element ):
- return
+ return
self.element_specs[ element ] = ElementSpec( is_multi_valued )
@@ -377,7 +377,9 @@
_DCMI = None
def _get_DCMI( self ):
-
+ # BBB: for metadata tools created with CMF 1.6 (or older) and
+ # for never used metadata tools created with CMF 2.0 or CMF 2.1
+ # XXX: this should be replaced by upgrade steps
if self._DCMI is None:
dcmi = self._DCMI = MetadataSchema( 'DCMI', _DCMI_ELEMENT_SPECS )
@@ -410,7 +412,8 @@
def __init__( self, publisher=None ):
- self.editProperties( publisher )
+ self.editProperties(publisher)
+ self._DCMI = MetadataSchema('DCMI', _DCMI_ELEMENT_SPECS)
#
# ZMI methods
Modified: Products.CMFDefault/trunk/Products/CMFDefault/tests/test_MetadataTool.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/tests/test_MetadataTool.py 2009-12-05 09:41:23 UTC (rev 106214)
+++ Products.CMFDefault/trunk/Products/CMFDefault/tests/test_MetadataTool.py 2009-12-05 10:29:47 UTC (rev 106215)
@@ -485,6 +485,7 @@
from Products.CMFDefault.MetadataTool import ElementSpec
tool = self._makeOne()
+ tool._DCMI = None
tool.element_specs = { 'Title' : ElementSpec( 0 )
, 'Description' : ElementSpec( 0 )
, 'Subject' : ElementSpec( 1 )
More information about the checkins
mailing list