[Erp5-report] r44416 rafael - in /erp5/trunk/products/ERP5Configurator: Document/ Tool/

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Mar 18 02:46:06 CET 2011


Author: rafael
Date: Fri Mar 18 02:46:04 2011
New Revision: 44416

URL: http://svn.erp5.org?rev=44416&view=rev
Log:
Initialize Workflow in a safer way, and do not permit use inconsistent Business Configurations.

Modified:
    erp5/trunk/products/ERP5Configurator/Document/BusinessConfiguration.py
    erp5/trunk/products/ERP5Configurator/Tool/ConfiguratorTool.py

Modified: erp5/trunk/products/ERP5Configurator/Document/BusinessConfiguration.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Configurator/Document/BusinessConfiguration.py?rev=44416&r1=44415&r2=44416&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Configurator/Document/BusinessConfiguration.py [utf8] (original)
+++ erp5/trunk/products/ERP5Configurator/Document/BusinessConfiguration.py [utf8] Fri Mar 18 02:46:04 2011
@@ -91,6 +91,18 @@ class BusinessConfiguration(Item):
     """
     return self.getCurrentStateTitle() == END_STATE_TITLE
 
+  security.declareProtected(Permissions.ModifyPortalContent, \
+      'initializeWorkflow')
+  def initializeWorkflow(self):
+    """ Initialize Related Workflow"""
+    workflow = self.getResourceValue()
+    if workflow is not None and \
+      (self.getResource() not in self.workflow_history):
+      if len(self.objectValues("ERP5 Configuration Save")) > 0:
+        raise ValueError("Business Configuration Cannot be initialized, \
+                          it contains one or more Configurator Save")
+      workflow.initializeDocument(self)
+
   security.declareProtected(Permissions.View, 'getNextTransition')
   def getNextTransition(self):
     """ Return next transition. """
@@ -269,8 +281,7 @@ class BusinessConfiguration(Item):
     next_state = self.unrestrictedTraverse(transition.getDestination())
     workflow_history = current_state.getWorkflowHistory(self)
     for wh in workflow_history:
-      wh_state = self.unrestrictedTraverse(wh['current_state'])
-      if wh_state == next_state:
+      if next_state == self.unrestrictedTraverse(wh['current_state']):
         configuration_save = self.unrestrictedTraverse(wh['configuration_save_url'])
     return configuration_save
 

Modified: erp5/trunk/products/ERP5Configurator/Tool/ConfiguratorTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Configurator/Tool/ConfiguratorTool.py?rev=44416&r1=44415&r2=44416&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Configurator/Tool/ConfiguratorTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5Configurator/Tool/ConfiguratorTool.py [utf8] Fri Mar 18 02:46:04 2011
@@ -231,6 +231,8 @@ class ConfiguratorTool(BaseTool):
     validation_errors = None
     response = {}
 
+    business_configuration.initializeWorkflow()
+
     ## initial state no previous form to validate
     if business_configuration.isInitialConfigurationState():
       need_validation = 0



More information about the Erp5-report mailing list