feat: Se añade estados al prospecto
This commit is contained in:
parent
0be22b3298
commit
b479e83d8c
15
prospect.py
15
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'
|
||||
|
69
prospect.xml
69
prospect.xml
@ -36,6 +36,73 @@ this repository contains the full copyright notices and license terms. -->
|
||||
id="menu_prospects_tree"
|
||||
action="act_prospect_tree"/>
|
||||
|
||||
<record model="ir.action.act_window" id="act_prospect_unassigned_tree">
|
||||
<field name="name">Unassigned</field>
|
||||
<field name="res_model">sale.prospect</field>
|
||||
<field name="domain" eval="[('state', '=', 'unassigned')]" pyson="1"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="prospect_unassigned_view_tree">
|
||||
<field name="model">sale.prospect</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">prospect_tree</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="prospect_unassigned_view_form">
|
||||
<field name="model">sale.prospect</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">prospect_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.act_window.view" id="act_prospect_unassigned_tree_view1">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="prospect_unassigned_view_tree"/>
|
||||
<field name="act_window" ref="act_prospect_unassigned_tree"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_prospect_unassigned_form_view1">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="prospect_view_form"/>
|
||||
<field name="act_window" ref="act_prospect_unassigned_tree"/>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
parent="menu_prospects_tree"
|
||||
sequence="10"
|
||||
id="menu_prospects_unassigned_tree"
|
||||
action="act_prospect_unassigned_tree"/>
|
||||
|
||||
<record model="ir.action.act_window" id="act_prospect_assigned_tree">
|
||||
<field name="name">Assigned</field>
|
||||
<field name="res_model">sale.prospect</field>
|
||||
<field name="domain" eval="[('state', '=', 'assigned')]" pyson="1"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="prospect_assigned_view_tree">
|
||||
<field name="model">sale.prospect</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">prospect_tree</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="prospect_assigned_view_form">
|
||||
<field name="model">sale.prospect</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">prospect_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.act_window.view" id="act_prospect_assigned_tree_view1">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="prospect_assigned_view_tree"/>
|
||||
<field name="act_window" ref="act_prospect_assigned_tree"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_prospect_assigned_form_view1">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="prospect_view_form"/>
|
||||
<field name="act_window" ref="act_prospect_assigned_tree"/>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
parent="menu_prospects_tree"
|
||||
sequence="10"
|
||||
id="menu_prospects_assigned_tree"
|
||||
action="act_prospect_assigned_tree"/>
|
||||
|
||||
<record model="ir.action.act_window" id="act_contact_method_tree">
|
||||
<field name="name">Contact method</field>
|
||||
@ -64,4 +131,4 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="act_window" ref="act_contact_method_tree"/>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
</tryton>
|
||||
|
@ -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
|
||||
* Seguimiento de prospecto al que pertenecen las llamadas
|
||||
|
Loading…
Reference in New Issue
Block a user