diff --git a/product/ERP5/Document/Delivery.py b/product/ERP5/Document/Delivery.py index 3f410d0dbe447b81448a43a9fc953c6d37632b82..fe9b9573b05df6fbfe868797e1cfe8bf251930f7 100644 --- a/product/ERP5/Document/Delivery.py +++ b/product/ERP5/Document/Delivery.py @@ -654,36 +654,36 @@ class Delivery(XMLObject, ImmobilisationDelivery): ########################################################################## # Applied Rule stuff - def updateAppliedRule(self, rule_id,force=0,**kw): + def updateAppliedRule(self, rule_reference, force=0, **kw): """ Create a new Applied Rule if none is related, or call expand on the existing one. The chosen applied rule will be the validated rule with reference == - rule_id, and the higher version number. + rule_reference, and the higher version number. - If no rule is found, simply pass rule_id to _createAppliedRule, as we - did previously. + If no rule is found, simply pass rule_reference to _createAppliedRule, + to keep compatibility vith the previous behaviour """ - if rule_id is None: + if rule_reference is None: return portal_rules = getToolByName(self, 'portal_rules') - res = portal_rules.searchFolder(reference=rule_id, + res = portal_rules.searchFolder(reference=rule_reference, validation_state="validated", sort_on='version', sort_order='descending') # XXX validated is Hardcoded ! if len(res) > 0: rule_id = res[0].getId() + else: + rule_id = rule_reference - if (self.getSimulationState() not in \ - self.getPortalDraftOrderStateList()): + if (self.getSimulationState() not in + self.getPortalDraftOrderStateList()): # Nothing to do if we are already simulated - self._createAppliedRule(rule_id,force=force,**kw) - - + self._createAppliedRule(rule_id, force=force, **kw) - def _createAppliedRule(self, rule_id,force=0,activate_kw=None,**kw): + def _createAppliedRule(self, rule_id, force=0, activate_kw=None, **kw): """ Create a new Applied Rule is none is related, or call expand on the existing one. @@ -695,8 +695,8 @@ class Delivery(XMLObject, ImmobilisationDelivery): return # Otherwise, expand # Look up if existing applied rule - my_applied_rule_list = self.getCausalityRelatedValueList(\ - portal_type='Applied Rule') + my_applied_rule_list = self.getCausalityRelatedValueList( + portal_type='Applied Rule') my_applied_rule = None if len(my_applied_rule_list) == 0: if self.isSimulated(): @@ -708,32 +708,31 @@ class Delivery(XMLObject, ImmobilisationDelivery): portal_rules = getToolByName(self, 'portal_rules') portal_simulation = getToolByName(self, 'portal_simulation') my_applied_rule = portal_rules[rule_id].\ - constructNewAppliedRule(portal_simulation) + constructNewAppliedRule(portal_simulation) # Set causality my_applied_rule.setCausalityValue(self) # We must make sure this rule is indexed # now in order not to create another one later - my_applied_rule.reindexObject(activate_kw=activate_kw,**kw) + my_applied_rule.reindexObject(activate_kw=activate_kw, **kw) elif len(my_applied_rule_list) == 1: # Re expand the rule if possible my_applied_rule = my_applied_rule_list[0] else: raise "SimulationError", 'Delivery %s has more than one applied'\ - ' rule.' % self.getRelativeUrl() + ' rule.' % self.getRelativeUrl() my_applied_rule_id = None expand_activate_kw = {} if my_applied_rule is not None: my_applied_rule_id = my_applied_rule.getId() - expand_activate_kw['after_path_and_method_id'] = \ - (my_applied_rule.getPath(),\ - ['immediateReindexObject', 'recursiveImmediateReindexObject']) + expand_activate_kw['after_path_and_method_id'] = ( + my_applied_rule.getPath(), + ['immediateReindexObject', 'recursiveImmediateReindexObject']) # We are now certain we have a single applied rule # It is time to expand it - self.activate( activate_kw=activate_kw, - **expand_activate_kw - ).expand(applied_rule_id=my_applied_rule_id,force=force, - activate_kw=activate_kw,**kw) + self.activate(activate_kw=activate_kw, **expand_activate_kw).expand( + applied_rule_id=my_applied_rule_id, force=force, + activate_kw=activate_kw, **kw) security.declareProtected(Permissions.ModifyPortalContent, 'expand') def expand(self, applied_rule_id=None, force=0, activate_kw=None,**kw):