[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