[Erp5-report] r20950 - /erp5/trunk/products/ERP5Type/Constraint/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed May 14 10:40:49 CEST 2008
Author: romain
Date: Wed May 14 10:40:46 2008
New Revision: 20950
URL: http://svn.erp5.org?rev=20950&view=rev
Log:
Activate CategoryMembershipState.
Make it more generic.
Modified:
erp5/trunk/products/ERP5Type/Constraint/CategoryMembershipState.py
erp5/trunk/products/ERP5Type/Constraint/__init__.py
Modified: erp5/trunk/products/ERP5Type/Constraint/CategoryMembershipState.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Constraint/CategoryMembershipState.py?rev=20950&r1=20949&r2=20950&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Constraint/CategoryMembershipState.py (original)
+++ erp5/trunk/products/ERP5Type/Constraint/CategoryMembershipState.py Wed May 14 10:40:46 2008
@@ -27,7 +27,7 @@
##############################################################################
from Products.ERP5Type.Constraint.Constraint import Constraint
-from Products.ERP5Type.Utils import convertToUpperCase
+# from Products.ERP5Type.Utils import convertToUpperCase
class CategoryMembershipState(Constraint):
"""
@@ -44,6 +44,11 @@
'validation_state': ('validated', ),
},
"""
+ _message_id_list = ['message_different_state']
+
+ message_different_state = \
+ "${workflow_variable} for object ${membership_url} is ${current_state}" \
+ "which is not in ${valid_state_list}"
def checkConsistency(self, obj, fixit=0):
"""
@@ -53,7 +58,9 @@
are defined the minimum and the maximum arity, and the
list of objects we wants to check the arity.
"""
- errors = []
+ if not self._checkConstraintCondition(obj):
+ return []
+ error_list = []
# Retrieve values inside de PropertySheet (_constraints)
base_category = self.constraint_definition['base_category']
portal_type = self.constraint_definition['portal_type']
@@ -65,14 +72,16 @@
for workflow_variable, valid_state_list in state_var_list.items():
for membership in membership_list:
- method = getattr(membership,
- 'get%s' % convertToUpperCase(workflow_variable))
- current_state = method()
+ current_state = membership.getProperty(workflow_variable)
if current_state not in valid_state_list:
- # Generate error message
- error_message = "'%s' for object '%s' is '%s' which is not in " \
- "'%s'" % (workflow_variable, membership.getRelativeUrl(),
- current_state, str(valid_state_list))
+ mapping = dict(workflow_variable=workflow_variable,
+ membership_url=membership.getRelativeUrl(),
+ current_state=current_state,
+ valid_state_list=str(valid_state_list),)
+ message_id = 'message_different_state'
+
# Add error
- errors.append(self._generateError(obj, error_message))
- return errors
+ error_list.append(self._generateError(obj,
+ self._getMessage(message_id), mapping))
+
+ return error_list
Modified: erp5/trunk/products/ERP5Type/Constraint/__init__.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Constraint/__init__.py?rev=20950&r1=20949&r2=20950&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Constraint/__init__.py (original)
+++ erp5/trunk/products/ERP5Type/Constraint/__init__.py Wed May 14 10:40:46 2008
@@ -11,3 +11,4 @@
from TALESConstraint import TALESConstraint
from ContentExistence import ContentExistence
from StringAttributeMatch import StringAttributeMatch
+from CategoryMembershipState import CategoryMembershipState
More information about the Erp5-report
mailing list