feat: Se inicia seguimiento automáticamente luego de asignar operario, closed #61
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
543a52303c
commit
8ec3e4b983
45
prospect.py
45
prospect.py
@ -38,36 +38,6 @@ class Prospect(ModelSQL, ModelView):
|
||||
|
||||
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'
|
||||
@ -161,11 +131,26 @@ class AssignOperator(Wizard):
|
||||
assign = StateTransition()
|
||||
|
||||
def transition_assign(self):
|
||||
pool = Pool()
|
||||
ProspectTrace = pool.get('sale.prospect_trace')
|
||||
|
||||
for prospect in self.start.prospects:
|
||||
prospect.assigned_operator = self.start.operator
|
||||
prospect.state = 'assigned'
|
||||
prospect.save()
|
||||
|
||||
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()
|
||||
|
||||
return 'end'
|
||||
|
||||
|
||||
|
@ -177,9 +177,8 @@ Seguimiento de prospecto 2
|
||||
* Seguimiento de prospecto al que pertence
|
||||
|
||||
|
||||
Crear seguimiento de prospecto::
|
||||
Verificar creación de seguimiento de prospecto::
|
||||
>>> ProspectTrace = Model.get('sale.prospect_trace')
|
||||
>>> prospect1.click('start_trace')
|
||||
>>> prospect_trace, = ProspectTrace.find([('prospect', '=', prospect1)])
|
||||
|
||||
>>> prospect_trace.prospect.name
|
||||
@ -280,6 +279,7 @@ Reasignar prospectos por operador::
|
||||
>>> reassign_by_operator.form.new_operator = operator2
|
||||
>>> reassign_by_operator.execute('reassign_by_operator')
|
||||
|
||||
>>> prospect1.reload()
|
||||
>>> prospect1.assigned_operator.name
|
||||
'Operatus'
|
||||
|
||||
|
@ -7,5 +7,4 @@ 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"/>
|
||||
<button name="start_trace"/>
|
||||
</tree>
|
Loading…
Reference in New Issue
Block a user