[Erp5-report] r36757 kazuhiko - /erp5/trunk/products/ERP5/Document/BusinessTemplate.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Jun 30 21:09:14 CEST 2010


Author: kazuhiko
Date: Wed Jun 30 21:09:13 2010
New Revision: 36757

URL: http://svn.erp5.org?rev=36757&view=rev
Log:
if installed_bt is already in 'replaced' state (that can happen when only replaces ones exist), we cannot not call replace() again on 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=36757&r1=36756&r2=36757&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] Wed Jun 30 21:09:13 2010
@@ -5250,15 +5250,18 @@ Business Template is a set of definition
       else:
         object_to_update = {}
 
-      installed_bt = self.portal_templates.getInstalledBusinessTemplate(
+      site = self.getPortalObject()
+      installed_bt = site.portal_templates.getInstalledBusinessTemplate(
                                                            self.getTitle())
       # When reinstalling, installation state should not change to replaced
       if installed_bt not in [None, self]:
         if installed_bt.getTemplateFormatVersion() == 0:
           force = 1
-        installed_bt.replace(self)
+        if site.portal_workflow.isTransitionPossible(
+            installed_bt, 'replace'):
+          installed_bt.replace(self)
 
-      trash_tool = getToolByName(self, 'portal_trash', None)
+      trash_tool = getToolByName(site, 'portal_trash', None)
       if trash_tool is None and self.getTemplateFormatVersion() == 1:
         raise AttributeError, 'Trash Tool is not installed'
 
@@ -5269,7 +5272,6 @@ Business Template is a set of definition
       if not force:
         self.checkDependencies()
 
-      site = self.getPortalObject()
       from Products.ERP5.ERP5Site import ERP5Generator
       generator_class = getattr(site, '_generator_class', ERP5Generator)
       gen = generator_class()




More information about the Erp5-report mailing list