From b479e83d8c07bceb8a3e15b022c51b71b358cb2b Mon Sep 17 00:00:00 2001 From: sinergia Date: Sun, 13 Aug 2023 18:39:49 -0500 Subject: [PATCH] =?UTF-8?q?feat:=20Se=20a=C3=B1ade=20estados=20al=20prospe?= =?UTF-8?q?cto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prospect.py | 15 ++++ prospect.xml | 69 ++++++++++++++++++- .../scenario_sale_opportunity_management.rst | 16 +++-- 3 files changed, 95 insertions(+), 5 deletions(-) diff --git a/prospect.py b/prospect.py index 3a957ee..a0c0e3c 100644 --- a/prospect.py +++ b/prospect.py @@ -20,11 +20,26 @@ class Prospect(ModelSQL, ModelView): domain=[If(Eval('department'), ('parent', '=', Eval('department')))]) + assigned_operator = fields.Many2One('res.user', "Assigned operator") + + state = fields.Selection([ + ('unassigned', 'Unsassigned'), + ('assigned', 'Assigned')], "State", readonly=True) + + @classmethod + def default_state(cls): + return 'unassigned' + @fields.depends('city', 'department') def on_change_city(self): if self.city: self.department = self.city.parent + @fields.depends('assigned_operator', 'state') + def on_change_assigned_operator(self): + if self.assigned_operator: + self.state = 'assigned' + class ContactMethod(ModelSQL, ModelView): 'Mecanismo de contacto' diff --git a/prospect.xml b/prospect.xml index 574c4c4..079735f 100644 --- a/prospect.xml +++ b/prospect.xml @@ -36,6 +36,73 @@ this repository contains the full copyright notices and license terms. --> id="menu_prospects_tree" action="act_prospect_tree"/> + + Unassigned + sale.prospect + + + + + sale.prospect + tree + prospect_tree + + + sale.prospect + form + prospect_form + + + + + + + + + + + + + + + + + Assigned + sale.prospect + + + + + sale.prospect + tree + prospect_tree + + + sale.prospect + form + prospect_form + + + + + + + + + + + + + + Contact method @@ -64,4 +131,4 @@ this repository contains the full copyright notices and license terms. --> - \ No newline at end of file + diff --git a/tests/scenario_sale_opportunity_management.rst b/tests/scenario_sale_opportunity_management.rst index e5c9fca..75de79f 100644 --- a/tests/scenario_sale_opportunity_management.rst +++ b/tests/scenario_sale_opportunity_management.rst @@ -74,11 +74,19 @@ Verificar estado final de creación de prospecto:: 'CO-05001' >>> prospect.department.code 'CO-05' + >>> prospect.state + 'unassigned' +Asignar operario a un prospecto:: + >>> User = Model.get('res.user') + >>> user, = User.find([('name', '=', 'Administrator')]) + >>> prospect.assigned_operator = user - - - + >>> prospect.assigned_operator.name + 'Administrator' + >>> prospect.state + 'assigned' + ------------------------------------ Asignación de prospectos a operarios ------------------------------------ @@ -242,4 +250,4 @@ Reportes * Reporte de prospectos potenciales * llamadas con un nivel de interés alto - * Seguimiento de prospecto al que pertenecen las llamadas \ No newline at end of file + * Seguimiento de prospecto al que pertenecen las llamadas