From f6e6ac44a1b98cbcdb8bfc1a192d21f1200dc19c Mon Sep 17 00:00:00 2001 From: camilogs Date: Mon, 7 Aug 2023 19:11:16 -0500 Subject: [PATCH] fix: Se crean llamadas desde el punto de vista desde el seguimiento de prospecto --- prospect_trace.py | 11 ++-- selections/interest.py | 9 ++-- .../scenario_sale_opportunity_management.rst | 53 ++++++------------- 3 files changed, 29 insertions(+), 44 deletions(-) diff --git a/prospect_trace.py b/prospect_trace.py index 4769fbc..d351206 100644 --- a/prospect_trace.py +++ b/prospect_trace.py @@ -17,14 +17,17 @@ class ProspectTrace(ModelSQL, ModelView): pending_calls = fields.One2Many( 'sale.pending_call', 'prospect_trace', 'Pending calls') - _interest_field_type = fields.Selection( + current_interest = fields.Selection( Interest.get_interest_levels(), 'Current interest') - current_interest = fields.Function( - _interest_field_type, '_get_current_interest') + + @fields.depends('calls', 'current_interest') + def on_change_calls(self): + if self.calls: + self.current_interest = self.calls[-1].interest def get_rec_name(self, name): if self.prospect: - return '[' + self.id + '] ' + self.prospect.name + return '[' + str(self.id) + '] ' + self.prospect.name @fields.depends('prospect') def on_change_prospect(self): diff --git a/selections/interest.py b/selections/interest.py index 1e6fcd5..280f025 100644 --- a/selections/interest.py +++ b/selections/interest.py @@ -2,10 +2,11 @@ class Interest(): @staticmethod def get_interest_levels(): interest_levels = [ - ('0', '0 - No contestó'), - ('1', '1 - total desinterés'), - ('2', '2 - Interés intermedio'), - ('3', '3 - Interés alto, generar venta') + ('', None), + ('0', '0 - Not answered'), + ('1', '1 - Complete disinterest'), + ('2', '2 - Middle interest'), + ('3', '3 - High interest') ] return interest_levels diff --git a/tests/scenario_sale_opportunity_management.rst b/tests/scenario_sale_opportunity_management.rst index 477b79a..c6561f5 100644 --- a/tests/scenario_sale_opportunity_management.rst +++ b/tests/scenario_sale_opportunity_management.rst @@ -147,41 +147,28 @@ Crear seguimiento de prospecto:: >>> prospect_trace.prospect_contact.value '31223425234' -Crear llamada a un seguimiento de prospecto:: - >>> Call = Model.get('sale.call') - >>> call = Call() +Crear llamadas a un seguimiento de prospecto desde el seguimiento de prospecto:: + >>> call = prospect_trace.calls.new(description='First call', interest='0', call_type='first_call') + >>> call = prospect_trace.calls.new(description='Second call', interest='1', call_type='followup_call') + >>> call = prospect_trace.calls.new(description='Third call', interest='3', call_type='followup_call') + >>> prospect_trace.save() + - >>> call.description = 'Descripción u observaciones de la llamada' - >>> call.prospect_trace = prospect_trace - >>> call.interest = '0' - >>> call.call_type = 'first_call' - >>> call.save() - - >>> call.prospect_trace.prospect.name - 'guchito S.A.S' - >>> call.date == date.today() - True - >>> call.call_result +Verificar estado final del seguimiento del prospecto y sus llamadas + >>> prospect_trace.calls[0].call_result 'missed_call' - -Crear otra llamada al mismo seguimiento de prospecto:: - >>> call2 = Call() - - >>> call2.description = 'Segunda llamada al mismo seguimiento' - >>> call2.prospect_trace = prospect_trace - >>> call2.interest = '2' - >>> call2.call_type = 'followup_call' - >>> call2.save() - - >>> call2.prospect_trace.prospect.name - 'guchito S.A.S' - >>> call2.date == date.today() + >>> prospect_trace.calls[0].date == date.today() True - >>> call2.call_result + + >>> prospect_trace.calls[1].call_result 'answered_call' + + >>> prospect_trace.calls + [proteus.Model.get('sale.call')(1), proteus.Model.get('sale.call')(2), proteus.Model.get('sale.call')(3)] + >>> prospect_trace.current_interest + '3' - -Programar una próxima llamada al seguimiento de prospecto:: +Programar una próxima llamada pendiente al seguimiento de prospecto:: >>> PendingCall = Model.get('sale.pending_call') >>> pending_call = PendingCall() @@ -191,14 +178,8 @@ Programar una próxima llamada al seguimiento de prospecto:: >>> pending_call.prospect_trace.prospect.name 'guchito S.A.S' - -Verificar estado final del seguimiento de prospecto:: - >>> prospect_trace.calls - [proteus.Model.get('sale.call')(1), proteus.Model.get('sale.call')(2)] >>> prospect_trace.pending_calls [proteus.Model.get('sale.pending_call')(1)] - >>> prospect_trace.current_interest - '2' -------- Reportes