[Erp5-report] r39875 arnaud.fontaine - /erp5/trunk/products/ERP5Type/Tool/PropertySheetTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Nov 4 07:19:33 CET 2010


Author: arnaud.fontaine
Date: Thu Nov  4 07:19:28 2010
New Revision: 39875

URL: http://svn.erp5.org?rev=39875&view=rev
Log:
When importing all the Property Sheets to ZODB, delete existing ones
and perform a commit after each import, then redirect to
portal_property_sheets.


Modified:
    erp5/trunk/products/ERP5Type/Tool/PropertySheetTool.py

Modified: erp5/trunk/products/ERP5Type/Tool/PropertySheetTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Tool/PropertySheetTool.py?rev=39875&r1=39874&r2=39875&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Tool/PropertySheetTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Tool/PropertySheetTool.py [utf8] Thu Nov  4 07:19:28 2010
@@ -27,6 +27,8 @@
 #
 ##############################################################################
 
+import transaction
+
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type.Tool.BaseTool import BaseTool
 from Products.ERP5Type import Permissions
@@ -36,7 +38,7 @@ from Products.CMFCore.Expression import 
 from Products.ERP5Type.Base import Base, PropertyHolder
 from Products.ERP5Type.Utils import setDefaultClassProperties, setDefaultProperties
 
-from zLOG import LOG, ERROR, BLATHER
+from zLOG import LOG, ERROR, INFO
 
 class PropertySheetTool(BaseTool):
   """
@@ -109,7 +111,7 @@ class PropertySheetTool(BaseTool):
 
   security.declareProtected(Permissions.ManagePortal,
                             'createAllPropertySheetsFromFilesystem')
-  def createAllPropertySheetsFromFilesystem(self):
+  def createAllPropertySheetsFromFilesystem(self, REQUEST=None):
     """
     Create Property Sheets in portal_property_sheets from _all_
     filesystem Property Sheets
@@ -123,15 +125,21 @@ class PropertySheetTool(BaseTool):
       if name[0] == '_':
         continue
 
-      if name not in self.portal_property_sheets:
-        LOG("Tool.PropertySheetTool", BLATHER,
-            "Creating %s in portal_property_sheets" % repr(name))
-
-        self.createPropertySheetFromFilesystemClass(klass)
-
-      else:
-        LOG("Tool.PropertySheetTool", BLATHER,
-            "%s already exists in portal_property_sheets" % repr(name))
+      if name in self.portal_property_sheets:
+        self.portal_property_sheets.deleteContent(name)
+        transaction.commit()
+
+      LOG("Tool.PropertySheetTool", INFO,
+          "Creating %s in portal_property_sheets" % repr(name))
+
+      self.createPropertySheetFromFilesystemClass(klass)
+      transaction.commit()
+
+    if REQUEST is not None:
+      return self.REQUEST.RESPONSE.redirect(
+        '%s/view?portal_status_message=' \
+        'Property Sheets successfully imported from filesystem to ZODB.' % \
+        self.absolute_url())
 
   security.declareProtected(Permissions.AccessContentsInformation,
                             'exportPropertySheetToFilesystemDefinitionTuple')




More information about the Erp5-report mailing list