diff --git a/helpdesk_project/__init__.py b/helpdesk_project/__init__.py
index e69de29bb2..9a7e03eded 100644
--- a/helpdesk_project/__init__.py
+++ b/helpdesk_project/__init__.py
@@ -0,0 +1 @@
+from . import models
\ No newline at end of file
diff --git a/helpdesk_project/__manifest__.py b/helpdesk_project/__manifest__.py
index 76fbc55cbe..55bc851ac6 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..d49f1509cb
--- /dev/null
+++ b/helpdesk_project/models/__init__.py
@@ -0,0 +1,2 @@
+from . import project
+from . import helpdesk_ticket
\ No newline at end of file
diff --git a/helpdesk_project/models/helpdesk_ticket.py b/helpdesk_project/models/helpdesk_ticket.py
new file mode 100644
index 0000000000..a03b16a3a4
--- /dev/null
+++ b/helpdesk_project/models/helpdesk_ticket.py
@@ -0,0 +1,53 @@
+from odoo import api, fields, models
+
+
+class HelpdeskTicket(models.Model):
+ _inherit = 'helpdesk.ticket'
+
+ name = fields.Char(string='Name')
+
+ #Uno o varios tickets pueden estar asignados a un proyecto
+ project_id = fields.Many2one(
+ comodel_name='project.project',
+ string='Proyecto')
+
+ #Uno o varios tickets pueden estar asignados a una tarea'
+ task_id = fields.Many2one(
+ comodel_name='project.task',
+ string='Tarea')
+
+ def action_new_view(self):
+ # action = self.env.ref("helpdesk_project.project_alta_ticket_action").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
+ }
+ return action
+
+ # Si busco la tarea sin indicar el proyecto completar el proyecto de esa tarea
+ # (onchange en tarea que complete el projecto)
+ # si busco primero el proyecto solo permitir seleccionar tareas de ese proyecto
+ # (onchange a project que devuelva un domain)
+
+ # Al buscar una tarea sin poner el proyecto que se obtenga el proyecto
+ @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
+
+
+ # Al buscar un proyecto filtrar (domain) las posibles tareas de ese proyecto
+ @api.onchange('project_id')
+ def _onchange_project_id(self):
+ if self.project_id:
+ domain = {'task_id':[('project_id',"=",self.project_id.id)]}
+ #domain = [(project_id,"=",self.project_id.id)]
+ #domain = {'task_id':[]}
+ else:
+ domain = {}
+ return {'domain' : domain}
+
+
diff --git a/helpdesk_project/models/project.py b/helpdesk_project/models/project.py
new file mode 100644
index 0000000000..139338a3bb
--- /dev/null
+++ b/helpdesk_project/models/project.py
@@ -0,0 +1,48 @@
+from odoo import api, fields, models
+
+
+class ProjectTask(models.Model):
+
+ _inherit = 'project.task'
+
+ ticket_ids = fields.One2many(comodel_name='helpdesk.ticket', inverse_name='task_id', string='Tareas')
+
+ tickets_count = fields.Integer(compute='contar_tickets',string='Tcks.')
+
+
+ @api.depends('ticket_ids')
+ def contar_tickets(self):
+ self.tickets_count = len(self.ticket_ids)
+
+ def action_view_tickets_miVersion(self):
+ action = self.env.ref("helpdesk_project.project_alta_ticket_action").read()[0]
+ # action['context']={
+ # 'default_task_id' : self.id,
+ # 'default_project_id' : self.project_id and self.project_id.id
+ # }
+ action['res_id'] = 0
+ return action
+
+ def action_view_tickets(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('sale.action_quotations_with_onboarding').read()[0]
+ # action['context'] = {
+ # 'search_default_draft': 1,
+ # 'search_default_partner_id': self.partner_id.id,
+ # 'default_partner_id': self.partner_id.id,
+ # 'default_opportunity_id': self.id
+ # }
+ # action['domain'] = [('opportunity_id', '=', self.id), ('state', 'in', ['draft', 'sent'])]
+ # quotations = self.mapped('order_ids').filtered(lambda l: l.state in ('draft', 'sent'))
+ # if len(quotations) == 1:
+ # action['views'] = [(self.env.ref('sale.view_order_form').id, 'form')]
+ # action['res_id'] = quotations.id
+ # return action
+
\ No newline at end of file
diff --git a/helpdesk_project/views/project_views.xml b/helpdesk_project/views/project_views.xml
new file mode 100644
index 0000000000..b4a55bc713
--- /dev/null
+++ b/helpdesk_project/views/project_views.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+ project.task.inherit.view.form
+ project.task
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ALTA_TICKETS_DESDE_TAREAS
+ helpdesk.ticket
+ form,tree
+ [('task_id','=',active_id)]
+ {'search_default_task_id':active_id,'default_task_id':active_id}
+
+ new
+
+
+
+
+
+ TICKET
+ helpdesk.ticket
+ form,tree
+ [('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..3bfa1173ba
--- /dev/null
+++ b/helpdesk_project/views/ticket_views.xml
@@ -0,0 +1,22 @@
+
+
+
+
+ helpdesk.ticket.inherit.view.form
+ helpdesk.ticket
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file