From 1d38d797c5ad117b94370e678f9755b3c323d1b5 Mon Sep 17 00:00:00 2001 From: camilogs Date: Sun, 13 Aug 2023 20:31:59 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20Un=20seguimiento=20a=20prospecto=20solo?= =?UTF-8?q?=20debe=20tener=20m=C3=A1ximo=20una=20llamada=20agendada,=20clo?= =?UTF-8?q?sed=20#28?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pending_call.py | 2 +- prospect_trace.py | 19 ++++++++++--------- .../scenario_sale_opportunity_management.rst | 15 ++++++++------- view/pending_call_form.xml | 4 ++-- view/pending_call_tree.xml | 2 +- view/prospect_trace_form.xml | 2 +- view/prospect_trace_tree.xml | 2 +- 7 files changed, 24 insertions(+), 22 deletions(-) diff --git a/pending_call.py b/pending_call.py index 655f9ed..74ce429 100644 --- a/pending_call.py +++ b/pending_call.py @@ -8,4 +8,4 @@ class PendingCall(ModelSQL, ModelView): __name__ = "sale.pending_call" date = fields.Date('Date', required=True) - prospect_trace = fields.Many2One('sale.prospect_trace', 'Prospect trace') + # prospect_trace = fields.Many2One('sale.prospect_trace', 'Prospect trace') diff --git a/prospect_trace.py b/prospect_trace.py index e03e528..f79fc71 100644 --- a/prospect_trace.py +++ b/prospect_trace.py @@ -18,8 +18,9 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView): states={'readonly': True}) calls = fields.One2Many('sale.call', 'prospect_trace', 'Calls') - pending_calls = fields.One2Many( - 'sale.pending_call', 'prospect_trace', 'Pending calls') + # pending_calls = fields.One2Many( + # 'sale.pending_call', 'prospect_trace', 'Pending calls') + pending_call = fields.Many2One('sale.pending_call', 'Pending call') current_interest = fields.Selection( Interest.get_interest_levels(), 'Current interest') @@ -35,7 +36,8 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView): def default_state(cls): return 'open' - @fields.depends('calls', 'pending_calls', 'current_interest', 'state') + # 'pending_calls' + @fields.depends('calls', 'pending_call', 'current_interest', 'state') def on_change_calls(self): if not self.calls: return @@ -51,14 +53,13 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView): first_call_type = CallTypes.get_call_types()[0][0] last_call.call_type = first_call_type - there_is_a_pending_call = len(self.pending_calls) >= 1 - if there_is_a_pending_call: - self.pending_calls = None + if self.pending_call: + self.pending_call = None self.state = 'open' - @fields.depends('pending_calls', 'state') - def on_change_pending_calls(self): - if len(self.pending_calls) >= 1: + @fields.depends('pending_call', 'state') + def on_change_pending_call(self): + if self.pending_call: self.state = 'with_pending_calls' @fields.depends('prospect', 'prospect_city', 'prospect_contact') diff --git a/tests/scenario_sale_opportunity_management.rst b/tests/scenario_sale_opportunity_management.rst index f61ab94..2b87ba3 100644 --- a/tests/scenario_sale_opportunity_management.rst +++ b/tests/scenario_sale_opportunity_management.rst @@ -200,20 +200,21 @@ Verificar estado final del seguimiento del prospecto y sus llamadas 'open' Programar una próxima llamada pendiente al seguimiento de prospecto:: - >>> pending_call4 = prospect_trace.pending_calls.new(date = date.today() + timedelta(days=7)) - >>> prospect_trace.save() - - >>> prospect_trace.pending_calls - [proteus.Model.get('sale.pending_call')(1)] + >>> PendingCall = Model.get('sale.pending_call') + >>> pending_call = PendingCall() + >>> pending_call.date = date(year=2023, month=8, day=8) + >>> prospect_trace.pending_call = pending_call + >>> prospect_trace.pending_call.date + datetime.date(2023, 8, 8) >>> prospect_trace.state 'with_pending_calls' Crear una llamada agendada previamente: >>> call4 = prospect_trace.calls.new(description='fourth call', interest='3') - >>> prospect_trace.pending_calls - [] + >>> prospect_trace.pending_call + >>> prospect_trace.state 'open' diff --git a/view/pending_call_form.xml b/view/pending_call_form.xml index 707df4f..02f1678 100644 --- a/view/pending_call_form.xml +++ b/view/pending_call_form.xml @@ -5,6 +5,6 @@ this repository contains the full copyright notices and license terms. -->