[Erp5-report] r42239 nicolas.dumazet - in /erp5/trunk/products/ERP5Type: ./ Tool/

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Jan 12 04:46:03 CET 2011


Author: nicolas.dumazet
Date: Wed Jan 12 04:46:02 2011
New Revision: 42239

URL: http://svn.erp5.org?rev=42239&view=rev
Log:
fix migrateToPortalTypeClass so that migration is persistent.

Previously, the migration would work, but changes would not be recorded in the
ZODB.

Modified:
    erp5/trunk/products/ERP5Type/Base.py
    erp5/trunk/products/ERP5Type/Tool/BaseTool.py

Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=42239&r1=42238&r2=42239&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Base.py [utf8] Wed Jan 12 04:46:02 2011
@@ -3878,6 +3878,10 @@ class Base( CopyContainer,
       newklass = getattr(erp5.portal_type, portal_type)
       assert klass != newklass
       self.__class__ = newklass
+      self._p_changed = True
+      # this might look useless, but it is necessary to explicitely record
+      # the change in the parent container, because the class has changed
+      setattr(self.getParentValue(), self.getId(), self)
 
   security.declareProtected(Permissions.DeletePortalContent,
                             'migratePortalType')

Modified: erp5/trunk/products/ERP5Type/Tool/BaseTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Tool/BaseTool.py?rev=42239&r1=42238&r2=42239&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Tool/BaseTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Tool/BaseTool.py [utf8] Wed Jan 12 04:46:02 2011
@@ -96,7 +96,7 @@ class BaseTool (UniqueObject, Folder):
         from Products.ERP5Type import document_class_registry
         document_class_name = portal_type.replace(' ', '')
         if document_class_name in document_class_registry:
-          type_definition.setTypeClass(document_class_name)
+          type_definition.type_class = document_class_name
         else:
           from Products.ERP5.Document.Document import NotConvertedError
           raise NotConvertedError( 



More information about the Erp5-report mailing list