diff --git a/product/ERP5/Document/Alarm.py b/product/ERP5/Document/Alarm.py index 402abb919d64cf8d40b1abb937b87e6d3e603398..ccccdb504ffe729b7f8e171bcb49edd9309d3ab9 100644 --- a/product/ERP5/Document/Alarm.py +++ b/product/ERP5/Document/Alarm.py @@ -303,9 +303,11 @@ class Alarm(XMLObject, PeriodicityMixin): if method_id not in (None, ''): # A tag is provided as a parameter in order to be # able to notify the user after all processes are ended + # Tag is generated from portal_ids so that it can be retrieved + # later when creating an active process for example # We do some inspection to keep compatibility # (because fixit and tag were not set previously) - tag='Alarm_activeSense_%s_%s' % (self.getId(), DateTime()) + tag = str(self.portal_ids.generateNewLengthId(id_group=self.getId())) kw = {} method = getattr(self, method_id) name_list = method.func_code.co_varnames @@ -499,15 +501,19 @@ Alarm URL: %s security.declareProtected(Permissions.ModifyPortalContent, 'newActiveProcess') - def newActiveProcess(self, **kw): + def newActiveProcess(self, activate_kw={}, **kw): """ We will create a new active process in order to store new results, then this process will be added to the list of processes """ + tag = self.portal_ids.getLastLengthGeneratedId(id_group=self.getId()) + if tag is not None: + activate_kw.setdefault('tag', str(tag)) portal_activities = getToolByName(self,'portal_activities') active_process = portal_activities.newActiveProcess(start_date=DateTime(), causality_value=self, + activate_kw=activate_kw, **kw) return active_process