From 442126dd4d12e47551c887ace242bb90566dac7d Mon Sep 17 00:00:00 2001 From: OdooAdmin Date: Fri, 27 Mar 2020 19:10:09 +0100 Subject: [PATCH 1/3] ADD model --- helpdesk_project/helpdesk_project.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 helpdesk_project/helpdesk_project.py diff --git a/helpdesk_project/helpdesk_project.py b/helpdesk_project/helpdesk_project.py new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/helpdesk_project/helpdesk_project.py @@ -0,0 +1 @@ + From 29e8012776fc0e1c966cfc65a9562cb235135abb Mon Sep 17 00:00:00 2001 From: OdooAdmin Date: Thu, 2 Apr 2020 17:05:36 +0200 Subject: [PATCH 2/3] IMP eliminar part de vista de help_mangmt --- helpdesk_mgmt/data/helpdesk_data.xml | 8 ----- helpdesk_project/__init__.py | 1 + helpdesk_project/__manifest__.py | 7 ++-- helpdesk_project/helpdesk_project.py | 1 - helpdesk_project/models/__init__.py | 2 ++ .../models/helpdesk_project_task.py | 34 ++++++++++++++++++ .../models/helpdesk_project_ticket.py | 30 ++++++++++++++++ .../views/helpdesk_project_project_views.xml | 17 +++++++++ .../views/helpdesk_project_task_views.xml | 35 +++++++++++++++++++ .../views/helpdesk_project_ticket_views.xml | 18 ++++++++++ 10 files changed, 142 insertions(+), 11 deletions(-) delete mode 100644 helpdesk_project/helpdesk_project.py create mode 100644 helpdesk_project/models/__init__.py create mode 100644 helpdesk_project/models/helpdesk_project_task.py create mode 100644 helpdesk_project/models/helpdesk_project_ticket.py create mode 100644 helpdesk_project/views/helpdesk_project_project_views.xml create mode 100644 helpdesk_project/views/helpdesk_project_task_views.xml create mode 100644 helpdesk_project/views/helpdesk_project_ticket_views.xml diff --git a/helpdesk_mgmt/data/helpdesk_data.xml b/helpdesk_mgmt/data/helpdesk_data.xml index 24d3260e0a..9ba83ca7fa 100644 --- a/helpdesk_mgmt/data/helpdesk_data.xml +++ b/helpdesk_mgmt/data/helpdesk_data.xml @@ -211,13 +211,5 @@ Other - - - - - - - - diff --git a/helpdesk_project/__init__.py b/helpdesk_project/__init__.py index e69de29bb2..7f0969edc6 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..8ca2680eef 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": ["project", "helpdesk_mgmt"], + "data": [ + "views/helpdesk_project_task_views.xml", + "views/helpdesk_project_ticket_views.xml", + ], "demo": [], "development_status": "Alpha", "application": True, diff --git a/helpdesk_project/helpdesk_project.py b/helpdesk_project/helpdesk_project.py deleted file mode 100644 index 8b13789179..0000000000 --- a/helpdesk_project/helpdesk_project.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/helpdesk_project/models/__init__.py b/helpdesk_project/models/__init__.py new file mode 100644 index 0000000000..61b22a593a --- /dev/null +++ b/helpdesk_project/models/__init__.py @@ -0,0 +1,2 @@ +from . import helpdesk_project_ticket +from . import helpdesk_project_task diff --git a/helpdesk_project/models/helpdesk_project_task.py b/helpdesk_project/models/helpdesk_project_task.py new file mode 100644 index 0000000000..10a8aabece --- /dev/null +++ b/helpdesk_project/models/helpdesk_project_task.py @@ -0,0 +1,34 @@ +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 task_action_view_tickets(self): + action = self.env.ref("helpdesk_project.taskaction_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_new_ticket(self): + action = self.env.ref("helpdesk_project.taskaction_ticket_new").read()[0] + action['context'] = { + 'default_task_id': self.id, + 'default_project_id': self.project_id and self.project_id.id, + } + return action diff --git a/helpdesk_project/models/helpdesk_project_ticket.py b/helpdesk_project/models/helpdesk_project_ticket.py new file mode 100644 index 0000000000..9931ebc12b --- /dev/null +++ b/helpdesk_project/models/helpdesk_project_ticket.py @@ -0,0 +1,30 @@ +from odoo import models, api, fields, _ + +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') + + # Si busco la tarea sin indicar el proyecto completar el campo del proyecto + # (onchange en tarea que complete el projecto) + @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 + + # si busco primero el proyecto solo permitir seleccionar tareas de ese proyecto + # (onchange a project que devuelva un domain) + @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/helpdesk_project_project_views.xml b/helpdesk_project/views/helpdesk_project_project_views.xml new file mode 100644 index 0000000000..6b1336da1e --- /dev/null +++ b/helpdesk_project/views/helpdesk_project_project_views.xml @@ -0,0 +1,17 @@ + + + + + view.helpdesk.project.project.form + project.task + + + + + + + + + + + diff --git a/helpdesk_project/views/helpdesk_project_task_views.xml b/helpdesk_project/views/helpdesk_project_task_views.xml new file mode 100644 index 0000000000..9b917e7994 --- /dev/null +++ b/helpdesk_project/views/helpdesk_project_task_views.xml @@ -0,0 +1,35 @@ + + + + view.helpdesk.project.task.form + project.task + + + + + + + + + + + + + + + Ticket + helpdesk.ticket + form, tree + [('task_id', '=', active_id)] + + {'search_default_task_id': active_id, + 'default_task_id': active_id} + + + diff --git a/helpdesk_project/views/helpdesk_project_ticket_views.xml b/helpdesk_project/views/helpdesk_project_ticket_views.xml new file mode 100644 index 0000000000..96215f126b --- /dev/null +++ b/helpdesk_project/views/helpdesk_project_ticket_views.xml @@ -0,0 +1,18 @@ + + + + view.helpdesk.project.ticket.form + helpdesk.ticket + + + + + + + + + + + + + From f59896e57e7595b7fcac2768a5ea53256065007c Mon Sep 17 00:00:00 2001 From: OdooAdmin Date: Fri, 3 Apr 2020 16:35:56 +0200 Subject: [PATCH 3/3] ADD petites modificacions --- .../models/helpdesk_project_task.py | 4 ++-- .../views/helpdesk_project_project_views.xml | 17 ----------------- .../views/helpdesk_project_task_views.xml | 2 ++ 3 files changed, 4 insertions(+), 19 deletions(-) delete mode 100644 helpdesk_project/views/helpdesk_project_project_views.xml diff --git a/helpdesk_project/models/helpdesk_project_task.py b/helpdesk_project/models/helpdesk_project_task.py index 10a8aabece..ff2a2aaf8d 100644 --- a/helpdesk_project/models/helpdesk_project_task.py +++ b/helpdesk_project/models/helpdesk_project_task.py @@ -18,7 +18,7 @@ def _compute_ticket_count(self): task.ticket_count = len(task.ticket_ids) def task_action_view_tickets(self): - action = self.env.ref("helpdesk_project.taskaction_ticket_new").read()[0] + 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, @@ -26,7 +26,7 @@ def task_action_view_tickets(self): return action def action_new_ticket(self): - action = self.env.ref("helpdesk_project.taskaction_ticket_new").read()[0] + 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, diff --git a/helpdesk_project/views/helpdesk_project_project_views.xml b/helpdesk_project/views/helpdesk_project_project_views.xml deleted file mode 100644 index 6b1336da1e..0000000000 --- a/helpdesk_project/views/helpdesk_project_project_views.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - view.helpdesk.project.project.form - project.task - - - - - - - - - - - diff --git a/helpdesk_project/views/helpdesk_project_task_views.xml b/helpdesk_project/views/helpdesk_project_task_views.xml index 9b917e7994..463ef7d49e 100644 --- a/helpdesk_project/views/helpdesk_project_task_views.xml +++ b/helpdesk_project/views/helpdesk_project_task_views.xml @@ -22,6 +22,8 @@ + + Ticket helpdesk.ticket