feat: Se crea botón para iniciar seguimiento de prospecto
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
082d070643
commit
27dcca74bc
32
prospect.py
32
prospect.py
@ -36,6 +36,38 @@ class Prospect(ModelSQL, ModelView):
|
|||||||
('unassigned', 'Unsassigned'),
|
('unassigned', 'Unsassigned'),
|
||||||
('assigned', 'Assigned')], "State", readonly=True)
|
('assigned', 'Assigned')], "State", readonly=True)
|
||||||
|
|
||||||
|
prospect_trace = fields.Many2One('sale.prospect_trace', 'Prospect trace')
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def __setup__(cls):
|
||||||
|
super(Prospect, cls).__setup__()
|
||||||
|
cls._buttons.update({
|
||||||
|
'start_trace': {
|
||||||
|
'invisible': Eval('state') == 'unassigned'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
@ModelView.button
|
||||||
|
def start_trace(cls, prospects):
|
||||||
|
pool = Pool()
|
||||||
|
ProspectTrace = pool.get('sale.prospect_trace')
|
||||||
|
for prospect in prospects:
|
||||||
|
if prospect.prospect_trace:
|
||||||
|
return
|
||||||
|
|
||||||
|
prospect_trace = ProspectTrace(
|
||||||
|
prospect=prospect,
|
||||||
|
prospect_city=prospect.city,
|
||||||
|
prospect_business_unit=prospect.business_unit,
|
||||||
|
prospect_assigned_operator=prospect.assigned_operator,
|
||||||
|
prospect_contacts=prospect.contact_methods
|
||||||
|
)
|
||||||
|
prospect_trace.save()
|
||||||
|
|
||||||
|
prospect.prospect_trace = prospect_trace
|
||||||
|
prospect.save()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def default_state(cls):
|
def default_state(cls):
|
||||||
return 'unassigned'
|
return 'unassigned'
|
||||||
|
@ -142,5 +142,11 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
sequence="40"
|
sequence="40"
|
||||||
id="menu_prospects_assigned_wizard"
|
id="menu_prospects_assigned_wizard"
|
||||||
action="assign_operator_wizard"/>
|
action="assign_operator_wizard"/>
|
||||||
|
|
||||||
|
<record model="ir.model.button" id="start_trace_button">
|
||||||
|
<field name="name">start_trace</field>
|
||||||
|
<field name="string">Start trace</field>
|
||||||
|
<field name="model" search="[('model', '=', 'sale.prospect')]"/>
|
||||||
|
</record>
|
||||||
</data>
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
@ -15,7 +15,8 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView):
|
|||||||
|
|
||||||
_states = {'readonly': True}
|
_states = {'readonly': True}
|
||||||
|
|
||||||
prospect = fields.Many2One('sale.prospect', 'Prospect', required=True)
|
prospect = fields.Many2One(
|
||||||
|
'sale.prospect', 'Prospect', required=True, states=_states)
|
||||||
prospect_business_unit = fields.Selection(
|
prospect_business_unit = fields.Selection(
|
||||||
[('brigade', 'Brigade'),
|
[('brigade', 'Brigade'),
|
||||||
('optics', 'Optics'),
|
('optics', 'Optics'),
|
||||||
|
@ -179,8 +179,9 @@ Seguimiento de prospecto 2
|
|||||||
|
|
||||||
Crear seguimiento de prospecto::
|
Crear seguimiento de prospecto::
|
||||||
>>> ProspectTrace = Model.get('sale.prospect_trace')
|
>>> ProspectTrace = Model.get('sale.prospect_trace')
|
||||||
>>> prospect_trace = ProspectTrace()
|
>>> prospect1.click('start_trace')
|
||||||
|
|
||||||
|
>>> prospect_trace = ProspectTrace()
|
||||||
>>> prospect_trace.prospect = prospect1
|
>>> prospect_trace.prospect = prospect1
|
||||||
>>> prospect_trace.save()
|
>>> prospect_trace.save()
|
||||||
|
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
|
||||||
this repository contains the full copyright notices and license terms. -->
|
|
||||||
<form>
|
|
||||||
<label name="date"/>
|
|
||||||
<field name="date" widget='date'/>
|
|
||||||
<field name="date" widget='time'/>
|
|
||||||
</form>
|
|
@ -1,7 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
|
||||||
this repository contains the full copyright notices and license terms. -->
|
|
||||||
<tree>
|
|
||||||
<field name="date" widget='date' expand="1"/>
|
|
||||||
<field name="date" widget='time' expand="1"/>
|
|
||||||
</tree>
|
|
@ -7,5 +7,5 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<field name="department" expand="1"/>
|
<field name="department" expand="1"/>
|
||||||
<field name="city" expand="1"/>
|
<field name="city" expand="1"/>
|
||||||
<field name="assigned_operator" expand="1"/>
|
<field name="assigned_operator" expand="1"/>
|
||||||
<field name="contact_methods" expand="1"/>
|
<button name="start_trace"/>
|
||||||
</tree>
|
</tree>
|
Loading…
Reference in New Issue
Block a user