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..96587fd346
--- /dev/null
+++ b/helpdesk_project/models/project.py
@@ -0,0 +1,31 @@
+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):
+ # Obtain action with the ID sent
+ action = self.env.ref('helpdesk_project.task_action_view_tickets').read()[0]
+ action['context'] = {
+ 'search_task_id': self.id,
+ }
+ # action['domain'] = [('task_id', '=', self.id)]
+ #
+ return action
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..5280831287
--- /dev/null
+++ b/helpdesk_project/views/project_views.xml
@@ -0,0 +1,38 @@
+
+
+
+ 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}
+
+
+
+ Tickets
+ helpdesk.ticket
+ tree,form
+
+
\ 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