feat: Se inicia seguimiento automáticamente luego de asignar operario, closed #61
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Camilo Gonzalez 2023-08-28 19:59:52 -05:00
parent 543a52303c
commit 8ec3e4b983
3 changed files with 17 additions and 33 deletions

View File

@ -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'

View File

@ -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'

View File

@ -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>