From 8dc10a78653e1286b172aef2adff7aac9f6bd30a Mon Sep 17 00:00:00 2001 From: camilogs Date: Sun, 30 Jul 2023 01:44:46 +0000 Subject: [PATCH] chore: rename model --- __init__.py | 5 ++- call.py | 2 +- doc/es/calls.rst | 3 +- prospect.py | 24 ++++++++++- prospect_trace.py | 10 ++--- .../scenario_sale_opportunity_management.rst | 43 ++++++++++--------- view/call_form.xml | 4 +- view/call_tree.xml | 2 +- 8 files changed, 58 insertions(+), 35 deletions(-) diff --git a/__init__.py b/__init__.py index f3fc54d..79203eb 100644 --- a/__init__.py +++ b/__init__.py @@ -1,6 +1,6 @@ from trytond.pool import Pool from . import prospect -from . import prospect_tracker +from . import prospect_trace from . import call __all__ = ['register'] @@ -10,7 +10,8 @@ def register(): Pool.register( call.Call, prospect.Prospect, - prospect_tracker.ProspectTracker, + prospect.ContactMethod, + prospect_trace.ProspectTrace, module='sale_opportunity_management', type_='model') Pool.register( module='sale_opportunity_management', type_='wizard') diff --git a/call.py b/call.py index ea1dcb9..57e2d0a 100644 --- a/call.py +++ b/call.py @@ -9,7 +9,7 @@ class Call(ModelSQL, ModelView): date = fields.Date('Date') description = fields.Char('Description') - prospect_tracker = fields.Many2One('sale.prospect_tracker', 'Prospect trace') + prospect_trace = fields.Many2One('sale.prospect_trace', 'Prospect track') @classmethod def default_date(cls): diff --git a/doc/es/calls.rst b/doc/es/calls.rst index e8901e7..0ff7fa2 100644 --- a/doc/es/calls.rst +++ b/doc/es/calls.rst @@ -57,8 +57,7 @@ Seguimiento de prospecto 2 * 1 - total desinterés * 2 - Interés intermedio, brindar mas información * 3 - Interés alto, generar venta - - * Estado (realizada - pendiente) + * Seguimiento de prospecto al que pertence -------- diff --git a/prospect.py b/prospect.py index d6c7523..820d8cc 100644 --- a/prospect.py +++ b/prospect.py @@ -4,8 +4,28 @@ from trytond.model import ModelSQL, ModelView, fields class Prospect(ModelSQL, ModelView): 'Prospecto' - __name__ = 'sale.prospect' name = fields.Char('Name') - tel = fields.Integer('Tel') \ No newline at end of file + city = fields.Char('City') + + # Un prospecto (clase actual) se vincula a Muchos mecanismos de contacto (propiedad actual) + contact_methods = fields.One2Many('prospect.contact_method', 'prospect', 'Contact methods') + + +class ContactMethod(ModelSQL, ModelView): + 'Mecanismo de contacto' + __name__ = 'prospect.contact_method' + + _type = [ + ('phone', 'Phone'), + ('mobile', 'Mobile'), + ('email', 'Email') + ] + contact_type = fields.Selection(_type, 'Contact type') + + value = fields.Char('Value') + + # Muchos mecanismos de contacto (clase actual) se vinculan a un prospecto (propiedad actual) + prospect = fields.Many2One('sale.prospect', 'Prospect') + diff --git a/prospect_trace.py b/prospect_trace.py index 95d5a68..4506e41 100644 --- a/prospect_trace.py +++ b/prospect_trace.py @@ -2,21 +2,21 @@ # this repository contains the full copyright notices and license terms. from trytond.model import ModelSQL, ModelView, fields -class ProspectTracker(ModelSQL, ModelView): +class ProspectTrace(ModelSQL, ModelView): 'Seguimiento de un prospecto' - __name__ = 'sale.prospect_tracker' + __name__ = 'sale.prospect_trace' prospect = fields.Many2One('sale.prospect', 'Prospect') prospect_name = fields.Char('Name') - prospect_tel = fields.Integer('Tel') + prospect_contact = fields.Char('Contact') prospect_city = fields.Char('City') - calls = fields.One2Many('sale.call', 'prospect_tracker', "Calls") + calls = fields.One2Many('sale.call', 'prospect_trace', "Calls") @fields.depends('prospect') def on_change_prospect(self): if self.prospect: self.prospect_name = self.prospect.name - self.prospect_tel = self.prospect.tel + # self.prospect_contact = self.prospect.contact_methods.index('contact_type 'mobile') self.prospect_city = self.prospect.city diff --git a/tests/scenario_sale_opportunity_management.rst b/tests/scenario_sale_opportunity_management.rst index 2759591..32f0888 100644 --- a/tests/scenario_sale_opportunity_management.rst +++ b/tests/scenario_sale_opportunity_management.rst @@ -13,38 +13,43 @@ Activate modules:: >>> config = activate_modules('sale_opportunity_management') --------------------------------------------------------------------------------------------- -Como administrador quiero poder registrar un prospecto para lugo poder hacerle un seguimiento +Como administrador quiero registrar un prospecto para lugo poder hacerle un seguimiento --------------------------------------------------------------------------------------------- +Crear mecanismos de contacto:: + + Crear prospecto:: >>> Prospect = Model.get('sale.prospect') >>> prospect = Prospect() >>> prospect.name = 'guchito S.A.S' - >>> prospect.tel = 3123423422 >>> prospect.city = 'Bogotá' + >>> phone = prospect.contact_methods.new() + >>> phone.contact_type = 'mobile' + >>> phone.value = '3132923938' >>> prospect.save() + ----------------------------------------------------------------------------------------- Como operador quiero poder crear un seguimiento de prospecto para luego hacer una llamada ----------------------------------------------------------------------------------------- Crear seguimiento de prospecto:: - >>> ProspectTracker = Model.get('sale.prospect_tracker') - >>> prospect_tracker = ProspectTracker() + >>> ProspectTrace = Model.get('sale.prospect_trace') + >>> prospect_trace = ProspectTrace() - >>> prospect_tracker.prospect = prospect - >>> prospect_tracker.save() + >>> prospect_trace.prospect = prospect + >>> prospect_trace.save() - >>> prospect_tracker.prospect_name + >>> prospect_trace.prospect_name 'guchito S.A.S' - >>> prospect_tracker.prospect_tel - 3123423422 - >>> prospect_tracker.prospect_city + >>> prospect_trace.prospect_city + 'Bogotá' ---------------------------------------------------------------------------- -Como operador quiero poder registrar una llamada para luego generar reportes +Como operador quiero registrar una llamada para luego generar reportes ---------------------------------------------------------------------------- Crear llamada a un seguimiento de prospecto:: @@ -52,13 +57,11 @@ Crear llamada a un seguimiento de prospecto:: >>> call = Call() >>> call.description = 'Descripción u observaciones de la llamada' - >>> call.prospect_tracker = prospect_tracker + >>> call.prospect_trace = prospect_trace >>> call.save() - >>> call.prospect_tracker.prospect_name + >>> call.prospect_trace.prospect_name 'guchito S.A.S' - >>> call.prospect_tracker.prospect_tel - 3123423422 >>> call.date == date.today() True @@ -67,14 +70,14 @@ Crear otra llamada al mismo seguimiento de prospecto:: >>> call = Call() >>> call.description = 'Segunda llamada al mismo seguimiento' - >>> call.prospect_tracker = prospect_tracker + >>> call.prospect_trace = prospect_trace >>> call.save() - >>> call.prospect_tracker.prospect_name + >>> call.prospect_trace.prospect_name 'guchito S.A.S' - >>> call.prospect_tracker.prospect_tel - 3123423422 + >>> call.prospect_trace.prospect_city + 'Bogotá' >>> call.date == date.today() True - >>> len(prospect_tracker.calls) == 2 + >>> len(prospect_trace.calls) == 2 True \ No newline at end of file diff --git a/view/call_form.xml b/view/call_form.xml index e458297..76a00ab 100644 --- a/view/call_form.xml +++ b/view/call_form.xml @@ -5,8 +5,8 @@ this repository contains the full copyright notices and license terms. -->