chore: rename model

This commit is contained in:
Camilo Gonzalez 2023-07-30 01:44:46 +00:00
parent a40164d386
commit 8dc10a7865
8 changed files with 58 additions and 35 deletions

View File

@ -1,6 +1,6 @@
from trytond.pool import Pool from trytond.pool import Pool
from . import prospect from . import prospect
from . import prospect_tracker from . import prospect_trace
from . import call from . import call
__all__ = ['register'] __all__ = ['register']
@ -10,7 +10,8 @@ def register():
Pool.register( Pool.register(
call.Call, call.Call,
prospect.Prospect, prospect.Prospect,
prospect_tracker.ProspectTracker, prospect.ContactMethod,
prospect_trace.ProspectTrace,
module='sale_opportunity_management', type_='model') module='sale_opportunity_management', type_='model')
Pool.register( Pool.register(
module='sale_opportunity_management', type_='wizard') module='sale_opportunity_management', type_='wizard')

View File

@ -9,7 +9,7 @@ class Call(ModelSQL, ModelView):
date = fields.Date('Date') date = fields.Date('Date')
description = fields.Char('Description') description = fields.Char('Description')
prospect_tracker = fields.Many2One('sale.prospect_tracker', 'Prospect trace') prospect_trace = fields.Many2One('sale.prospect_trace', 'Prospect track')
@classmethod @classmethod
def default_date(cls): def default_date(cls):

View File

@ -57,8 +57,7 @@ Seguimiento de prospecto 2
* 1 - total desinterés * 1 - total desinterés
* 2 - Interés intermedio, brindar mas información * 2 - Interés intermedio, brindar mas información
* 3 - Interés alto, generar venta * 3 - Interés alto, generar venta
* Estado (realizada - pendiente)
* Seguimiento de prospecto al que pertence * Seguimiento de prospecto al que pertence
-------- --------

View File

@ -4,8 +4,28 @@ from trytond.model import ModelSQL, ModelView, fields
class Prospect(ModelSQL, ModelView): class Prospect(ModelSQL, ModelView):
'Prospecto' 'Prospecto'
__name__ = 'sale.prospect' __name__ = 'sale.prospect'
name = fields.Char('Name') name = fields.Char('Name')
tel = fields.Integer('Tel') 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')

View File

@ -2,21 +2,21 @@
# this repository contains the full copyright notices and license terms. # this repository contains the full copyright notices and license terms.
from trytond.model import ModelSQL, ModelView, fields from trytond.model import ModelSQL, ModelView, fields
class ProspectTracker(ModelSQL, ModelView): class ProspectTrace(ModelSQL, ModelView):
'Seguimiento de un prospecto' 'Seguimiento de un prospecto'
__name__ = 'sale.prospect_tracker' __name__ = 'sale.prospect_trace'
prospect = fields.Many2One('sale.prospect', 'Prospect') prospect = fields.Many2One('sale.prospect', 'Prospect')
prospect_name = fields.Char('Name') prospect_name = fields.Char('Name')
prospect_tel = fields.Integer('Tel') prospect_contact = fields.Char('Contact')
prospect_city = fields.Char('City') prospect_city = fields.Char('City')
calls = fields.One2Many('sale.call', 'prospect_tracker', "Calls") calls = fields.One2Many('sale.call', 'prospect_trace', "Calls")
@fields.depends('prospect') @fields.depends('prospect')
def on_change_prospect(self): def on_change_prospect(self):
if self.prospect: if self.prospect:
self.prospect_name = self.prospect.name 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 self.prospect_city = self.prospect.city

View File

@ -13,38 +13,43 @@ Activate modules::
>>> config = activate_modules('sale_opportunity_management') >>> 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:: Crear prospecto::
>>> Prospect = Model.get('sale.prospect') >>> Prospect = Model.get('sale.prospect')
>>> prospect = Prospect() >>> prospect = Prospect()
>>> prospect.name = 'guchito S.A.S' >>> prospect.name = 'guchito S.A.S'
>>> prospect.tel = 3123423422
>>> prospect.city = 'Bogotá' >>> prospect.city = 'Bogotá'
>>> phone = prospect.contact_methods.new()
>>> phone.contact_type = 'mobile'
>>> phone.value = '3132923938'
>>> prospect.save() >>> prospect.save()
----------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------
Como operador quiero poder crear un seguimiento de prospecto para luego hacer una llamada Como operador quiero poder crear un seguimiento de prospecto para luego hacer una llamada
----------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------
Crear seguimiento de prospecto:: Crear seguimiento de prospecto::
>>> ProspectTracker = Model.get('sale.prospect_tracker') >>> ProspectTrace = Model.get('sale.prospect_trace')
>>> prospect_tracker = ProspectTracker() >>> prospect_trace = ProspectTrace()
>>> prospect_tracker.prospect = prospect >>> prospect_trace.prospect = prospect
>>> prospect_tracker.save() >>> prospect_trace.save()
>>> prospect_tracker.prospect_name >>> prospect_trace.prospect_name
'guchito S.A.S' 'guchito S.A.S'
>>> prospect_tracker.prospect_tel >>> prospect_trace.prospect_city
3123423422 'Bogotá'
>>> prospect_tracker.prospect_city
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
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:: Crear llamada a un seguimiento de prospecto::
@ -52,13 +57,11 @@ Crear llamada a un seguimiento de prospecto::
>>> call = Call() >>> call = Call()
>>> call.description = 'Descripción u observaciones de la llamada' >>> call.description = 'Descripción u observaciones de la llamada'
>>> call.prospect_tracker = prospect_tracker >>> call.prospect_trace = prospect_trace
>>> call.save() >>> call.save()
>>> call.prospect_tracker.prospect_name >>> call.prospect_trace.prospect_name
'guchito S.A.S' 'guchito S.A.S'
>>> call.prospect_tracker.prospect_tel
3123423422
>>> call.date == date.today() >>> call.date == date.today()
True True
@ -67,14 +70,14 @@ Crear otra llamada al mismo seguimiento de prospecto::
>>> call = Call() >>> call = Call()
>>> call.description = 'Segunda llamada al mismo seguimiento' >>> call.description = 'Segunda llamada al mismo seguimiento'
>>> call.prospect_tracker = prospect_tracker >>> call.prospect_trace = prospect_trace
>>> call.save() >>> call.save()
>>> call.prospect_tracker.prospect_name >>> call.prospect_trace.prospect_name
'guchito S.A.S' 'guchito S.A.S'
>>> call.prospect_tracker.prospect_tel >>> call.prospect_trace.prospect_city
3123423422 'Bogotá'
>>> call.date == date.today() >>> call.date == date.today()
True True
>>> len(prospect_tracker.calls) == 2 >>> len(prospect_trace.calls) == 2
True True

View File

@ -5,8 +5,8 @@ this repository contains the full copyright notices and license terms. -->
<label name="date"/> <label name="date"/>
<field name="date"/> <field name="date"/>
<label name="prospect_tracker"/> <label name="prospect_trace"/>
<field name="prospect_tracker"/> <field name="prospect_trace"/>
<label name="description"/> <label name="description"/>
<field name="description"/> <field name="description"/>

View File

@ -4,5 +4,5 @@ this repository contains the full copyright notices and license terms. -->
<tree> <tree>
<field name="date"/> <field name="date"/>
<field name="description"/> <field name="description"/>
<field name="prospect_tracker"/> <field name="prospect_trace"/>
</tree> </tree>