Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions helpdesk_mgmt/data/helpdesk_data.xml
Original file line number Diff line number Diff line change
Expand Up @@ -211,13 +211,5 @@
<record id="helpdesk_ticket_channel_other" model="helpdesk.ticket.channel">
<field name="name">Other</field>
</record>
<!--default alias for leads-->
<record id="mail_alias_lead_info" model="mail.alias">
<field name="alias_name"></field>
<field name="alias_model_id" ref="model_helpdesk_ticket"/>
<field name="alias_user_id" ref="base.user_admin"/>
<field name="alias_parent_model_id" ref="model_helpdesk_ticket_team"/>
</record>

</data>
</odoo>
1 change: 1 addition & 0 deletions helpdesk_project/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
7 changes: 5 additions & 2 deletions helpdesk_project/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 2 additions & 0 deletions helpdesk_project/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import helpdesk_project_ticket
from . import helpdesk_project_task
34 changes: 34 additions & 0 deletions helpdesk_project/models/helpdesk_project_task.py
Original file line number Diff line number Diff line change
@@ -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.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_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
30 changes: 30 additions & 0 deletions helpdesk_project/models/helpdesk_project_ticket.py
Original file line number Diff line number Diff line change
@@ -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}
37 changes: 37 additions & 0 deletions helpdesk_project/views/helpdesk_project_task_views.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_helpdesk_project_task_form" model="ir.ui.view">
<field name="name">view.helpdesk.project.task.form</field>
<field name="model">project.task</field>
<field name="inherit_id" ref="project.view_task_form2"/>
<field name="arch" type="xml">
<xpath expr="//button[@name='action_assign_to_me']" position="after">
<button string="New ticket" name="action_new_ticket" type="object"/>
</xpath>
<xpath expr="//button[@name='action_subtask']" position="after">
<button class="oe_stat_button" type="object"
name="task_action_view_tickets" icon="fa-check">
<field name="ticket_count" widget="statinfo" string="Tickets"/>
</button>
</xpath>
<notebook position="inside">
<page name="tickets" string="Tickets">
<field name="ticket_ids"/>
</page>
</notebook>
</field>
</record>



<record id="task_action_ticket_new" model="ir.actions.act_window">
<field name="name">Ticket</field>
<field name="res_model">helpdesk.ticket</field>
<field name="view_mode">form, tree</field>
<field name="domain">[('task_id', '=', active_id)]</field>
<field name="context">
{'search_default_task_id': active_id,
'default_task_id': active_id}
</field>
</record>
</odoo>
18 changes: 18 additions & 0 deletions helpdesk_project/views/helpdesk_project_ticket_views.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_helpdesk_project_ticket_form" model="ir.ui.view">
<field name="name">view.helpdesk.project.ticket.form</field>
<field name="model">helpdesk.ticket</field>
<field name="inherit_id" ref="helpdesk_mgmt.ticket_view_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page name="project" string="Project">
<group>
<field name="project_id"/>
<field name="task_id"/>
</group>
</page>
</notebook>
</field>
</record>
</odoo>