From eef6ef345f319219301fc68d287c3b3cdad63199 Mon Sep 17 00:00:00 2001 From: gorkamagra Date: Fri, 27 Mar 2020 15:21:21 +0100 Subject: [PATCH 1/2] =?UTF-8?q?IMP=20A=C3=B1adidos=20campos=20para=20proye?= =?UTF-8?q?cto=20y=20tarea=20en=20cada=20ticket,=20mostrando=20tambien=20n?= =?UTF-8?q?umero=20de=20tickets=20por=20tarea.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __init__.py | 0 helpdesk_project/__init__.py | 1 + helpdesk_project/__manifest__.py | 7 +++-- helpdesk_project/models/__init__.py | 2 ++ helpdesk_project/models/project.py | 28 +++++++++++++++++ helpdesk_project/models/ticket.py | 24 ++++++++++++++ helpdesk_project/views/project_views.xml | 40 ++++++++++++++++++++++++ helpdesk_project/views/ticket_views.xml | 20 ++++++++++++ 8 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 __init__.py create mode 100644 helpdesk_project/models/__init__.py create mode 100644 helpdesk_project/models/project.py create mode 100644 helpdesk_project/models/ticket.py create mode 100644 helpdesk_project/views/project_views.xml create mode 100644 helpdesk_project/views/ticket_views.xml diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/helpdesk_project/__init__.py b/helpdesk_project/__init__.py index e69de29bb2..0650744f6b 100644 --- a/helpdesk_project/__init__.py +++ b/helpdesk_project/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/helpdesk_project/__manifest__.py b/helpdesk_project/__manifest__.py index 76fbc55cbe..422503293c 100644 --- a/helpdesk_project/__manifest__.py +++ b/helpdesk_project/__manifest__.py @@ -15,8 +15,11 @@ "PESOL ," "Odoo Community Association (OCA)", "website": "https://github.com/OCA/helpdesk", - "depends": ["helpdesk_mgmt"], - "data": [], + "depends": ["helpdesk_mgmt", 'project'], + "data": [ + 'views/project_views.xml', + 'views/ticket_views.xml', + ], "demo": [], "development_status": "Alpha", "application": True, diff --git a/helpdesk_project/models/__init__.py b/helpdesk_project/models/__init__.py new file mode 100644 index 0000000000..3372e41a7f --- /dev/null +++ b/helpdesk_project/models/__init__.py @@ -0,0 +1,2 @@ +from . import project +from . import ticket diff --git a/helpdesk_project/models/project.py b/helpdesk_project/models/project.py new file mode 100644 index 0000000000..b1e96e113e --- /dev/null +++ b/helpdesk_project/models/project.py @@ -0,0 +1,28 @@ +from odoo import models, api, fields, _ + + +class ProjectTask(models.Model): + _inherit = 'project.task' + + ticket_ids = fields.One2many(comodel_name='helpdesk.ticket', inverse_name='task_id', string='Tickets') + ticket_count = fields.Integer(compute='_compute_ticket_count', string='Number of tickets') + + @api.depends('ticket_ids') + def _compute_ticket_count(self): + for task in self: + task.ticket_count = len(task.ticket_ids) + + def action_new_ticket(self): + action = self.env.ref("helpdesk_project.task_action_ticket_new").read()[0] + action['context'] = { + 'default_task_id': self.id, + 'default_project_id': self.project_id and self.project_id.id, + } + return action + + def action_view_tickets(self): + action = self.env.ref("helpdesk_project.task_action_view_tickets").read()[0] + action['context'] = { + 'default_task_id': self.id, + 'default_project_id': self.project_id and self.project_id.id, + } diff --git a/helpdesk_project/models/ticket.py b/helpdesk_project/models/ticket.py new file mode 100644 index 0000000000..f221c009d3 --- /dev/null +++ b/helpdesk_project/models/ticket.py @@ -0,0 +1,24 @@ +from odoo import models, fields, api, _ + + +class HelpdeskTicket(models.Model): + _inherit = 'helpdesk.ticket' + + project_id = fields.Many2one(comodel_name='project.project', string='Project') + + task_id = fields.Many2one(comodel_name='project.task', string='Task') + + @api.onchange('task_id') + def _onchange_task_id(self): + if self.task_id and self.task_id.project_id: + self.project_id = self.task_id.project_id + else: + self.project_id = False + + @api.onchange('project_id') + def _onchange_project_id(self): + if self.project_id: + domain = {'task_id': [('project_id', '=', self.project_id.id)]} + else: + domain = {} + return {'domain': domain} diff --git a/helpdesk_project/views/project_views.xml b/helpdesk_project/views/project_views.xml new file mode 100644 index 0000000000..2aafa9e85e --- /dev/null +++ b/helpdesk_project/views/project_views.xml @@ -0,0 +1,40 @@ + + + + view.task_ticket.form + project.task + + + + + + + + + + + + + + + + Ticket + helpdesk.ticket + form,tree + [('task_id', '=', active_id)] + {'search_default_task_id': active_id, 'default_task_id': active_id} + + + + Ticket + helpdesk.ticket + form,tree + [('task_id', '=', active_id)] + {'search_default_task_id': active_id, 'default_task_id': active_id} + + \ No newline at end of file diff --git a/helpdesk_project/views/ticket_views.xml b/helpdesk_project/views/ticket_views.xml new file mode 100644 index 0000000000..2ec6d85f60 --- /dev/null +++ b/helpdesk_project/views/ticket_views.xml @@ -0,0 +1,20 @@ + + + + + view.ticket_project.form + helpdesk.ticket + + + + + + + + + + + + + + \ No newline at end of file From 02cc26817ded7982587493330886adcbdef2e268 Mon Sep 17 00:00:00 2001 From: gorkamagra Date: Mon, 30 Mar 2020 15:48:34 +0200 Subject: [PATCH 2/2] =?UTF-8?q?HFIX=20a=C3=B1adida=20funcionalidad=20de=20?= =?UTF-8?q?ense=C3=B1ar=20listado=20de=20tickets=20asociados=20a=20proyect?= =?UTF-8?q?o=20desde=20smart=20button.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- helpdesk_project/models/project.py | 9 ++++++--- helpdesk_project/views/project_views.xml | 6 ++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/helpdesk_project/models/project.py b/helpdesk_project/models/project.py index b1e96e113e..96587fd346 100644 --- a/helpdesk_project/models/project.py +++ b/helpdesk_project/models/project.py @@ -21,8 +21,11 @@ def action_new_ticket(self): return action def action_view_tickets(self): - action = self.env.ref("helpdesk_project.task_action_view_tickets").read()[0] + # Obtain action with the ID sent + action = self.env.ref('helpdesk_project.task_action_view_tickets').read()[0] action['context'] = { - 'default_task_id': self.id, - 'default_project_id': self.project_id and self.project_id.id, + 'search_task_id': self.id, } + # action['domain'] = [('task_id', '=', self.id)] + # + return action diff --git a/helpdesk_project/views/project_views.xml b/helpdesk_project/views/project_views.xml index 2aafa9e85e..5280831287 100644 --- a/helpdesk_project/views/project_views.xml +++ b/helpdesk_project/views/project_views.xml @@ -31,10 +31,8 @@ - Ticket + Tickets helpdesk.ticket - form,tree - [('task_id', '=', active_id)] - {'search_default_task_id': active_id, 'default_task_id': active_id} + tree,form \ No newline at end of file