4 Commits

Author SHA1 Message Date
a1d1e019ec fix: al crear segunda tarea al mismo seguimiento se pierden los contact_methods de la anterior
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2023-10-20 17:50:44 -05:00
3be97677a7 Merge branch '6.8' of https://gitea.onecluster.org/OneTeam/trytondo-sale_opportunity_management into pantallaDeTareasNoMuestraContactMethod_#74 2023-10-20 16:31:17 -05:00
5873d35f12 feat(Pantalla Tareas pendientes): Se agregan vistas de método de contacto, #74
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2023-10-19 19:58:46 -05:00
85d5f714ef feat: Se implementa en las pruebas metodos de contacto dentro de PendingTask
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2023-10-19 19:52:40 -05:00
8 changed files with 58 additions and 8 deletions

View File

@@ -28,6 +28,7 @@ def register():
prospect_trace.MakeCallAskTask,
prospect.ReassignProspectByOperatorStart,
prospect.ReassignProspectByProspectStart,
call.PendingTask_ContactMethod,
module='sale_opportunity_management', type_='model')
Pool.register(
prospect_trace.ScheduleCall,

14
call.py
View File

@@ -67,6 +67,11 @@ class PendingTask(ModelSQL, ModelView):
'sale.prospect_trace', 'Prospect trace',
required=True, readonly=True)
contacts = fields.Many2Many(
'sale.pendingtask_contactmethod',
'pending_task_id', 'contact_method_id',
'Contact Methods')
@classmethod
def __setup__(cls):
super(PendingTask, cls).__setup__()
@@ -86,3 +91,12 @@ class PendingTask(ModelSQL, ModelView):
@classmethod
def default_state(cls):
return 'pending'
class PendingTask_ContactMethod(ModelSQL):
'Relacion muchos a muchos entre tareas pendientes y mecanismos de contacto'
__name__ = "sale.pendingtask_contactmethod"
pending_task_id = fields.Many2One('sale.pending_task', 'Pending task id')
contact_method_id = fields.Many2One(
'prospect.contact_method', 'Contact method id')

View File

@@ -80,6 +80,11 @@ class ContactMethod(ModelSQL, ModelView):
prospect_trace = fields.Many2One(
'sale.prospect_trace', 'Prospect Trace', required=False)
tasks = fields.Many2Many(
'sale.pendingtask_contactmethod',
'contact_method_id', 'pending_task_id',
'Contact Methods')
@classmethod
def default_contact_type(cls):
return 'mobile'

View File

@@ -263,6 +263,7 @@ class MakeCall(Wizard):
task = Task()
task.description = description
task.prospect_trace = prospect_trace
task.contacts = prospect_trace.prospect_contacts
task.save()
@classmethod

View File

@@ -287,16 +287,42 @@ Hacer llamada y programar tarea::
>>> make_call.execute('schedule_task')
>>> Task = Model.get('sale.pending_task')
>>> task, = Task.find([('description', '=', 'I have to send a mail to prospect offering him this services...')])
>>> task
proteus.Model.get('sale.pending_task')(1)
>>> task1, = Task.find([('description', '=', 'I have to send a mail to prospect offering him this services...')])
>>> task.state
>>> task1
proteus.Model.get('sale.pending_task')(1)
>>> task1.state
'pending'
>>> task.click('close_task')
>>> task.state
>>> task1.click('close_task')
>>> task1.state
'done'
>>> task1.contacts[0].value
'12345678910'
Programar segunda tarea al mismo seguimiento::
>>> make_call = Wizard('sale.prospect_trace.make_call', [prospect_trace])
>>> make_call.form.description = 'Prospect told me to send him an SMS'
>>> make_call.form.interest = '3'
>>> make_call.form.schedule_call = 'no'
>>> make_call.form.schedule_task = 'yes'
>>> make_call.execute('make_call')
>>> make_call.form.task_description = 'I have to send a SMS to prospect offering him this services...'
>>> make_call.execute('schedule_task')
>>> task1.save()
>>> Task = Model.get('sale.pending_task')
>>> task2, = Task.find([('description', '=', 'I have to send a SMS to prospect offering him this services...')])
>>> task2
proteus.Model.get('sale.pending_task')(2)
>>> task2.state
'pending'
>>> task2.contacts[0].value
'12345678910'
>>> task1.contacts[0].value
'12345678910'
Hacer llamada y cerrar venta (Seguimiento de prospecto)::
>>> make_call = Wizard('sale.prospect_trace.make_call', [prospect_trace])
@@ -347,7 +373,6 @@ Reasignar prospectos por prospecto::
>>> 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

View File

@@ -1,5 +1,5 @@
[tryton]
version=7.0.0
version=6.8.0
depends:
ir
res

View File

@@ -8,5 +8,8 @@ this repository contains the full copyright notices and license terms. -->
<newline/>
<label name="description"/>
<field name="description"/>
<newline/>
<label name="contacts"/>
<field name="contacts"/>
</group>
</form>

View File

@@ -4,5 +4,6 @@ this repository contains the full copyright notices and license terms. -->
<tree>
<field name="prospect_trace" expand="1"/>
<field name="description" expand="1"/>
<field name="contacts" expand="1"/>
<button name="close_task"/>
</tree>