diff --git a/call.py b/call.py index 59234f3..074c7d5 100644 --- a/call.py +++ b/call.py @@ -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): diff --git a/prospect_trace.py b/prospect_trace.py index d351206..3e14c27 100644 --- a/prospect_trace.py +++ b/prospect_trace.py @@ -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: diff --git a/tests/scenario_sale_opportunity_management.rst b/tests/scenario_sale_opportunity_management.rst index c6561f5..c051212 100644 --- a/tests/scenario_sale_opportunity_management.rst +++ b/tests/scenario_sale_opportunity_management.rst @@ -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)]