feat: Se implementa en las pruebas cierre de tarea pendientes
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Camilo Gonzalez 2023-09-19 11:47:31 -05:00
parent cf874db55f
commit f71e6f4671
5 changed files with 40 additions and 8 deletions

View File

@ -15,7 +15,7 @@ def register():
user.User, user.User,
pending_call.PendingCall, pending_call.PendingCall,
call.Call, call.Call,
call.Task, call.PendingTask,
department.Department, department.Department,
city.City, city.City,
prospect.ContactMethod, prospect.ContactMethod,

33
call.py
View File

@ -1,7 +1,6 @@
from trytond.model import ModelSQL, ModelView, fields from trytond.model import ModelSQL, ModelView, fields
from trytond.pyson import Eval
from datetime import date from datetime import date
from .selections.interest import Interest from .selections.interest import Interest
from .selections.call_types import CallTypes from .selections.call_types import CallTypes
from .selections.call_results import CallResults from .selections.call_results import CallResults
@ -49,16 +48,36 @@ class Call(ModelSQL, ModelView):
return date.today() return date.today()
class Task(ModelSQL, ModelView): class PendingTask(ModelSQL, ModelView):
'Tarea pendiente a un seguimiento de prospecto' 'Tarea a realizar a un seguimiento de prospecto'
__name__ = "sale.pending_task" __name__ = "sale.pending_task"
description = fields.Text('Description', required=True) description = fields.Text('Description', required=True)
done = fields.Boolean('Done') state = fields.Selection(
[('pending', 'Pending'),
('done', 'Done')],
'State')
prospect_trace = fields.Many2One( prospect_trace = fields.Many2One(
'sale.prospect_trace', 'Prospect trace', 'sale.prospect_trace', 'Prospect trace',
required=True, readonly=True) required=True, readonly=True)
@classmethod @classmethod
def default_done(cls): def __setup__(cls):
return False super(PendingTask, cls).__setup__()
cls._buttons.update({
'close_task': {
'invisible': Eval('state') == 'done'
}
})
@classmethod
@ModelView.button
def close_task(cls, tasks):
for task in tasks:
task.state = 'done'
task.save()
@classmethod
def default_state(cls):
return 'pending'

View File

@ -105,5 +105,10 @@ this repository contains the full copyright notices and license terms. -->
id="menu_pending_tasks" id="menu_pending_tasks"
action="act_pending_task_tree" action="act_pending_task_tree"
icon="tryton-graph"/> icon="tryton-graph"/>
<record model="ir.model.button" id="close_task_button">
<field name="name">close_task</field>
<field name="string">Close task</field>
<field name="model" search="[('model', '=', 'sale.pending_task')]"/>
</record>
</data> </data>
</tryton> </tryton>

View File

@ -282,6 +282,13 @@ Hacer llamada y programar tarea::
>>> task >>> task
proteus.Model.get('sale.pending_task')(1) proteus.Model.get('sale.pending_task')(1)
>>> task.state
'pending'
>>> task.click('close_task')
>>> task.state
'done'
Hacer llamada y cerrar venta (Seguimiento de prospecto):: Hacer llamada y cerrar venta (Seguimiento de prospecto)::
>>> make_call = Wizard('sale.prospect_trace.make_call', [prospect_trace]) >>> make_call = Wizard('sale.prospect_trace.make_call', [prospect_trace])
>>> make_call.form.description = 'Closed sale' >>> make_call.form.description = 'Closed sale'

View File

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