From 04a1e6a3b9903bb7544f0874ff50ca06d704b458 Mon Sep 17 00:00:00 2001 From: Arnaud Fontaine <arnaud.fontaine@nexedi.com> Date: Thu, 4 Nov 2010 06:19:28 +0000 Subject: [PATCH] When importing all the Property Sheets to ZODB, delete existing ones and perform a commit after each import, then redirect to portal_property_sheets. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@39875 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Type/Tool/PropertySheetTool.py | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/product/ERP5Type/Tool/PropertySheetTool.py b/product/ERP5Type/Tool/PropertySheetTool.py index e6644f5f0c..609ce663ef 100644 --- a/product/ERP5Type/Tool/PropertySheetTool.py +++ b/product/ERP5Type/Tool/PropertySheetTool.py @@ -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 Expression 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)) + if name in self.portal_property_sheets: + self.portal_property_sheets.deleteContent(name) + transaction.commit() - self.createPropertySheetFromFilesystemClass(klass) + LOG("Tool.PropertySheetTool", INFO, + "Creating %s in portal_property_sheets" % repr(name)) - else: - LOG("Tool.PropertySheetTool", BLATHER, - "%s already exists 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') -- 2.30.9