diff --git a/product/ERP5/Extensions/CheckPortalTypes.py b/product/ERP5/Extensions/CheckPortalTypes.py index 8ab54f95d1eeae71cc046e1fedd6a6a7ee5008ce..e9606c1cd8395a9c7eda12fb1fd7c9eb7558bd93 100644 --- a/product/ERP5/Extensions/CheckPortalTypes.py +++ b/product/ERP5/Extensions/CheckPortalTypes.py @@ -1,6 +1,9 @@ from Globals import get_request +from Acquisition import aq_base +from Globals import PersistentMapping from Products.CMFCore.utils import getToolByName + def fixProductNames(self, REQUEST=None): msg = '' portal_types = getToolByName(self, 'portal_types') @@ -81,3 +84,18 @@ def updateBalanceTransactionClass(self): # reindexing after ... newobj.activate(after_method_id='unindexObject').recursiveReindexObject() + +def updateCareerValidationState(self): + """Career workflow changed its state variable name in r17169 + """ + module = self.getPortalObject().person_module + for person in self.getPortalObject().person_module.contentValues( + filter=dict(portal_type='Person')): + for career in person.contentValues(filter=dict(portal_type='Career')): + if getattr(aq_base(career), 'workflow_history', None) is None: + continue + for line in career.workflow_history['career_workflow']: + if 'state' in line: + line['validation_state'] = line.pop('state') + career.reindexObject() +