[Erp5-report] r27796 - in /erp5/trunk/products/ERP5Type: Base.py Errors.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Jun 25 16:20:28 CEST 2009


Author: jm
Date: Thu Jun 25 16:20:23 2009
New Revision: 27796

URL: http://svn.erp5.org?rev=27796&view=rev
Log:
Implement code to raise when workflow method call is not supported. Disabled for the moment.

Modified:
    erp5/trunk/products/ERP5Type/Base.py
    erp5/trunk/products/ERP5Type/Errors.py

Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=27796&r1=27795&r2=27796&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Base.py [utf8] Thu Jun 25 16:20:23 2009
@@ -68,7 +68,7 @@
 
 from CopySupport import CopyContainer, CopyError,\
     tryMethodCallWithTemporaryPermission
-from Errors import DeferredCatalogError
+from Errors import DeferredCatalogError, UnsupportedWorkflowMethod
 from Products.CMFActivity.ActiveObject import ActiveObject
 from Products.ERP5Type.Accessor.Accessor import Accessor as Method
 from Products.ERP5Type.Accessor.TypeDefinition import asDate
@@ -207,7 +207,9 @@
       for transition_id in transition_list:
         if candidate_workflow.isWorkflowMethodSupported(instance, transition_id):
           valid_list.append(transition_id)
-        else:
+        elif candidate_workflow.__class__.__name__ == 'DCWorkflowDefinition':
+          if 0: # disabled for the moment
+            raise UnsupportedWorkflowMethod(instance, wf_id, transition_id)
           LOG("WorkflowMethod.__call__", ERROR,
               "Transition %s/%s on %r is ignored. Current state is %r."
               % (wf_id, transition_id, instance,

Modified: erp5/trunk/products/ERP5Type/Errors.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Errors.py?rev=27796&r1=27795&r2=27796&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Errors.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Errors.py [utf8] Thu Jun 25 16:20:23 2009
@@ -7,12 +7,14 @@
 from Products.PythonScripts.Utility import allow_class
 from Products.CMFCore.WorkflowCore import WorkflowException
 
+
 class DeferredCatalogError(Exception):
 
     def __init__(self, error_key, context):
         Exception.__init__(self, error_key)
         self.error_key = error_key
         self.field_id = context.getRelativeUrl()
+
 
 class SSHConnectionError(Exception):
   def __init__(self, message):
@@ -22,13 +24,30 @@
   def __str__(self):
     return self.message
 
+
+class UnsupportedWorkflowMethod(WorkflowException):
+
+  def __init__(self, instance, workflow_id, transition_id):
+    self.instance = instance
+    self.workflow_id = workflow_id
+    self.transition_id = transition_id
+
+  def __str__(self):
+    return "Transition %s/%s unsupported for %r. Current state is %r." \
+      % (self.workflow_id, self.transition_id, self.instance,
+         self.instance.getPortalObject().portal_workflow[self.workflow_id]
+             ._getWorkflowStateOf(self.instance, id_only=1))
+
+
 class ImmobilisationValidityError(Exception):pass
 class ImmobilisationCalculationError(Exception):pass
 class TransformationRuleError(Exception):pass
+
 
 allow_class(DeferredCatalogError)
 allow_class(SSHConnectionError)
 allow_class(ImmobilisationValidityError)
 allow_class(ImmobilisationCalculationError)
 allow_class(WorkflowException)
+allow_class(UnsupportedWorkflowMethod)
 allow_class(TransformationRuleError)




More information about the Erp5-report mailing list