[Erp5-report] r45306 luke - /erp5/trunk/products/ERP5/Document/BusinessTemplate.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Apr 12 09:36:59 CEST 2011


Author: luke
Date: Tue Apr 12 09:36:59 2011
New Revision: 45306

URL: http://svn.erp5.org?rev=45306&view=rev
Log:
 - follow dynamical behaviour of PropertySheetTemplateItem.preinstall and apply
   required magic on genereted result in dynamic method instead of overriding it

Modified:
    erp5/trunk/products/ERP5/Document/BusinessTemplate.py

Modified: erp5/trunk/products/ERP5/Document/BusinessTemplate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessTemplate.py?rev=45306&r1=45305&r2=45306&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] Tue Apr 12 09:36:59 2011
@@ -3541,10 +3541,18 @@ class PropertySheetTemplateItem(Document
     """
     def inner(self, *args, **kw):
       if self._is_already_migrated(getattr(self, object_dict_name).keys()):
-        return getattr(ObjectTemplateItem, method_name)(self, *args, **kw)
+        result = getattr(ObjectTemplateItem, method_name)(self, *args, **kw)
       else:
-        return getattr(DocumentTemplateItem, method_name)(self, *args, **kw)
-
+        result = getattr(DocumentTemplateItem, method_name)(self, *args, **kw)
+      if method_name == 'preinstall':
+        old_result = result.copy()
+        for k, v in old_result.iteritems():
+          if not k.startswith('portal_property_sheets/'):
+            # Magical way to have unique path in case of not yet migrated property
+            # sheets available on preinstall list
+            k = self._getKey(k)
+          result[k] = v
+      return result
     return inner
 
   export = _filesystemCompatibilityWrapper('export', '_objects')
@@ -3700,17 +3708,6 @@ class PropertySheetTemplateItem(Document
     kw['remove_object_dict'] = new_remove_dict
     ObjectTemplateItem.remove(self, context, **kw)
 
-  def preinstall(self, *args, **kwargs):
-    preinstall_dict = ObjectTemplateItem.preinstall(self, *args, **kwargs)
-    new_preinstall_dict = dict()
-    for k, v in preinstall_dict.iteritems():
-      if not k.startswith('portal_property_sheets/'):
-        # Magical way to have unique path in case of not yet migrated property
-        # sheets available on preinstall list
-        k = self._getKey(k)
-      new_preinstall_dict[k] = v
-    return new_preinstall_dict
-
   def install(self, context, **kw):
     if not self._perform_migration:
       return DocumentTemplateItem.install(self, context, **kw)



More information about the Erp5-report mailing list