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'),
|
domain=[If(Eval('department'),
|
||||||
('parent', '=', 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')
|
@fields.depends('city', 'department')
|
||||||
def on_change_city(self):
|
def on_change_city(self):
|
||||||
if self.city:
|
if self.city:
|
||||||
self.department = self.city.parent
|
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):
|
class ContactMethod(ModelSQL, ModelView):
|
||||||
'Mecanismo de contacto'
|
'Mecanismo de contacto'
|
||||||
|
67
prospect.xml
67
prospect.xml
@ -36,6 +36,73 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
id="menu_prospects_tree"
|
id="menu_prospects_tree"
|
||||||
action="act_prospect_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">
|
<record model="ir.action.act_window" id="act_contact_method_tree">
|
||||||
<field name="name">Contact method</field>
|
<field name="name">Contact method</field>
|
||||||
|
@ -74,10 +74,18 @@ Verificar estado final de creación de prospecto::
|
|||||||
'CO-05001'
|
'CO-05001'
|
||||||
>>> prospect.department.code
|
>>> prospect.department.code
|
||||||
'CO-05'
|
'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
|
Asignación de prospectos a operarios
|
||||||
|
Loading…
Reference in New Issue
Block a user