feat: Se implementa reasignación de prospecto específico en las pruebas, #53
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Camilo Gonzalez 2023-08-27 18:48:30 -05:00
parent ed07f5fcbc
commit 2eb52e9dce
5 changed files with 70 additions and 2 deletions

View File

@ -22,12 +22,14 @@ def register():
prospect_trace.ScheduleCallStart,
prospect_trace.MakeCallStart,
prospect.ReassignProspectByOperatorStart,
prospect.ReassignProspectByProspectStart,
module='sale_opportunity_management', type_='model')
Pool.register(
prospect_trace.ScheduleCall,
prospect.AssignOperator,
prospect_trace.MakeCall,
prospect.ReassignProspectByOperator,
prospect.ReasignProspectByProspect,
module='sale_opportunity_management', type_='wizard')
Pool.register(
module='sale_opportunity_management', type_='report')

View File

@ -199,8 +199,8 @@ class ReassignProspectByOperator(Wizard):
'sale.prospect.reassign_by_operator.start',
'sale_opportunity_management.reassign_by_operator_start_view_form',
[Button("Cancel", 'end', 'tryton-cancel'),
Button(
"Reassign", 'reassign_by_operator', 'tryton-ok', default=True)])
Button("Reassign", 'reassign_by_operator', 'tryton-ok', default=True)
])
reassign_by_operator = StateTransition()
@ -221,3 +221,41 @@ class ReassignProspectByOperator(Wizard):
prospect.save()
return 'end'
class ReassignProspectByProspectStart(ModelView):
'Inicio de reasignación de un prospecto en específico'
__name__ = 'sale.prospect.reassign_by_prospect.start'
prospect = fields.Many2One('sale.prospect', 'Prospect', required=True)
new_operator = fields.Many2One('res.user', "New operator", required=True)
class ReasignProspectByProspect(Wizard):
'Reasignar un prospecto en específico a un nuevo operario'
__name__ = 'sale.prospect.reassign_by_prospect'
start = StateView(
'sale.prospect.reassign_by_prospect.start',
'sale_opportunity_management.reassign_by_prospect_start_view_form',
[Button("Cancel", 'end', 'tryton-cancel'),
Button("Reassign", 'reassign_by_prospect', 'tryton-ok', default=True)
])
reassign_by_prospect = StateTransition()
def transition_reassign_by_prospect(self):
pool = Pool()
ProspectTrace = pool.get('sale.prospect_trace')
self.start.prospect.assigned_operator = self.start.new_operator
if self.start.prospect.prospect_trace:
prospect_trace, = ProspectTrace.search(
[('prospect', '=', self.start.prospect)])
prospect_trace.prospect_assigned_operator =\
self.start.new_operator
prospect_trace.save()
self.start.prospect.save()
return 'end'

View File

@ -164,5 +164,11 @@ this repository contains the full copyright notices and license terms. -->
sequence="50"
id="menu_reassign_by_operator_wizard"
action="reassign_by_operator_wizard"/>
<record model="ir.ui.view" id="reassign_by_prospect_start_view_form">
<field name="model">sale.prospect.reassign_by_prospect.start</field>
<field name="type">form</field>
<field name="name">reassign_by_prospect_form</field>
</record>
</data>
</tryton>

View File

@ -283,6 +283,22 @@ Reasignar prospectos por operador::
>>> prospect_trace.calls[0].call_assigned_operator.name
'Administrator'
Reasignar prospectos por prospecto::
>>> reassign_by_prospect = Wizard('sale.prospect.reassign_by_prospect', [])
>>> reassign_by_prospect.form.prospect = prospect1
>>> reassign_by_prospect.form.new_operator = user
>>> reassign_by_prospect.execute('reassign_by_prospect')
>>> prospect1.reload()
>>> prospect1.assigned_operator.name
'Administrator'
>>> prospect_trace.reload()
>>> prospect_trace.prospect_assigned_operator.name
'Administrator'
>>> prospect_trace.calls[0].call_assigned_operator.name
'Administrator'
--------
Reportes
--------

View File

@ -0,0 +1,6 @@
<?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>
</form>