diff --git a/prospect.py b/prospect.py index ed69b18..d394a1a 100644 --- a/prospect.py +++ b/prospect.py @@ -203,9 +203,19 @@ class ReassignProspectByOperator(Wizard): reassign_by_operator = StateTransition() def transition_reassign_by_operator(self): + pool = Pool() + ProspectTrace = pool.get('sale.prospect_trace') + for prospect in self.start.prospects: prospect.assigned_operator = self.start.new_operator + + if prospect.prospect_trace: + prospect_trace, = ProspectTrace.search( + [('prospect', '=', prospect)]) + prospect_trace.prospect_assigned_operator =\ + self.start.new_operator + prospect_trace.save() + prospect.save() - raise Exception(self.start.prospects[1].assigned_operator.name) return 'end' diff --git a/tests/scenario_sale_opportunity_management.rst b/tests/scenario_sale_opportunity_management.rst index 96d49d3..1ba28e2 100644 --- a/tests/scenario_sale_opportunity_management.rst +++ b/tests/scenario_sale_opportunity_management.rst @@ -270,13 +270,17 @@ Reasignar prospectos por operador:: >>> prospect1.assigned_operator.name 'Operatus' + + >>> prospect2.reload() >>> prospect2.assigned_operator.name 'Operatus' + + >>> prospect_trace.reload() >>> prospect_trace.prospect_assigned_operator.name 'Operatus' .. Las llamadas deben conservar el operador que las hizo - >>> prospect_trace.calls[0].assigned_operator + >>> prospect_trace.calls[0].call_assigned_operator.name 'Administrator' --------