feat: Al crear una nueva llamada de a un seguimiento, call_type se llena automáticamente

This commit is contained in:
Camilo Gonzalez 2023-08-07 21:16:49 -05:00
parent c48b72fc6a
commit 54848199a7
3 changed files with 19 additions and 7 deletions

View File

@ -17,10 +17,11 @@ class Call(ModelSQL, ModelView):
prospect_trace = fields.Many2One('sale.prospect_trace', 'Prospect trace')
interest = fields.Selection(Interest.get_interest_levels(), 'Interest')
interest = fields.Selection(
Interest.get_interest_levels(), 'Interest', required=True)
call_type = fields.Selection(CallTypes.get_call_types(), 'Call type')
call_result = fields.Selection(
CallResults.get_call_results(), 'Call result', required=False)
CallResults.get_call_results(), 'Call result')
@classmethod
def default_date(cls):

View File

@ -1,6 +1,8 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.model import ModelSQL, ModelView, fields
from .selections.call_types import CallTypes
from .selections.interest import Interest
@ -23,7 +25,13 @@ class ProspectTrace(ModelSQL, ModelView):
@fields.depends('calls', 'current_interest')
def on_change_calls(self):
if self.calls:
self.current_interest = self.calls[-1].interest
last_call = self.calls[-1]
self.current_interest = last_call.interest
if len(self.calls) > 1:
last_call.call_type = CallTypes.get_call_types()[1][0]
else:
last_call.call_type = CallTypes.get_call_types()[0][0]
def get_rec_name(self, name):
if self.prospect:

View File

@ -148,20 +148,23 @@ Crear seguimiento de prospecto::
'31223425234'
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')
>>> call = prospect_trace.calls.new(description='First call', interest='0')
>>> call = prospect_trace.calls.new(description='Second call', interest='1')
>>> call = prospect_trace.calls.new(description='Third call', interest='3')
>>> prospect_trace.save()
Verificar estado final del seguimiento del prospecto y sus llamadas
>>> prospect_trace.calls[0].call_result
'missed_call'
>>> prospect_trace.calls[0].call_type
'first_call'
>>> prospect_trace.calls[0].date == date.today()
True
>>> prospect_trace.calls[1].call_result
'answered_call'
>>> prospect_trace.calls[1].call_type
'followup_call'
>>> prospect_trace.calls
[proteus.Model.get('sale.call')(1), proteus.Model.get('sale.call')(2), proteus.Model.get('sale.call')(3)]