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'),
|
||||
('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
|
||||
def default_state(cls):
|
||||
return 'unassigned'
|
||||
|
@ -142,5 +142,11 @@ this repository contains the full copyright notices and license terms. -->
|
||||
sequence="40"
|
||||
id="menu_prospects_assigned_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>
|
||||
</tryton>
|
||||
|
@ -15,7 +15,8 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView):
|
||||
|
||||
_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(
|
||||
[('brigade', 'Brigade'),
|
||||
('optics', 'Optics'),
|
||||
|
@ -179,8 +179,9 @@ Seguimiento de prospecto 2
|
||||
|
||||
Crear seguimiento de prospecto::
|
||||
>>> ProspectTrace = Model.get('sale.prospect_trace')
|
||||
>>> prospect_trace = ProspectTrace()
|
||||
>>> prospect1.click('start_trace')
|
||||
|
||||
>>> prospect_trace = ProspectTrace()
|
||||
>>> prospect_trace.prospect = prospect1
|
||||
>>> 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="city" expand="1"/>
|
||||
<field name="assigned_operator" expand="1"/>
|
||||
<field name="contact_methods" expand="1"/>
|
||||
<button name="start_trace"/>
|
||||
</tree>
|
Loading…
Reference in New Issue
Block a user