| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/helpdesk |
| GIT | |
| GIT | https://github.com/OCA/helpdesk.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/helpdesk/tree/19.0/helpdesk_mgmt |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | After-Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, stferraro |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/helpdesk |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - html_editor - portal - http_routing - auth_signup |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module adds Helpdesk functionality in Odoo. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
helpdesk_ticket_kanban_view |
helpdesk.ticket.team.kanban | helpdesk.ticket.team | kanban | New |
helpdesk_ticket_view_search |
helpdesk.ticket.view.search | helpdesk.ticket | search | New |
helpdesk_ticket_views_pivot |
helpdesk.ticket.view.pivot | helpdesk.ticket | pivot | New |
portal_create_ticket |
Create Ticket | ir.ui.view | qweb | New |
portal_docs_entry |
portal_docs_entry | ir.ui.view | qweb | Inherits portal.portal_docs_entry |
portal_helpdesk_ticket_page |
Ticket Portal Template | ir.ui.view | qweb | Inherits portal.portal_sidebar |
portal_layout |
Portal layout: ticket menu entry | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_home |
Portal My Home : ticket entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_tickets |
My Tickets | ir.ui.view | qweb | New |
portal_searchbar |
portal_searchbar | ir.ui.view | qweb | Inherits portal.portal_searchbar |
portal_ticket_list |
Ticket List | ir.ui.view | qweb | New |
portal_ticket_new_button |
portal_ticket_new_button | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits base.res_config_settings_view_form | |
ticket_view_form |
helpdesk.ticket.view.form | helpdesk.ticket | form | New |
ticket_view_tree |
helpdesk.ticket.view.list | helpdesk.ticket | list | New |
view_helpdesk_category_form |
view.helpdesk_category.form | helpdesk.ticket.category | form | New |
view_helpdesk_category_tree |
view.helpdesk_category.list | helpdesk.ticket.category | list | New |
view_helpdesk_channel_form |
view.helpdesk_channel.form | helpdesk.ticket.channel | form | New |
view_helpdesk_channel_tree |
view.helpdesk_channel.list | helpdesk.ticket.channel | list | New |
view_helpdesk_team_form |
view.helpdesk_team.form | helpdesk.ticket.team | form | New |
view_helpdesk_team_tree |
view.helpdesk_team.list | helpdesk.ticket.team | list | New |
view_helpdesk_ticket_category_search |
helpdesk.ticket.category.search | helpdesk.ticket.category | search | New |
view_helpdesk_ticket_channel_search |
helpdesk.ticket.channel.search | helpdesk.ticket.channel | search | New |
view_helpdesk_ticket_duplicate_form |
helpdesk.ticket.duplicate.wizard.form | helpdesk.ticket.duplicate.wizard | form | New |
view_helpdesk_ticket_kanban |
helpdesk.ticket.kanban | helpdesk.ticket | kanban | New |
view_helpdesk_ticket_stage_form |
helpdesk.ticket.stage.form | helpdesk.ticket.stage | form | New |
view_helpdesk_ticket_stage_search |
helpdesk.ticket.stage.search | helpdesk.ticket.stage | search | New |
view_helpdesk_ticket_stage_tree |
helpdesk.ticket.stage.list | helpdesk.ticket.stage | list | New |
view_helpdesk_ticket_tag_form |
helpdesk.ticket.tag.form | helpdesk.ticket.tag | form | New |
view_helpdesk_ticket_tag_search |
helpdesk.ticket.tag.search | helpdesk.ticket.tag | search | New |
view_helpdesk_ticket_tag_tree |
helpdesk.ticket.tag.list | helpdesk.ticket.tag | list | New |
view_helpdesk_ticket_team_search |
helpdesk.ticket.team.search | helpdesk.ticket.team | search | New |
view_partner_form |
view_partner_form | res.partner | div | Inherits base.view_partner_form |
active
Boolean
default=True
assigned_date
Datetime
copy=False
attachment_ids
One2many → ir.attachment
comodel_name='ir.attachment'
domain=[('res_model', '=', 'helpdesk.ticket')]
inverse_name='res_id'
string='Media Attachments'
category_id
Many2one → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
channel_id
Many2one → helpdesk.ticket.channel
comodel_name='helpdesk.ticket.channel'
help='Channel indicates where the source of a ticketcomes from (it could be a phone call, an email...)'
string='Channel'
closed
Boolean
related='stage_id.closed'
closed_date
Datetime
copy=False
color
Integer
string='Color Index'
commercial_partner_id
Many2one
related='partner_id.commercial_partner_id'
store=True
string='Commercial Partner'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
description
Html
required=True
sanitize_style=True
duplicate_count
Integer
compute='_compute_duplicate_count'
duplicate_id
Many2one → helpdesk.ticket
copy=False
string='Duplicate of'
tracking=True
args: 'helpdesk.ticket'
duplicate_ids
One2many → helpdesk.ticket
string='Duplicate tickets'
args: 'helpdesk.ticket', 'duplicate_id'
duplicate_tracking_enabled
Boolean
related='company_id.helpdesk_mgmt_duplicate_tracking'
kanban_state
Selection
selection=[('normal', 'Default'), ('done', 'Ready for next stage'), ('blocked', 'Blocked')]
last_stage_update
Datetime
default=fields.Datetime.now
name
Char
required=True
string='Title'
number
Char
default='/'
readonly=True
string='Ticket number'
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Contact'
partner_name
Char
priority
Selection
default='1'
selection=[('0', 'Low'), ('1', 'Medium'), ('2', 'High'), ('3', 'Very High')]
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of tickets.'
index=True
stage_id
Many2one → helpdesk.ticket.stage
comodel_name='helpdesk.ticket.stage'
compute='_compute_stage_id'
copy=False
domain="['|',('team_ids', '=', team_id),('team_ids','=',False)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
readonly=False
store=True
string='Stage'
tracking=True
tag_ids
Many2many → helpdesk.ticket.tag
comodel_name='helpdesk.ticket.tag'
string='Tags'
team_id
Many2one → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
compute='_compute_team_id'
index=True
readonly=False
store=True
string='Team'
unattended
Boolean
related='stage_id.unattended'
store=True
user_id
Many2one → res.users
comodel_name='res.users'
compute='_compute_user_id'
domain="team_id and [('share', '=', False),('id', 'in', user_ids)] or [('share', '=', False)]"
index=True
readonly=False
store=True
string='Assigned user'
tracking=True
user_ids
Many2many → res.users
comodel_name='res.users'
related='team_id.user_ids'
string='Users'
action_duplicate_tickets(self)
action_open_duplicate_wizard(self)
action_view_duplicates(self)
assign_to_me(self)
copy(self, default=None)
create(self, vals_list)
default_get(self, fields)
message_new(self, msg, custom_values=None)
message_update(self, msg, update_vals=None)
write(self, vals)
active
Boolean
default=True
child_id
One2many → helpdesk.ticket.category
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
complete_name
Char
compute='_compute_complete_name'
recursive=True
search='_search_complete_name'
name
Char
required=True
translate=True
parent_id
Many2one → helpdesk.ticket.category
index=True
ondelete='cascade'
args: 'helpdesk.ticket.category', 'Parent Category'
parent_path
Char
index=True
sequence
Integer
default=10
show_in_portal
Boolean
default=True
No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
translate=True
sequence
Integer
default=10
No public methods.
duplicate_of_id
Many2one → helpdesk.ticket
required=True
args: 'helpdesk.ticket'
target_stage_id
Many2one → helpdesk.ticket.stage
ticket_id
Many2one → helpdesk.ticket
required=True
args: 'helpdesk.ticket'
action_confirm(self)
active
Boolean
default=True
close_from_portal
Boolean
help='Display button in portal ticket form to allow closing ticket with this stage as target.'
closed
Boolean
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
description
Html
sanitize_style=True
translate=True
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
string='Folded in Kanban'
mail_template_id
Many2one → mail.template
comodel_name='mail.template'
domain=[('model', '=', 'helpdesk.ticket')]
help='If set an email will be sent to the customer when the ticketreaches this step.'
string='Email Template'
name
Char
required=True
string='Stage Name'
translate=True
sequence
Integer
default=1
team_ids
Many2many → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Specific team that uses this stage. If it is empty all teams could uses'
string='Helpdesk Teams'
unattended
Boolean
No public methods.
active
Boolean
default=True
color
Integer
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
translate=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
alias_id
Many2one → mail.alias
comodel_name='mail.alias'
help='The email address associated with this channel. New emails received will automatically create new tickets assigned to the channel.'
ondelete='restrict'
required=True
string='Email'
category_ids
Many2many → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
color
Integer
default=0
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
complete_name
Char
compute='_compute_complete_name'
recursive=True
search='_search_complete_name'
name
Char
required=True
translate=True
parent_id
Many2one → helpdesk.ticket.team
index=True
string='Parent Team'
args: 'helpdesk.ticket.team'
parent_path
Char
index=True
sequence
Integer
default=10
show_in_portal
Boolean
default=True
help='Allow to select this team when creating a new ticket in the portal.'
string='Show in portal form'
ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='team_id'
string='Tickets'
todo_ticket_count
Integer
compute='_compute_todo_tickets'
string='Number of tickets'
todo_ticket_count_high_priority
Integer
compute='_compute_todo_tickets'
string='Number of tickets in high priority'
todo_ticket_count_unassigned
Integer
compute='_compute_todo_tickets'
string='Number of tickets unassigned'
todo_ticket_count_unattended
Integer
compute='_compute_todo_tickets'
string='Number of tickets unattended'
user_id
Many2one → res.users
check_company=True
comodel_name='res.users'
string='Team Leader'
user_ids
Many2many → res.users
column1='helpdesk_ticket_team_id'
column2='res_users_id'
comodel_name='res.users'
relation='helpdesk_ticket_team_res_users_rel'
string='Members'
retrieve_dashboard(self)
No new fields.
Public methods (0)No public methods.
helpdesk_mgmt_duplicate_ticket_stage_id
Many2one → helpdesk.ticket.stage
comodel_name='helpdesk.ticket.stage'
default=False
string='Move duplicate tickets to this stage'
helpdesk_mgmt_duplicate_tracking
Boolean
default=False
string='Enable duplicate ticket tracking.'
helpdesk_mgmt_portal_category_id_required
Boolean
default=True
string='Required Category field in Helpdesk portal'
helpdesk_mgmt_portal_select_category
Boolean
string='Select category in Helpdesk portal'
helpdesk_mgmt_portal_select_team
Boolean
string='Select team in Helpdesk portal'
helpdesk_mgmt_portal_team_id_required
Boolean
default=True
string='Required Team field in Helpdesk portal'
helpdesk_mgmt_ticket_auto_assign
Boolean
default=True
string='Auto assign tickets'
No public methods.
helpdesk_mgmt_duplicate_ticket_stage_id
Many2one
readonly=False
related='company_id.helpdesk_mgmt_duplicate_ticket_stage_id'
helpdesk_mgmt_duplicate_tracking
Boolean
readonly=False
related='company_id.helpdesk_mgmt_duplicate_tracking'
helpdesk_mgmt_portal_category_id_required
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_category_id_required'
helpdesk_mgmt_portal_select_category
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_select_category'
helpdesk_mgmt_portal_select_team
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_select_team'
helpdesk_mgmt_portal_team_id_required
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_team_id_required'
helpdesk_mgmt_ticket_auto_assign
Boolean
readonly=False
related='company_id.helpdesk_mgmt_ticket_auto_assign'
No public methods.
helpdesk_ticket_active_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket active count'
helpdesk_ticket_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket count'
helpdesk_ticket_count_string
Char
compute='_compute_helpdesk_ticket_count'
string='Tickets'
helpdesk_ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='partner_id'
string='Related tickets'
action_view_helpdesk_tickets(self)
helpdesk_team_ids
Many2many → helpdesk.ticket.team
column1='res_users_id'
column2='helpdesk_ticket_team_id'
comodel_name='helpdesk.ticket.team'
relation='helpdesk_ticket_team_res_users_rel'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/helpdesk |
| GIT | |
| GIT | https://github.com/OCA/helpdesk.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/helpdesk/tree/18.0/helpdesk_mgmt |
| VERSION | |
| VERSION | 1.17.1 |
| CATEGORY | |
| CATEGORY | After-Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, Enric Tobella, Carlos Lopez, Yann Papouin, Víctor Martínez, Weblate, OCA-git-bot, Iván Todorovich, oca-ci, Vincent Van Rossem, pilarvargas-tecnativa, Marcel Savegnago, Luis Rodriguez, Anjeel Haria, juancarlosonate-tecnativa, JasminSForgeFlow, Iria Alonso, David Bañón, christian-ramos-tecnativa, david-banon-tecnativa, Dante Pereyra, Laura Pérez // Solvos, Martinez Julien |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/helpdesk |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:13 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - html_editor - portal - web_editor - http_routing - auth_signup |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module adds Helpdesk functionality in Odoo. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
helpdesk_ticket_kanban_view |
helpdesk.ticket.team.kanban | helpdesk.ticket.team | kanban | New |
helpdesk_ticket_view_search |
helpdesk.ticket.view.search | helpdesk.ticket | search | New |
helpdesk_ticket_views_pivot |
helpdesk.ticket.view.pivot | helpdesk.ticket | pivot | New |
portal_create_ticket |
Create Ticket | ir.ui.view | qweb | New |
portal_docs_entry |
portal_docs_entry | ir.ui.view | qweb | Inherits portal.portal_docs_entry |
portal_helpdesk_ticket_page |
Ticket Portal Template | ir.ui.view | qweb | Inherits portal.portal_sidebar |
portal_layout |
Portal layout: ticket menu entry | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_home |
Portal My Home : ticket entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_tickets |
My Tickets | ir.ui.view | qweb | New |
portal_searchbar |
portal_searchbar | ir.ui.view | qweb | Inherits portal.portal_searchbar |
portal_ticket_list |
Ticket List | ir.ui.view | qweb | New |
portal_ticket_new_button |
portal_ticket_new_button | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits base.res_config_settings_view_form | |
ticket_view_form |
helpdesk.ticket.view.form | helpdesk.ticket | form | New |
ticket_view_tree |
helpdesk.ticket.view.list | helpdesk.ticket | list | New |
view_helpdesk_category_form |
view.helpdesk_category.form | helpdesk.ticket.category | form | New |
view_helpdesk_category_tree |
view.helpdesk_category.list | helpdesk.ticket.category | list | New |
view_helpdesk_channel_form |
view.helpdesk_channel.form | helpdesk.ticket.channel | form | New |
view_helpdesk_channel_tree |
view.helpdesk_channel.list | helpdesk.ticket.channel | list | New |
view_helpdesk_team_form |
view.helpdesk_team.form | helpdesk.ticket.team | form | New |
view_helpdesk_team_tree |
view.helpdesk_team.list | helpdesk.ticket.team | list | New |
view_helpdesk_ticket_category_search |
helpdesk.ticket.category.search | helpdesk.ticket.category | search | New |
view_helpdesk_ticket_channel_search |
helpdesk.ticket.channel.search | helpdesk.ticket.channel | search | New |
view_helpdesk_ticket_duplicate_form |
helpdesk.ticket.duplicate.wizard.form | helpdesk.ticket.duplicate.wizard | form | New |
view_helpdesk_ticket_kanban |
helpdesk.ticket.kanban | helpdesk.ticket | kanban | New |
view_helpdesk_ticket_stage_form |
helpdesk.ticket.stage.form | helpdesk.ticket.stage | form | New |
view_helpdesk_ticket_stage_search |
helpdesk.ticket.stage.search | helpdesk.ticket.stage | search | New |
view_helpdesk_ticket_stage_tree |
helpdesk.ticket.stage.list | helpdesk.ticket.stage | list | New |
view_helpdesk_ticket_tag_form |
helpdesk.ticket.tag.form | helpdesk.ticket.tag | form | New |
view_helpdesk_ticket_tag_search |
helpdesk.ticket.tag.search | helpdesk.ticket.tag | search | New |
view_helpdesk_ticket_tag_tree |
helpdesk.ticket.tag.list | helpdesk.ticket.tag | list | New |
view_helpdesk_ticket_team_search |
helpdesk.ticket.team.search | helpdesk.ticket.team | search | New |
view_partner_form |
view_partner_form | res.partner | div | Inherits base.view_partner_form |
active
Boolean
default=True
assigned_date
Datetime
copy=False
attachment_ids
One2many → ir.attachment
comodel_name='ir.attachment'
domain=[('res_model', '=', 'helpdesk.ticket')]
inverse_name='res_id'
string='Media Attachments'
category_id
Many2one → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
channel_id
Many2one → helpdesk.ticket.channel
comodel_name='helpdesk.ticket.channel'
help='Channel indicates where the source of a ticketcomes from (it could be a phone call, an email...)'
string='Channel'
closed
Boolean
related='stage_id.closed'
closed_date
Datetime
copy=False
color
Integer
string='Color Index'
commercial_partner_id
Many2one
related='partner_id.commercial_partner_id'
store=True
string='Commercial Partner'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
description
Html
required=True
sanitize_style=True
duplicate_count
Integer
compute='_compute_duplicate_count'
duplicate_id
Many2one → helpdesk.ticket
copy=False
string='Duplicate of'
tracking=True
args: 'helpdesk.ticket'
duplicate_ids
One2many → helpdesk.ticket
string='Duplicate tickets'
args: 'helpdesk.ticket', 'duplicate_id'
duplicate_tracking_enabled
Boolean
related='company_id.helpdesk_mgmt_duplicate_tracking'
kanban_state
Selection
selection=[('normal', 'Default'), ('done', 'Ready for next stage'), ('blocked', 'Blocked')]
last_stage_update
Datetime
default=fields.Datetime.now
name
Char
required=True
string='Title'
number
Char
default='/'
readonly=True
string='Ticket number'
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Contact'
partner_name
Char
priority
Selection
default='1'
selection=[('0', 'Low'), ('1', 'Medium'), ('2', 'High'), ('3', 'Very High')]
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of tickets.'
index=True
stage_id
Many2one → helpdesk.ticket.stage
comodel_name='helpdesk.ticket.stage'
compute='_compute_stage_id'
copy=False
domain="['|',('team_ids', '=', team_id),('team_ids','=',False)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
readonly=False
store=True
string='Stage'
tracking=True
tag_ids
Many2many → helpdesk.ticket.tag
comodel_name='helpdesk.ticket.tag'
string='Tags'
team_id
Many2one → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
compute='_compute_team_id'
index=True
readonly=False
store=True
string='Team'
unattended
Boolean
related='stage_id.unattended'
store=True
user_id
Many2one → res.users
comodel_name='res.users'
compute='_compute_user_id'
domain="team_id and [('share', '=', False),('id', 'in', user_ids)] or [('share', '=', False)]"
index=True
readonly=False
store=True
string='Assigned user'
tracking=True
user_ids
Many2many → res.users
comodel_name='res.users'
related='team_id.user_ids'
string='Users'
action_duplicate_tickets(self)
action_open_duplicate_wizard(self)
action_view_duplicates(self)
assign_to_me(self)
copy(self, default=None)
create(self, vals_list)
default_get(self, fields)
message_new(self, msg, custom_values=None)
message_update(self, msg, update_vals=None)
write(self, vals)
active
Boolean
default=True
child_id
One2many → helpdesk.ticket.category
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
complete_name
Char
compute='_compute_complete_name'
recursive=True
search='_search_complete_name'
name
Char
required=True
translate=True
parent_id
Many2one → helpdesk.ticket.category
index=True
ondelete='cascade'
args: 'helpdesk.ticket.category', 'Parent Category'
parent_path
Char
index=True
sequence
Integer
default=10
show_in_portal
Boolean
default=True
No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
translate=True
sequence
Integer
default=10
No public methods.
duplicate_of_id
Many2one → helpdesk.ticket
required=True
args: 'helpdesk.ticket'
target_stage_id
Many2one → helpdesk.ticket.stage
ticket_id
Many2one → helpdesk.ticket
required=True
args: 'helpdesk.ticket'
action_confirm(self)
active
Boolean
default=True
close_from_portal
Boolean
help='Display button in portal ticket form to allow closing ticket with this stage as target.'
closed
Boolean
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
description
Html
sanitize_style=True
translate=True
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
string='Folded in Kanban'
mail_template_id
Many2one → mail.template
comodel_name='mail.template'
domain=[('model', '=', 'helpdesk.ticket')]
help='If set an email will be sent to the customer when the ticketreaches this step.'
string='Email Template'
name
Char
required=True
string='Stage Name'
translate=True
sequence
Integer
default=1
team_ids
Many2many → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Specific team that uses this stage. If it is empty all teams could uses'
string='Helpdesk Teams'
unattended
Boolean
No public methods.
active
Boolean
default=True
color
Integer
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
translate=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
alias_id
Many2one → mail.alias
comodel_name='mail.alias'
help='The email address associated with this channel. New emails received will automatically create new tickets assigned to the channel.'
ondelete='restrict'
required=True
string='Email'
category_ids
Many2many → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
color
Integer
default=0
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
complete_name
Char
compute='_compute_complete_name'
recursive=True
search='_search_complete_name'
name
Char
required=True
translate=True
parent_id
Many2one → helpdesk.ticket.team
index=True
string='Parent Team'
args: 'helpdesk.ticket.team'
parent_path
Char
index=True
sequence
Integer
default=10
show_in_portal
Boolean
default=True
help='Allow to select this team when creating a new ticket in the portal.'
string='Show in portal form'
ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='team_id'
string='Tickets'
todo_ticket_count
Integer
compute='_compute_todo_tickets'
string='Number of tickets'
todo_ticket_count_high_priority
Integer
compute='_compute_todo_tickets'
string='Number of tickets in high priority'
todo_ticket_count_unassigned
Integer
compute='_compute_todo_tickets'
string='Number of tickets unassigned'
todo_ticket_count_unattended
Integer
compute='_compute_todo_tickets'
string='Number of tickets unattended'
user_id
Many2one → res.users
check_company=True
comodel_name='res.users'
string='Team Leader'
user_ids
Many2many → res.users
column1='helpdesk_ticket_team_id'
column2='res_users_id'
comodel_name='res.users'
relation='helpdesk_ticket_team_res_users_rel'
string='Members'
retrieve_dashboard(self)
No new fields.
Public methods (0)No public methods.
helpdesk_mgmt_duplicate_ticket_stage_id
Many2one → helpdesk.ticket.stage
comodel_name='helpdesk.ticket.stage'
default=False
string='Move duplicate tickets to this stage'
helpdesk_mgmt_duplicate_tracking
Boolean
default=False
string='Enable duplicate ticket tracking.'
helpdesk_mgmt_portal_category_id_required
Boolean
default=True
string='Required Category field in Helpdesk portal'
helpdesk_mgmt_portal_select_category
Boolean
string='Select category in Helpdesk portal'
helpdesk_mgmt_portal_select_team
Boolean
string='Select team in Helpdesk portal'
helpdesk_mgmt_portal_team_id_required
Boolean
default=True
string='Required Team field in Helpdesk portal'
helpdesk_mgmt_ticket_auto_assign
Boolean
default=True
string='Auto assign tickets'
No public methods.
helpdesk_mgmt_duplicate_ticket_stage_id
Many2one
readonly=False
related='company_id.helpdesk_mgmt_duplicate_ticket_stage_id'
helpdesk_mgmt_duplicate_tracking
Boolean
readonly=False
related='company_id.helpdesk_mgmt_duplicate_tracking'
helpdesk_mgmt_portal_category_id_required
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_category_id_required'
helpdesk_mgmt_portal_select_category
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_select_category'
helpdesk_mgmt_portal_select_team
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_select_team'
helpdesk_mgmt_portal_team_id_required
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_team_id_required'
helpdesk_mgmt_ticket_auto_assign
Boolean
readonly=False
related='company_id.helpdesk_mgmt_ticket_auto_assign'
No public methods.
helpdesk_ticket_active_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket active count'
helpdesk_ticket_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket count'
helpdesk_ticket_count_string
Char
compute='_compute_helpdesk_ticket_count'
string='Tickets'
helpdesk_ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='partner_id'
string='Related tickets'
action_view_helpdesk_tickets(self)
helpdesk_team_ids
Many2many → helpdesk.ticket.team
column1='res_users_id'
column2='helpdesk_ticket_team_id'
comodel_name='helpdesk.ticket.team'
relation='helpdesk_ticket_team_res_users_rel'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/helpdesk |
| GIT | |
| GIT | https://github.com/OCA/helpdesk.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/helpdesk/tree/17.0/helpdesk_mgmt |
| VERSION | |
| VERSION | 1.10.4 |
| CATEGORY | |
| CATEGORY | After-Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Enric Tobella, Carlos Lopez, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Alvaro, pilarvargas-tecnativa, Marcel Savegnago, Gil Arasa Verge, Luis Rodriguez, PicchiSeba, Antoni Marroig Campomar, juancarlosonate-tecnativa, Iria Alonso, david-banon-tecnativa, Dante Pereyra, Laura Pérez // Solvos |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/helpdesk |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:06 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - portal - web_editor - http_routing - auth_signup |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module adds Helpdesk functionality in Odoo. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
helpdesk_ticket_kanban_view |
helpdesk.ticket.team.kanban | helpdesk.ticket.team | kanban | New |
helpdesk_ticket_view_search |
helpdesk.ticket.view.search | helpdesk.ticket | search | New |
helpdesk_ticket_views_pivot |
helpdesk.ticket.view.pivot | helpdesk.ticket | pivot | New |
portal_create_ticket |
Create Ticket | ir.ui.view | qweb | New |
portal_helpdesk_ticket_page |
Ticket Portal Template | ir.ui.view | qweb | New |
portal_layout |
Portal layout: ticket menu entry | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_home |
Portal My Home : ticket entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_tickets |
My Tickets | ir.ui.view | qweb | New |
portal_ticket_list |
Ticket List | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits base.res_config_settings_view_form | |
ticket_view_form |
helpdesk.ticket.view.form | helpdesk.ticket | form | New |
ticket_view_tree |
helpdesk.ticket.view.tree | helpdesk.ticket | tree | New |
view_helpdesk_category_form |
view.helpdesk_category.form | helpdesk.ticket.category | form | New |
view_helpdesk_category_tree |
view.helpdesk_category.tree | helpdesk.ticket.category | tree | New |
view_helpdesk_channel_form |
view.helpdesk_channel.form | helpdesk.ticket.channel | form | New |
view_helpdesk_channel_tree |
view.helpdesk_channel.tree | helpdesk.ticket.channel | tree | New |
view_helpdesk_team_form |
view.helpdesk_team.form | helpdesk.ticket.team | form | New |
view_helpdesk_team_tree |
view.helpdesk_team.tree | helpdesk.ticket.team | tree | New |
view_helpdesk_ticket_category_search |
helpdesk.ticket.category.search | helpdesk.ticket.category | search | New |
view_helpdesk_ticket_channel_search |
helpdesk.ticket.channel.search | helpdesk.ticket.channel | search | New |
view_helpdesk_ticket_kanban |
helpdesk.ticket.kanban | helpdesk.ticket | kanban | New |
view_helpdesk_ticket_stage_form |
helpdesk.ticket.stage.form | helpdesk.ticket.stage | form | New |
view_helpdesk_ticket_stage_search |
helpdesk.ticket.stage.search | helpdesk.ticket.stage | search | New |
view_helpdesk_ticket_stage_tree |
helpdesk.ticket.stage.tree | helpdesk.ticket.stage | tree | New |
view_helpdesk_ticket_tag_form |
helpdesk.ticket.tag.form | helpdesk.ticket.tag | form | New |
view_helpdesk_ticket_tag_search |
helpdesk.ticket.tag.search | helpdesk.ticket.tag | search | New |
view_helpdesk_ticket_tag_tree |
helpdesk.ticket.tag.tree | helpdesk.ticket.tag | tree | New |
view_helpdesk_ticket_team_search |
helpdesk.ticket.team.search | helpdesk.ticket.team | search | New |
view_partner_form |
view_partner_form | res.partner | div | Inherits base.view_partner_form |
active
Boolean
default=True
assigned_date
Datetime
attachment_ids
One2many → ir.attachment
comodel_name='ir.attachment'
domain=[('res_model', '=', 'helpdesk.ticket')]
inverse_name='res_id'
string='Media Attachments'
category_id
Many2one → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
channel_id
Many2one → helpdesk.ticket.channel
comodel_name='helpdesk.ticket.channel'
help='Channel indicates where the source of a ticketcomes from (it could be a phone call, an email...)'
string='Channel'
closed
Boolean
related='stage_id.closed'
closed_date
Datetime
color
Integer
string='Color Index'
commercial_partner_id
Many2one
related='partner_id.commercial_partner_id'
store=True
string='Commercial Partner'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
description
Html
required=True
sanitize_style=True
kanban_state
Selection
selection=[('normal', 'Default'), ('done', 'Ready for next stage'), ('blocked', 'Blocked')]
last_stage_update
Datetime
default=fields.Datetime.now
name
Char
required=True
string='Title'
number
Char
default='/'
readonly=True
string='Ticket number'
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Contact'
partner_name
Char
priority
Selection
default='1'
selection=[('0', 'Low'), ('1', 'Medium'), ('2', 'High'), ('3', 'Very High')]
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of tickets.'
index=True
stage_id
Many2one → helpdesk.ticket.stage
comodel_name='helpdesk.ticket.stage'
compute='_compute_stage_id'
copy=False
domain="['|',('team_ids', '=', team_id),('team_ids','=',False)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
readonly=False
store=True
string='Stage'
tracking=True
tag_ids
Many2many → helpdesk.ticket.tag
comodel_name='helpdesk.ticket.tag'
string='Tags'
team_id
Many2one → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
compute='_compute_team_id'
index=True
readonly=False
store=True
string='Team'
unattended
Boolean
related='stage_id.unattended'
store=True
user_id
Many2one → res.users
comodel_name='res.users'
compute='_compute_user_id'
domain="team_id and [('share', '=', False),('id', 'in', user_ids)] or [('share', '=', False)]"
index=True
readonly=False
store=True
string='Assigned user'
tracking=True
user_ids
Many2many → res.users
comodel_name='res.users'
related='team_id.user_ids'
string='Users'
action_duplicate_tickets(self)
assign_to_me(self)
copy(self, default=None)
create(self, vals_list)
default_get(self, fields)
message_new(self, msg, custom_values=None)
message_update(self, msg, update_vals=None)
write(self, vals)
active
Boolean
default=True
child_id
One2many → helpdesk.ticket.category
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
complete_name
Char
compute='_compute_complete_name'
recursive=True
store=True
name
Char
required=True
translate=True
parent_id
Many2one → helpdesk.ticket.category
index=True
ondelete='cascade'
args: 'helpdesk.ticket.category', 'Parent Category'
parent_path
Char
index=True
unaccent=False
sequence
Integer
default=10
show_in_portal
Boolean
default=True
No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
translate=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
close_from_portal
Boolean
help='Display button in portal ticket form to allow closing ticket with this stage as target.'
closed
Boolean
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
description
Html
sanitize_style=True
translate=True
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
string='Folded in Kanban'
mail_template_id
Many2one → mail.template
comodel_name='mail.template'
domain=[('model', '=', 'helpdesk.ticket')]
help='If set an email will be sent to the customer when the ticketreaches this step.'
string='Email Template'
name
Char
required=True
string='Stage Name'
translate=True
sequence
Integer
default=1
team_ids
Many2many → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Specific team that uses this stage. If it is empty all teams could uses'
string='Helpdesk Teams'
unattended
Boolean
No public methods.
active
Boolean
default=True
color
Integer
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
translate=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
alias_id
Many2one → mail.alias
comodel_name='mail.alias'
help='The email address associated with this channel. New emails received will automatically create new tickets assigned to the channel.'
ondelete='restrict'
required=True
string='Email'
category_ids
Many2many → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
color
Integer
default=0
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
complete_name
Char
compute='_compute_complete_name'
recursive=True
store=True
name
Char
required=True
parent_id
Many2one → helpdesk.ticket.team
index=True
string='Parent Team'
args: 'helpdesk.ticket.team'
parent_path
Char
index=True
unaccent=False
sequence
Integer
default=10
show_in_portal
Boolean
default=True
help='Allow to select this team when creating a new ticket in the portal.'
string='Show in portal form'
ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='team_id'
string='Tickets'
todo_ticket_count
Integer
compute='_compute_todo_tickets'
string='Number of tickets'
todo_ticket_count_high_priority
Integer
compute='_compute_todo_tickets'
string='Number of tickets in high priority'
todo_ticket_count_unassigned
Integer
compute='_compute_todo_tickets'
string='Number of tickets unassigned'
todo_ticket_count_unattended
Integer
compute='_compute_todo_tickets'
string='Number of tickets unattended'
user_id
Many2one → res.users
check_company=True
comodel_name='res.users'
string='Team Leader'
user_ids
Many2many → res.users
column1='helpdesk_ticket_team_id'
column2='res_users_id'
comodel_name='res.users'
relation='helpdesk_ticket_team_res_users_rel'
string='Members'
No public methods.
No new fields.
Public methods (0)No public methods.
helpdesk_mgmt_portal_category_id_required
Boolean
default=True
string='Required Category field in Helpdesk portal'
helpdesk_mgmt_portal_select_team
Boolean
string='Select team in Helpdesk portal'
helpdesk_mgmt_portal_team_id_required
Boolean
default=True
string='Required Team field in Helpdesk portal'
helpdesk_mgmt_ticket_auto_assign
Boolean
default=True
string='Auto assign tickets'
No public methods.
helpdesk_mgmt_portal_category_id_required
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_category_id_required'
helpdesk_mgmt_portal_select_team
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_select_team'
helpdesk_mgmt_portal_team_id_required
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_team_id_required'
helpdesk_mgmt_ticket_auto_assign
Boolean
readonly=False
related='company_id.helpdesk_mgmt_ticket_auto_assign'
No public methods.
helpdesk_ticket_active_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket active count'
helpdesk_ticket_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket count'
helpdesk_ticket_count_string
Char
compute='_compute_helpdesk_ticket_count'
string='Tickets'
helpdesk_ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='partner_id'
string='Related tickets'
action_view_helpdesk_tickets(self)
helpdesk_team_ids
Many2many → helpdesk.ticket.team
column1='res_users_id'
column2='helpdesk_ticket_team_id'
comodel_name='helpdesk.ticket.team'
relation='helpdesk_ticket_team_res_users_rel'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/helpdesk |
| GIT | |
| GIT | https://github.com/OCA/helpdesk.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/helpdesk/tree/16.0/helpdesk_mgmt |
| VERSION | |
| VERSION | 2.13.1 |
| CATEGORY | |
| CATEGORY | After-Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| COMMITTERS | |
| COMMITTERS | Ronald Portier, eLBati, Pedro M. Baeza, Enric Tobella, Yann Papouin, Víctor Martínez, Weblate, OCA-git-bot, Florent THOMAS, oca-ci, Victor Laskurain, Marcel Savegnago, David Alonso // Solvos, Carolina Fernandez, Vincent Hatakeyama, Luis Rodriguez, PicchiSeba, Anjeel Haria, CristianoMafraJunior, Mohajiro, Nicolas Delbovier, Zu83, Joan Ribot Terrasa |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/helpdesk |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - portal - web_editor - http_routing - auth_signup |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
helpdesk_ticket_kanban_view |
helpdesk.ticket.team.kanban | helpdesk.ticket.team | kanban | New |
helpdesk_ticket_view_search |
helpdesk.ticket.view.search | helpdesk.ticket | search | New |
helpdesk_ticket_views_pivot |
helpdesk.ticket.view.pivot | helpdesk.ticket | pivot | New |
portal_create_ticket |
Create Ticket | ir.ui.view | qweb | New |
portal_docs_entry_ticket_button |
portal_docs_entry_ticket_button | ir.ui.view | qweb | Inherits portal.portal_docs_entry |
portal_helpdesk_ticket_page |
Ticket Portal Template | ir.ui.view | qweb | New |
portal_layout |
Portal layout: ticket menu entry | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_home_tickets_entry |
Show Tickets | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_tickets |
My Tickets | ir.ui.view | qweb | New |
portal_ticket_list |
Ticket List | ir.ui.view | qweb | New |
portal_ticket_new_button |
portal_ticket_new_button | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits base.res_config_settings_view_form | |
ticket_view_form |
helpdesk.ticket.view.form | helpdesk.ticket | form | New |
ticket_view_tree |
helpdesk.ticket.view.tree | helpdesk.ticket | tree | New |
view_helpdesk_category_form |
view.helpdesk_category.form | helpdesk.ticket.category | form | New |
view_helpdesk_category_tree |
view.helpdesk_category.tree | helpdesk.ticket.category | tree | New |
view_helpdesk_channel_form |
view.helpdesk_channel.form | helpdesk.ticket.channel | form | New |
view_helpdesk_channel_tree |
view.helpdesk_channel.tree | helpdesk.ticket.channel | tree | New |
view_helpdesk_team_form |
view.helpdesk_team.form | helpdesk.ticket.team | form | New |
view_helpdesk_team_tree |
view.helpdesk_team.tree | helpdesk.ticket.team | tree | New |
view_helpdesk_ticket_category_search |
helpdesk.ticket.category.search | helpdesk.ticket.category | search | New |
view_helpdesk_ticket_channel_search |
helpdesk.ticket.channel.search | helpdesk.ticket.channel | search | New |
view_helpdesk_ticket_kanban |
helpdesk.ticket.kanban | helpdesk.ticket | kanban | New |
view_helpdesk_ticket_stage_form |
helpdesk.ticket.stage.form | helpdesk.ticket.stage | form | New |
view_helpdesk_ticket_stage_search |
helpdesk.ticket.stage.search | helpdesk.ticket.stage | search | New |
view_helpdesk_ticket_stage_tree |
helpdesk.ticket.stage.tree | helpdesk.ticket.stage | tree | New |
view_helpdesk_ticket_tag_form |
helpdesk.ticket.tag.form | helpdesk.ticket.tag | form | New |
view_helpdesk_ticket_tag_search |
helpdesk.ticket.tag.search | helpdesk.ticket.tag | search | New |
view_helpdesk_ticket_tag_tree |
helpdesk.ticket.tag.tree | helpdesk.ticket.tag | tree | New |
view_helpdesk_ticket_team_search |
helpdesk.ticket.team.search | helpdesk.ticket.team | search | New |
view_partner_form |
view_partner_form | res.partner | div | Inherits base.view_partner_form |
active
Boolean
default=True
assigned_date
Datetime
attachment_ids
One2many → ir.attachment
comodel_name='ir.attachment'
domain=[('res_model', '=', 'helpdesk.ticket')]
inverse_name='res_id'
string='Media Attachments'
category_id
Many2one → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
channel_id
Many2one → helpdesk.ticket.channel
comodel_name='helpdesk.ticket.channel'
help='Channel indicates where the source of a ticketcomes from (it could be a phone call, an email...)'
string='Channel'
closed
Boolean
related='stage_id.closed'
closed_date
Datetime
color
Integer
string='Color Index'
commercial_partner_id
Many2one
related='partner_id.commercial_partner_id'
store=True
string='Commercial Partner'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
description
Html
required=True
sanitize_style=True
kanban_state
Selection
selection=[('normal', 'Default'), ('done', 'Ready for next stage'), ('blocked', 'Blocked')]
last_stage_update
Datetime
default=fields.Datetime.now
name
Char
required=True
string='Title'
number
Char
default='/'
readonly=True
string='Ticket number'
partner_email
Char
compute='_compute_partner_email'
readonly=False
store=True
string='Email'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
string='Contact'
partner_name
Char
compute='_compute_partner_name'
readonly=False
store=True
priority
Selection
default='1'
selection=[('0', 'Low'), ('1', 'Medium'), ('2', 'High'), ('3', 'Very High')]
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of tickets.'
index=True
stage_id
Many2one → helpdesk.ticket.stage
comodel_name='helpdesk.ticket.stage'
compute='_compute_stage_id'
copy=False
domain="['|',('team_ids', '=', team_id),('team_ids','=',False)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
readonly=False
store=True
string='Stage'
tracking=True
tag_ids
Many2many → helpdesk.ticket.tag
comodel_name='helpdesk.ticket.tag'
ondelete='restrict'
string='Tags'
team_id
Many2one → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
index=True
string='Team'
unattended
Boolean
related='stage_id.unattended'
store=True
user_id
Many2one → res.users
comodel_name='res.users'
compute='_compute_user_id'
domain="team_id and [('share', '=', False),('id', 'in', user_ids)] or [('share', '=', False)]"
index=True
readonly=False
store=True
string='Assigned user'
tracking=True
user_ids
Many2many → res.users
comodel_name='res.users'
related='team_id.user_ids'
string='Users'
action_duplicate_tickets(self)
assign_to_me(self)
copy(self, default=None)
create(self, vals_list)
message_new(self, msg, custom_values=None)
message_update(self, msg, update_vals=None)
name_get(self)
write(self, vals)
active
Boolean
default=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
default_team_id
Many2one → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
string='Default team'
name
Char
required=True
translate=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
translate=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
close_from_portal
Boolean
help='Display button in portal ticket form to allow closing ticket with this stage as target.'
closed
Boolean
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
description
Html
sanitize_style=True
translate=True
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
string='Folded in Kanban'
mail_template_id
Many2one → mail.template
comodel_name='mail.template'
domain=[('model', '=', 'helpdesk.ticket')]
help='If set an email will be sent to the customer when the ticketreaches this step.'
string='Email Template'
name
Char
required=True
string='Stage Name'
translate=True
sequence
Integer
default=1
team_ids
Many2many → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Specific team that uses this stage. If it is empty all teams could uses'
string='Helpdesk Teams'
unattended
Boolean
No public methods.
active
Boolean
default=True
color
Integer
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
translate=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
alias_id
Many2one → mail.alias
comodel_name='mail.alias'
help='The email address associated with this channel. New emails received will automatically create new tickets assigned to the channel.'
ondelete='restrict'
required=True
string='Email'
category_ids
Many2many → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
color
Integer
default=0
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
sequence
Integer
default=10
show_in_portal
Boolean
default=True
help='Allow to select this team when creating a new ticket in the portal.'
string='Show in portal form'
ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='team_id'
string='Tickets'
todo_ticket_count
Integer
compute='_compute_todo_tickets'
string='Number of tickets'
todo_ticket_count_high_priority
Integer
compute='_compute_todo_tickets'
string='Number of tickets in high priority'
todo_ticket_count_unassigned
Integer
compute='_compute_todo_tickets'
string='Number of tickets unassigned'
todo_ticket_count_unattended
Integer
compute='_compute_todo_tickets'
string='Number of tickets unattended'
user_id
Many2one → res.users
check_company=True
comodel_name='res.users'
string='Team Leader'
user_ids
Many2many → res.users
column1='helpdesk_ticket_team_id'
column2='res_users_id'
comodel_name='res.users'
relation='helpdesk_ticket_team_res_users_rel'
string='Members'
No public methods.
No new fields.
Public methods (0)No public methods.
helpdesk_mgmt_portal_category_id_required
Boolean
default=True
string='Required Category field in Helpdesk portal'
helpdesk_mgmt_portal_select_team
Boolean
string='Select team in Helpdesk portal'
helpdesk_mgmt_portal_team_id_required
Boolean
default=True
string='Required Team field in Helpdesk portal'
No public methods.
helpdesk_mgmt_portal_category_id_required
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_category_id_required'
helpdesk_mgmt_portal_select_team
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_select_team'
helpdesk_mgmt_portal_team_id_required
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_team_id_required'
No public methods.
helpdesk_ticket_active_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket active count'
helpdesk_ticket_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket count'
helpdesk_ticket_count_string
Char
compute='_compute_helpdesk_ticket_count'
string='Tickets'
helpdesk_ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='partner_id'
string='Related tickets'
action_view_helpdesk_tickets(self)
helpdesk_team_ids
Many2many → helpdesk.ticket.team
column1='res_users_id'
column2='helpdesk_ticket_team_id'
comodel_name='helpdesk.ticket.team'
relation='helpdesk_ticket_team_res_users_rel'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/helpdesk |
| GIT | |
| GIT | https://github.com/OCA/helpdesk.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/helpdesk/tree/15.0/helpdesk_mgmt |
| VERSION | |
| VERSION | 4.3.5 |
| CATEGORY | |
| CATEGORY | After-Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| COMMITTERS | |
| COMMITTERS | eLBati, Pedro M. Baeza, GitHub, Lois Rilo, David Alonso, Yann Papouin, OCA Transbot, Miquel Raïch, Víctor Martínez, Weblate, OCA-git-bot, David, oca-ci, mariadforgeflow, Jorge Luis Quinteros, Carlos Roca, David Alonso // Solvos, Carolina Fernandez, Fernando La Chica, Vincent Hatakeyama, DavidJForgeFlow, Jacob Oldfield, Houzéfa Abbasbhay |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/helpdesk |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:35 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - portal - web_editor - http_routing - auth_signup |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
helpdesk_ticket_kanban_view |
helpdesk.ticket.team.kanban | helpdesk.ticket.team | kanban | New |
helpdesk_ticket_view_search |
helpdesk.ticket.view.search | helpdesk.ticket | search | New |
helpdesk_ticket_views_pivot |
helpdesk.ticket.view.pivot | helpdesk.ticket | pivot | New |
portal_create_ticket |
Create Ticket | ir.ui.view | qweb | New |
portal_helpdesk_ticket_page |
Ticket Portal Template | ir.ui.view | qweb | New |
portal_layout |
Portal layout: ticket menu entry | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_home |
Portal My Home : ticket entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_tickets |
My Tickets | ir.ui.view | qweb | New |
portal_ticket_list |
Ticket List | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits base.res_config_settings_view_form | |
ticket_view_form |
helpdesk.ticket.view.form | helpdesk.ticket | form | New |
ticket_view_tree |
helpdesk.ticket.view.tree | helpdesk.ticket | tree | New |
view_helpdesk_category_form |
view.helpdesk_category.form | helpdesk.ticket.category | form | New |
view_helpdesk_category_tree |
view.helpdesk_category.tree | helpdesk.ticket.category | tree | New |
view_helpdesk_channel_form |
view.helpdesk_channel.form | helpdesk.ticket.channel | form | New |
view_helpdesk_channel_tree |
view.helpdesk_channel.tree | helpdesk.ticket.channel | tree | New |
view_helpdesk_team_form |
view.helpdesk_team.form | helpdesk.ticket.team | form | New |
view_helpdesk_team_tree |
view.helpdesk_team.tree | helpdesk.ticket.team | tree | New |
view_helpdesk_ticket_category_search |
helpdesk.ticket.category.search | helpdesk.ticket.category | search | New |
view_helpdesk_ticket_channel_search |
helpdesk.ticket.channel.search | helpdesk.ticket.channel | search | New |
view_helpdesk_ticket_kanban |
helpdesk.ticket.kanban | helpdesk.ticket | kanban | New |
view_helpdesk_ticket_stage_form |
helpdesk.ticket.stage.form | helpdesk.ticket.stage | form | New |
view_helpdesk_ticket_stage_search |
helpdesk.ticket.stage.search | helpdesk.ticket.stage | search | New |
view_helpdesk_ticket_stage_tree |
helpdesk.ticket.stage.tree | helpdesk.ticket.stage | tree | New |
view_helpdesk_ticket_tag_form |
helpdesk.ticket.tag.form | helpdesk.ticket.tag | form | New |
view_helpdesk_ticket_tag_search |
helpdesk.ticket.tag.search | helpdesk.ticket.tag | search | New |
view_helpdesk_ticket_tag_tree |
helpdesk.ticket.tag.tree | helpdesk.ticket.tag | tree | New |
view_helpdesk_ticket_team_search |
helpdesk.ticket.team.search | helpdesk.ticket.team | search | New |
view_partner_form |
view_partner_form | res.partner | div | Inherits base.view_partner_form |
active
Boolean
default=True
assigned_date
Datetime
attachment_ids
One2many → ir.attachment
comodel_name='ir.attachment'
domain=[('res_model', '=', 'helpdesk.ticket')]
inverse_name='res_id'
string='Media Attachments'
category_id
Many2one → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
channel_id
Many2one → helpdesk.ticket.channel
comodel_name='helpdesk.ticket.channel'
help='Channel indicates where the source of a ticketcomes from (it could be a phone call, an email...)'
string='Channel'
closed
Boolean
related='stage_id.closed'
closed_date
Datetime
color
Integer
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
description
Html
required=True
sanitize_style=True
kanban_state
Selection
selection=[('normal', 'Default'), ('done', 'Ready for next stage'), ('blocked', 'Blocked')]
last_stage_update
Datetime
default=fields.Datetime.now
name
Char
required=True
string='Title'
number
Char
default='/'
readonly=True
string='Ticket number'
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Contact'
partner_name
Char
priority
Selection
default='1'
selection=[('0', 'Low'), ('1', 'Medium'), ('2', 'High'), ('3', 'Very High')]
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of tickets.'
index=True
stage_id
Many2one → helpdesk.ticket.stage
comodel_name='helpdesk.ticket.stage'
compute='_compute_stage_id'
copy=False
domain="['|',('team_ids', '=', team_id),('team_ids','=',False)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
readonly=False
store=True
string='Stage'
tracking=True
tag_ids
Many2many → helpdesk.ticket.tag
comodel_name='helpdesk.ticket.tag'
string='Tags'
team_id
Many2one → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
index=True
string='Team'
unattended
Boolean
related='stage_id.unattended'
store=True
user_id
Many2one → res.users
comodel_name='res.users'
domain="team_id and [('share', '=', False),('id', 'in', user_ids)] or [('share', '=', False)]"
index=True
string='Assigned user'
tracking=True
user_ids
Many2many → res.users
comodel_name='res.users'
related='team_id.user_ids'
string='Users'
action_duplicate_tickets(self)
assign_to_me(self)
copy(self, default=None)
create(self, vals_list)
message_new(self, msg, custom_values=None)
message_update(self, msg, update_vals=None)
name_get(self)
write(self, vals)
active
Boolean
default=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
translate=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
close_from_portal
Boolean
help='Display button in portal ticket form to allow closing ticket with this stage as target.'
closed
Boolean
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
description
Html
sanitize_style=True
translate=True
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
string='Folded in Kanban'
mail_template_id
Many2one → mail.template
comodel_name='mail.template'
domain=[('model', '=', 'helpdesk.ticket')]
help='If set an email will be sent to the customer when the ticketreaches this step.'
string='Email Template'
name
Char
required=True
string='Stage Name'
translate=True
sequence
Integer
default=1
team_ids
Many2many → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Specific team that uses this stage. If it is empty all teams could uses'
string='Helpdesk Teams'
unattended
Boolean
No public methods.
active
Boolean
default=True
color
Integer
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
No public methods.
active
Boolean
default=True
alias_id
Many2one → mail.alias
comodel_name='mail.alias'
help='The email address associated with this channel. New emails received will automatically create new tickets assigned to the channel.'
ondelete='restrict'
required=True
string='Email'
category_ids
Many2many → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
color
Integer
default=0
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
sequence
Integer
default=10
show_in_portal
Boolean
default=True
help='Allow to select this team when creating a new ticket in the portal.'
string='Show in portal form'
ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='team_id'
string='Tickets'
todo_ticket_count
Integer
compute='_compute_todo_tickets'
string='Number of tickets'
todo_ticket_count_high_priority
Integer
compute='_compute_todo_tickets'
string='Number of tickets in high priority'
todo_ticket_count_unassigned
Integer
compute='_compute_todo_tickets'
string='Number of tickets unassigned'
todo_ticket_count_unattended
Integer
compute='_compute_todo_tickets'
string='Number of tickets unattended'
user_id
Many2one → res.users
check_company=True
comodel_name='res.users'
string='Team Leader'
user_ids
Many2many → res.users
column1='helpdesk_ticket_team_id'
column2='res_users_id'
comodel_name='res.users'
relation='helpdesk_ticket_team_res_users_rel'
string='Members'
No public methods.
No new fields.
Public methods (0)No public methods.
helpdesk_mgmt_portal_category_id_required
Boolean
default=True
string='Required Category field in Helpdesk portal'
helpdesk_mgmt_portal_select_team
Boolean
string='Select team in Helpdesk portal'
helpdesk_mgmt_portal_team_id_required
Boolean
default=True
string='Required Team field in Helpdesk portal'
No public methods.
helpdesk_mgmt_portal_category_id_required
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_category_id_required'
helpdesk_mgmt_portal_select_team
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_select_team'
helpdesk_mgmt_portal_team_id_required
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_team_id_required'
No public methods.
helpdesk_ticket_active_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket active count'
helpdesk_ticket_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket count'
helpdesk_ticket_count_string
Char
compute='_compute_helpdesk_ticket_count'
string='Tickets'
helpdesk_ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='partner_id'
string='Related tickets'
action_view_helpdesk_tickets(self)
helpdesk_team_ids
Many2many → helpdesk.ticket.team
column1='res_users_id'
column2='helpdesk_ticket_team_id'
comodel_name='helpdesk.ticket.team'
relation='helpdesk_ticket_team_res_users_rel'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/helpdesk |
| GIT | |
| GIT | https://github.com/OCA/helpdesk.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/helpdesk/tree/14.0/helpdesk_mgmt |
| VERSION | |
| VERSION | 2.14.1 |
| CATEGORY | |
| CATEGORY | After-Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, Enric Tobella, Lois Rilo, David Alonso, Yann Papouin, manu, OCA Transbot, Miquel Raïch, Víctor Martínez, Mathieu Benoit, oca-travis, Weblate, OCA-git-bot, Mourad, Pierrick Brun, David, oca-ci, mariadforgeflow, Marcel Savegnago, David Alonso // Solvos, DavidJForgeFlow, MarcBForgeFlow, oca-git-bot, Guillermo Gallego, Florian Mounier, Alessio Renda, PicchiSeba, victor ekstrom, Michael Telahun, JorgeQuinteros |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/helpdesk |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:01 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - portal - web_editor - http_routing - auth_signup |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
helpdesk_ticket_kanban_view |
helpdesk.ticket.team.kanban | helpdesk.ticket.team | kanban | New |
helpdesk_ticket_partner_view_form |
helpdesk.ticket.partner.view.form | helpdesk.ticket.partner | form | New |
helpdesk_ticket_view_search |
helpdesk.ticket.view.search | helpdesk.ticket | search | New |
helpdesk_ticket_views_pivot |
helpdesk.ticket.view.pivot | helpdesk.ticket | pivot | New |
portal_create_ticket |
Create Ticket | ir.ui.view | qweb | New |
portal_helpdesk_ticket_page |
Ticket Portal Template | ir.ui.view | qweb | New |
portal_layout |
Portal layout: ticket menu entry | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_home |
Portal My Home : ticket entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_tickets |
My Tickets | ir.ui.view | qweb | New |
portal_ticket_list |
Ticket List | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits base.res_config_settings_view_form | |
ticket_view_form |
helpdesk.ticket.view.form | helpdesk.ticket | form | New |
ticket_view_tree |
helpdesk.ticket.view.tree | helpdesk.ticket | tree | New |
view_helpdesk_category_form |
view.helpdesk_category.form | helpdesk.ticket.category | form | New |
view_helpdesk_category_tree |
view.helpdesk_category.tree | helpdesk.ticket.category | tree | New |
view_helpdesk_channel_form |
view.helpdesk_channel.form | helpdesk.ticket.channel | form | New |
view_helpdesk_channel_tree |
view.helpdesk_channel.tree | helpdesk.ticket.channel | tree | New |
view_helpdesk_team_form |
view.helpdesk_team.form | helpdesk.ticket.team | form | New |
view_helpdesk_team_tree |
view.helpdesk_team.tree | helpdesk.ticket.team | tree | New |
view_helpdesk_ticket_category_search |
helpdesk.ticket.category.search | helpdesk.ticket.category | search | New |
view_helpdesk_ticket_channel_search |
helpdesk.ticket.channel.search | helpdesk.ticket.channel | search | New |
view_helpdesk_ticket_kanban |
helpdesk.ticket.kanban | helpdesk.ticket | kanban | New |
view_helpdesk_ticket_stage_form |
helpdesk.ticket.stage.form | helpdesk.ticket.stage | form | New |
view_helpdesk_ticket_stage_search |
helpdesk.ticket.stage.search | helpdesk.ticket.stage | search | New |
view_helpdesk_ticket_stage_tree |
helpdesk.ticket.stage.tree | helpdesk.ticket.stage | tree | New |
view_helpdesk_ticket_tag_form |
helpdesk.ticket.tag.form | helpdesk.ticket.tag | form | New |
view_helpdesk_ticket_tag_search |
helpdesk.ticket.tag.search | helpdesk.ticket.tag | search | New |
view_helpdesk_ticket_tag_tree |
helpdesk.ticket.tag.tree | helpdesk.ticket.tag | tree | New |
view_helpdesk_ticket_team_search |
helpdesk.ticket.team.search | helpdesk.ticket.team | search | New |
view_partner_form |
view_partner_form | res.partner | div | Inherits base.view_partner_form |
active
Boolean
default=True
assigned_date
Datetime
string='Assigned Date'
attachment_ids
One2many → ir.attachment
comodel_name='ir.attachment'
domain=[('res_model', '=', 'helpdesk.ticket')]
inverse_name='res_id'
string='Media Attachments'
category_id
Many2one → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
channel_id
Many2one → helpdesk.ticket.channel
comodel_name='helpdesk.ticket.channel'
help='Channel indicates where the source of a ticketcomes from (it could be a phone call, an email...)'
string='Channel'
closed
Boolean
related='stage_id.closed'
closed_date
Datetime
string='Closed Date'
color
Integer
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
description
Html
required=True
sanitize_style=True
kanban_state
Selection
selection=[('normal', 'Default'), ('done', 'Ready for next stage'), ('blocked', 'Blocked')]
string='Kanban State'
last_stage_update
Datetime
default=fields.Datetime.now
string='Last Stage Update'
name
Char
required=True
string='Title'
number
Char
default='/'
readonly=True
string='Ticket number'
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Contact'
partner_lang
Selection
partner_name
Char
priority
Selection
default='1'
selection=[('0', 'Low'), ('1', 'Medium'), ('2', 'High'), ('3', 'Very High')]
string='Priority'
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of tickets.'
index=True
string='Sequence'
stage_id
Many2one → helpdesk.ticket.stage
comodel_name='helpdesk.ticket.stage'
copy=False
default=_get_default_stage_id
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
string='Stage'
tracking=True
tag_ids
Many2many → helpdesk.ticket.tag
comodel_name='helpdesk.ticket.tag'
string='Tags'
team_id
Many2one → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
string='Team'
unattended
Boolean
related='stage_id.unattended'
store=True
user_id
Many2one → res.users
comodel_name='res.users'
domain="team_id and [('share', '=', False),('id', 'in', user_ids)] or [('share', '=', False)]"
index=True
string='Assigned user'
tracking=True
user_ids
Many2many → res.users
comodel_name='res.users'
related='team_id.user_ids'
string='Users'
action_do_send_email(self)
action_duplicate_tickets(self)
action_send_email(self)
assign_to_me(self)
copy(self, default=None)
create(self, vals_list)
message_new(self, msg, custom_values=None)
message_update(self, msg, update_vals=None)
name_get(self)
write(self, vals)
active
Boolean
default=True
string='Active'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
default_team_id
Many2one → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
string='Default team'
name
Char
required=True
string='Name'
translate=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
sequence
Integer
default=10
No public methods.
action
Selection
required=True
string='Quotation Customer'
args: [('create', 'Create a new customer'), ('exist', 'Link to an existing customer')]
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
partner_lang
Selection
selection=_lang_get
string='Language'
partner_name
Char
string='Name'
ticket_id
Many2one → helpdesk.ticket
required=True
args: 'helpdesk.ticket', 'Associated Lead'
action_apply(self)
default_get(self, fields)
active
Boolean
default=True
closed
Boolean
string='Closed'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
description
Html
sanitize_style=True
translate=True
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
string='Folded in Kanban'
mail_template_id
Many2one → mail.template
comodel_name='mail.template'
domain=[('model', '=', 'helpdesk.ticket')]
help='If set an email will be sent to the customer when the ticketreaches this step.'
string='Email Template'
name
Char
required=True
string='Stage Name'
translate=True
sequence
Integer
default=1
unattended
Boolean
string='Unattended'
No public methods.
active
Boolean
default=True
color
Integer
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
string='Name'
No public methods.
active
Boolean
default=True
alias_id
Many2one → mail.alias
comodel_name='mail.alias'
help='The email address associated with this channel. New emails received will automatically create new tickets assigned to the channel.'
ondelete='restrict'
required=True
string='Email'
category_ids
Many2many → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
color
Integer
default=0
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
string='Name'
sequence
Integer
default=10
show_in_portal
Boolean
default=True
help='Allow to select this team when creating a new ticket in the portal.'
string='Show in portal form'
ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='team_id'
string='Tickets'
todo_ticket_count
Integer
compute='_compute_todo_tickets'
string='Number of tickets'
todo_ticket_count_high_priority
Integer
compute='_compute_todo_tickets'
string='Number of tickets in high priority'
todo_ticket_count_unassigned
Integer
compute='_compute_todo_tickets'
string='Number of tickets unassigned'
todo_ticket_count_unattended
Integer
compute='_compute_todo_tickets'
string='Number of tickets unattended'
user_id
Many2one → res.users
check_company=True
comodel_name='res.users'
string='Team Leader'
user_ids
Many2many → res.users
column1='helpdesk_ticket_team_id'
column2='res_users_id'
comodel_name='res.users'
relation='helpdesk_ticket_team_res_users_rel'
string='Members'
No public methods.
helpdesk_mgmt_portal_select_team
Boolean
string='Select team in Helpdesk portal'
No public methods.
helpdesk_mgmt_portal_select_team
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_select_team'
No public methods.
helpdesk_ticket_active_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket active count'
helpdesk_ticket_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket count'
helpdesk_ticket_count_string
Char
compute='_compute_helpdesk_ticket_count'
string='Tickets'
helpdesk_ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='partner_id'
string='Related tickets'
action_view_helpdesk_tickets(self)
helpdesk_team_ids
Many2many → helpdesk.ticket.team
column1='res_users_id'
column2='helpdesk_ticket_team_id'
comodel_name='helpdesk.ticket.team'
relation='helpdesk_ticket_team_res_users_rel'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/helpdesk |
| GIT | |
| GIT | https://github.com/OCA/helpdesk.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/helpdesk/tree/13.0/helpdesk_mgmt |
| VERSION | |
| VERSION | 2.7.0 |
| CATEGORY | |
| CATEGORY | After-Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, Lois Rilo, Yann Papouin, cubells, OCA Transbot, Miquel Raïch, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, Darío Lodeiros, David, Jan Verbeek, oca-ci, David Alonso (Solvos), Mateu Griful, David James, David Alonso // Solvos, DavidJForgeFlow, Qaidjohar |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/helpdesk |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:14 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - portal - web_editor - http_routing - auth_signup |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
helpdesk_ticket_kanban_view |
helpdesk.ticket.team.kanban | helpdesk.ticket.team | kanban | New |
helpdesk_ticket_view_search |
helpdesk.ticket.view.search | helpdesk.ticket | search | New |
helpdesk_ticket_views_pivot |
helpdesk.ticket.view.pivot | helpdesk.ticket | pivot | New |
portal_create_ticket |
Create Ticket | ir.ui.view | qweb | New |
portal_helpdesk_ticket_page |
Ticket Portal Template | ir.ui.view | qweb | New |
portal_layout |
Portal layout: ticket menu entry | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_home |
Portal My Home : ticket entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_tickets |
My tickets | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits base.res_config_settings_view_form | |
ticket_view_form |
helpdesk.ticket.view.form | helpdesk.ticket | form | New |
ticket_view_tree |
helpdesk.ticket.view.tree | helpdesk.ticket | tree | New |
view_helpdesk_category_form |
view.helpdesk_category.form | helpdesk.ticket.category | form | New |
view_helpdesk_category_tree |
view.helpdesk_category.tree | helpdesk.ticket.category | tree | New |
view_helpdesk_channel_form |
view.helpdesk_channel.form | helpdesk.ticket.channel | form | New |
view_helpdesk_channel_tree |
view.helpdesk_channel.tree | helpdesk.ticket.channel | tree | New |
view_helpdesk_team_form |
view.helpdesk_team.form | helpdesk.ticket.team | form | New |
view_helpdesk_team_tree |
view.helpdesk_team.tree | helpdesk.ticket.team | tree | New |
view_helpdesk_ticket_category_search |
helpdesk.ticket.category.search | helpdesk.ticket.category | search | New |
view_helpdesk_ticket_channel_search |
helpdesk.ticket.channel.search | helpdesk.ticket.channel | search | New |
view_helpdesk_ticket_kanban |
helpdesk.ticket.kanban | helpdesk.ticket | kanban | New |
view_helpdesk_ticket_stage_form |
helpdesk.ticket.stage.form | helpdesk.ticket.stage | form | New |
view_helpdesk_ticket_stage_search |
helpdesk.ticket.stage.search | helpdesk.ticket.stage | search | New |
view_helpdesk_ticket_stage_tree |
helpdesk.ticket.stage.tree | helpdesk.ticket.stage | tree | New |
view_helpdesk_ticket_tag_form |
helpdesk.ticket.tag.form | helpdesk.ticket.tag | form | New |
view_helpdesk_ticket_tag_search |
helpdesk.ticket.tag.search | helpdesk.ticket.tag | search | New |
view_helpdesk_ticket_tag_tree |
helpdesk.ticket.tag.tree | helpdesk.ticket.tag | tree | New |
view_helpdesk_ticket_team_search |
helpdesk.ticket.team.search | helpdesk.ticket.team | search | New |
view_partner_form |
view_partner_form | res.partner | div | Inherits base.view_partner_form |
active
Boolean
default=True
assigned_date
Datetime
string='Assigned Date'
attachment_ids
One2many → ir.attachment
comodel_name='ir.attachment'
domain=[('res_model', '=', 'helpdesk.ticket')]
inverse_name='res_id'
string='Media Attachments'
category_id
Many2one → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
channel_id
Many2one → helpdesk.ticket.channel
comodel_name='helpdesk.ticket.channel'
help='Channel indicates where the source of a ticketcomes from (it could be a phone call, an email...)'
string='Channel'
closed
Boolean
related='stage_id.closed'
closed_date
Datetime
string='Closed Date'
color
Integer
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
description
Html
required=True
sanitize_style=True
kanban_state
Selection
selection=[('normal', 'Default'), ('done', 'Ready for next stage'), ('blocked', 'Blocked')]
string='Kanban State'
last_stage_update
Datetime
default=fields.Datetime.now
string='Last Stage Update'
name
Char
required=True
string='Title'
number
Char
default='/'
readonly=True
string='Ticket number'
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Contact'
partner_name
Char
priority
Selection
default='1'
selection=[('0', _('Low')), ('1', _('Medium')), ('2', _('High')), ('3', _('Very High'))]
string='Priority'
stage_id
Many2one → helpdesk.ticket.stage
comodel_name='helpdesk.ticket.stage'
copy=False
default=_get_default_stage_id
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
string='Stage'
track_visibility='onchange'
tag_ids
Many2many → helpdesk.ticket.tag
comodel_name='helpdesk.ticket.tag'
string='Tags'
team_id
Many2one → helpdesk.ticket.team
comodel_name='helpdesk.ticket.team'
string='Team'
unattended
Boolean
related='stage_id.unattended'
store=True
user_id
Many2one → res.users
comodel_name='res.users'
domain="team_id and [('share', '=', False),('id', 'in', user_ids)] or [('share', '=', False)]"
index=True
string='Assigned user'
tracking=True
user_ids
Many2many → res.users
comodel_name='res.users'
related='team_id.user_ids'
string='Users'
action_duplicate_tickets(self)
assign_to_me(self)
copy(self, default=None)
create(self, vals)
message_new(self, msg, custom_values=None)
message_update(self, msg, update_vals=None)
name_get(self)
write(self, vals)
active
Boolean
default=True
string='Active'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
string='Name'
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
closed
Boolean
string='Closed'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
description
Html
sanitize_style=True
translate=True
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
string='Folded in Kanban'
mail_template_id
Many2one → mail.template
comodel_name='mail.template'
domain=[('model', '=', 'helpdesk.ticket')]
help='If set an email will be sent to the customer when the ticketreaches this step.'
string='Email Template'
name
Char
required=True
string='Stage Name'
translate=True
sequence
Integer
default=1
unattended
Boolean
string='Unattended'
No public methods.
active
Boolean
default=True
color
Integer
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
string='Name'
No public methods.
active
Boolean
default=True
alias_id
Many2one → mail.alias
comodel_name='mail.alias'
help='The email address associated with this channel. New emails received will automatically create new tickets assigned to the channel.'
ondelete='restrict'
required=True
string='Email'
category_ids
Many2many → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
color
Integer
default=0
string='Color Index'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
name
Char
required=True
string='Name'
sequence
Integer
default=10
show_in_portal
Boolean
default=True
help='Allow to select this team when creating a new ticket in the portal.'
string='Show in portal form'
ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='team_id'
string='Tickets'
todo_ticket_count
Integer
compute='_compute_todo_tickets'
string='Number of tickets'
todo_ticket_count_high_priority
Integer
compute='_compute_todo_tickets'
string='Number of tickets in high priority'
todo_ticket_count_unassigned
Integer
compute='_compute_todo_tickets'
string='Number of tickets unassigned'
todo_ticket_count_unattended
Integer
compute='_compute_todo_tickets'
string='Number of tickets unattended'
user_id
Many2one → res.users
check_company=True
comodel_name='res.users'
string='Team Leader'
user_ids
Many2many → res.users
column1='helpdesk_ticket_team_id'
column2='res_users_id'
comodel_name='res.users'
relation='helpdesk_ticket_team_res_users_rel'
string='Members'
get_alias_model_name(self, vals)
get_alias_values(self)
helpdesk_mgmt_portal_select_team
Boolean
string='Select team in Helpdesk portal'
No public methods.
helpdesk_mgmt_portal_select_team
Boolean
readonly=False
related='company_id.helpdesk_mgmt_portal_select_team'
No public methods.
helpdesk_ticket_active_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket active count'
helpdesk_ticket_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket count'
helpdesk_ticket_count_string
Char
compute='_compute_helpdesk_ticket_count'
string='Tickets'
helpdesk_ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='partner_id'
string='Related tickets'
action_view_helpdesk_tickets(self)
helpdesk_team_ids
Many2many → helpdesk.ticket.team
column1='res_users_id'
column2='helpdesk_ticket_team_id'
comodel_name='helpdesk.ticket.team'
relation='helpdesk_ticket_team_res_users_rel'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/helpdesk |
| GIT | |
| GIT | https://github.com/OCA/helpdesk.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/helpdesk/tree/12.0/helpdesk_mgmt |
| VERSION | |
| VERSION | 1.26.0 |
| CATEGORY | |
| CATEGORY | After-Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| COMMITTERS | |
| COMMITTERS | eLBati, Pedro M. Baeza, GitHub, Bhavesh Odedra, David Alonso, Luis Felipe Mileo, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Wolfgang Pichler, Jan Verbeek, emagdalena, luffah, samuel, David Alonso (Solvos), Dario Lodeiros, Marcel Savegnago, Alessandro Uffreduzzi, Mateu Griful, Tony Gu, marcelsavegnago, dsi, EDallas89, gorkamagra, miguelestevan, cramos |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/helpdesk |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:19 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - portal - http_routing |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
helpdesk_ticket_kanban_view |
helpdesk.ticket.team.kanban | helpdesk.ticket.team | kanban | New |
helpdesk_ticket_view_search |
helpdesk.ticket.view.search | helpdesk.ticket | search | New |
helpdesk_ticket_views_pivot |
helpdesk.ticket.view.pivot | helpdesk.ticket | pivot | New |
portal_create_ticket |
Create Ticket | ir.ui.view | qweb | New |
portal_helpdesk_ticket_page |
Ticket Portal Template | ir.ui.view | qweb | New |
portal_layout |
Portal layout: ticket menu entry | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_home |
Portal My Home : ticket entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_tickets |
My tickets | ir.ui.view | qweb | New |
report_helpdesk_ticket |
report_helpdesk_ticket | ir.ui.view | qweb | New |
report_helpdesk_ticket_document |
report_helpdesk_ticket_document | ir.ui.view | qweb | New |
ticket_view_form |
helpdesk.ticket.view.form | helpdesk.ticket | form | New |
ticket_view_tree |
helpdesk.ticket.view.tree | helpdesk.ticket | tree | New |
view_helpdesk_category_form |
view.helpdesk_category.form | helpdesk.ticket.category | form | New |
view_helpdesk_category_tree |
view.helpdesk_category.tree | helpdesk.ticket.category | tree | New |
view_helpdesk_channel_form |
view.helpdesk_channel.form | helpdesk.ticket.channel | form | New |
view_helpdesk_channel_tree |
view.helpdesk_channel.tree | helpdesk.ticket.channel | tree | New |
view_helpdesk_team_form |
view.helpdesk_team.form | helpdesk.ticket.team | form | New |
view_helpdesk_team_tree |
view.helpdesk_team.tree | helpdesk.ticket.team | tree | New |
view_helpdesk_ticket_category_search |
helpdesk.ticket.category.search | helpdesk.ticket.category | search | New |
view_helpdesk_ticket_channel_search |
helpdesk.ticket.channel.search | helpdesk.ticket.channel | search | New |
view_helpdesk_ticket_kanban |
helpdesk.ticket.kanban | helpdesk.ticket | kanban | New |
view_helpdesk_ticket_stage_form |
helpdesk.ticket.stage.form | helpdesk.ticket.stage | form | New |
view_helpdesk_ticket_stage_search |
helpdesk.ticket.stage.search | helpdesk.ticket.stage | search | New |
view_helpdesk_ticket_stage_tree |
helpdesk.ticket.stage.tree | helpdesk.ticket.stage | tree | New |
view_helpdesk_ticket_tag_form |
helpdesk.ticket.tag.form | helpdesk.ticket.tag | form | New |
view_helpdesk_ticket_tag_search |
helpdesk.ticket.tag.search | helpdesk.ticket.tag | search | New |
view_helpdesk_ticket_tag_tree |
helpdesk.ticket.tag.tree | helpdesk.ticket.tag | tree | New |
view_helpdesk_ticket_team_search |
helpdesk.ticket.team.search | helpdesk.ticket.team | search | New |
view_partner_form |
view_partner_form | res.partner | div | Inherits base.view_partner_form |
active
Boolean
default=True
assigned_date
Datetime
string='Assigned Date'
category_id
Many2one → helpdesk.ticket.category
string='Category'
args: 'helpdesk.ticket.category'
channel_id
Many2one → helpdesk.ticket.channel
help='Channel indicates where the source of a ticketcomes from (it could be a phone call, an email...)'
string='Channel'
args: 'helpdesk.ticket.channel'
closed
Boolean
related='stage_id.closed'
closed_date
Datetime
string='Closed Date'
color
Integer
string='Color Index'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
description
Html
required=True
sanitize_style=True
kanban_state
Selection
string='Kanban State'
args: [('normal', 'Default'), ('done', 'Ready for next stage'), ('blocked', 'Blocked')]
last_stage_update
Datetime
default=fields.Datetime.now
string='Last Stage Update'
name
Char
required=True
string='Title'
number
Char
default='/'
readonly=True
string='Ticket number'
partner_email
Char
partner_id
Many2one → res.partner
partner_name
Char
priority
Selection
default='1'
selection=[('0', _('Low')), ('1', _('Medium')), ('2', _('High')), ('3', _('Very High'))]
string='Priority'
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of tickets.'
index=True
string='Sequence'
stage_id
Many2one → helpdesk.ticket.stage
default=_get_default_stage_id
group_expand='_read_group_stage_ids'
string='Stage'
track_visibility='onchange'
args: 'helpdesk.ticket.stage'
tag_ids
Many2many → helpdesk.ticket.tag
team_id
Many2one → helpdesk.ticket.team
unattended
Boolean
related='stage_id.unattended'
store=True
user_id
Many2one → res.users
index=True
string='Assigned user'
track_visibility='onchange'
args: 'res.users'
user_ids
Many2many → res.users
comodel_name='res.users'
related='team_id.user_ids'
string='Users'
assign_to_me(self)
copy(self, default=None)
create(self, vals)
get_access_link(self)
message_get_suggested_recipients(self)
message_new(self, msg, custom_values=None)
message_update(self, msg, update_vals=None)
name_get(self)
partner_can_access(self)
send_partner_mail(self)
send_user_mail(self)
write(self, vals)
active
Boolean
default=True
string='Active'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
string='Name'
No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
No public methods.
active
Boolean
default=True
closed
Boolean
string='Closed'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
description
Html
sanitize_style=True
translate=True
fold
Boolean
help='This stage is folded in the kanban view.'
string='Folded in Kanban'
mail_template_id
Many2one → mail.template
domain=[('model', '=', 'helpdesk.ticket')]
help='If set an email will be sent to the customer when the ticketreaches this step.'
string='Email Template'
args: 'mail.template'
name
Char
required=True
string='Stage Name'
translate=True
portal_user_can_close
Boolean
sequence
Integer
default=1
unattended
Boolean
string='Unattended'
No public methods.
active
Boolean
default=True
color
Integer
string='Color Index'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
string='Name'
No public methods.
active
Boolean
default=True
alias_id
Many2one
help='The email address associated with this channel. New emails received will automatically create new tickets assigned to the channel.'
category_ids
Many2many → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
string='Name'
ticket_ids
One2many → helpdesk.ticket
string='Tickets'
args: 'helpdesk.ticket', 'team_id'
todo_ticket_count
Integer
compute='_compute_todo_tickets'
string='Number of tickets'
todo_ticket_count_high_priority
Integer
compute='_compute_todo_tickets'
string='Number of tickets in high priority'
todo_ticket_count_unassigned
Integer
compute='_compute_todo_tickets'
string='Number of tickets unassigned'
todo_ticket_count_unattended
Integer
compute='_compute_todo_tickets'
string='Number of tickets unattended'
todo_ticket_ids
One2many → helpdesk.ticket
domain=[('closed', '=', False)]
string='Todo tickets'
args: 'helpdesk.ticket', 'team_id'
user_ids
Many2many → res.users
comodel_name='res.users'
string='Members'
get_alias_model_name(self, vals)
get_alias_values(self)
No new fields.
Public methods (1)check(self, mode, values=None)
helpdesk_ticket_active_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket active count'
helpdesk_ticket_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket count'
helpdesk_ticket_count_string
Char
compute='_compute_helpdesk_ticket_count'
string='Tickets'
helpdesk_ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='partner_id'
string='Related tickets'
action_view_helpdesk_tickets(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/helpdesk |
| GIT | |
| GIT | https://github.com/OCA/helpdesk.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/helpdesk/tree/11.0/helpdesk_mgmt |
| VERSION | |
| VERSION | 1.12.0 |
| CATEGORY | |
| CATEGORY | After-Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Factor Libre, Domatix, AdaptiveCity, C2i Change 2 Improve, SDi Soluciones |
| COMMITTERS | |
| COMMITTERS | Raphaël Valyi, Pedro M. Baeza, GitHub, OCA Transbot, oca-travis, OCA-git-bot, Jan Verbeek, Ignacio Serra, luffah, Daniel Cano, Yevgeniy Bespal, alvaro, samuel, Maria Alhambra |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/helpdesk |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:58 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - portal - http_routing |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
helpdesk_ticket_kanban_view |
helpdesk.ticket.team.kanban | helpdesk.ticket.team | kanban | New |
helpdesk_ticket_view_search |
helpdesk.ticket.view.search | helpdesk.ticket | search | New |
helpdesk_ticket_views_pivot |
helpdesk.ticket.view.pivot | helpdesk.ticket | pivot | New |
portal_create_ticket |
Create Ticket | ir.ui.view | qweb | New |
portal_helpdesk_ticket_page |
Ticket Portal Template | ir.ui.view | qweb | New |
portal_layout |
Portal layout: ticket menu entry | ir.ui.view | qweb | Inherits portal.portal_layout |
portal_my_home |
Portal My Home : ticket entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_tickets |
My tickets | ir.ui.view | qweb | New |
ticket_view_form |
helpdesk.ticket.view.form | helpdesk.ticket | form | New |
ticket_view_tree |
helpdesk.ticket.view.tree | helpdesk.ticket | tree | New |
view_helpdesk_category_form |
view.helpdesk_category.form | helpdesk.ticket.category | form | New |
view_helpdesk_category_tree |
view.helpdesk_category.tree | helpdesk.ticket.category | tree | New |
view_helpdesk_channel_form |
view.helpdesk_channel.form | helpdesk.ticket.channel | form | New |
view_helpdesk_channel_tree |
view.helpdesk_channel.tree | helpdesk.ticket.channel | tree | New |
view_helpdesk_team_form |
view.helpdesk_team.form | helpdesk.ticket.team | form | New |
view_helpdesk_team_tree |
view.helpdesk_team.tree | helpdesk.ticket.team | tree | New |
view_helpdesk_ticket_category_search |
helpdesk.ticket.category.search | helpdesk.ticket.category | search | New |
view_helpdesk_ticket_channel_search |
helpdesk.ticket.channel.search | helpdesk.ticket.channel | search | New |
view_helpdesk_ticket_kanban |
helpdesk.ticket.kanban | helpdesk.ticket | kanban | New |
view_helpdesk_ticket_stage_form |
helpdesk.ticket.stage.form | helpdesk.ticket.stage | form | New |
view_helpdesk_ticket_stage_search |
helpdesk.ticket.stage.search | helpdesk.ticket.stage | search | New |
view_helpdesk_ticket_stage_tree |
helpdesk.ticket.stage.tree | helpdesk.ticket.stage | tree | New |
view_helpdesk_ticket_tag_form |
helpdesk.ticket.tag.form | helpdesk.ticket.tag | form | New |
view_helpdesk_ticket_tag_search |
helpdesk.ticket.tag.search | helpdesk.ticket.tag | search | New |
view_helpdesk_ticket_tag_tree |
helpdesk.ticket.tag.tree | helpdesk.ticket.tag | tree | New |
view_helpdesk_ticket_team_search |
helpdesk.ticket.team.search | helpdesk.ticket.team | search | New |
view_partner_form |
view_partner_form | res.partner | div | Inherits base.view_partner_form |
assigned_date
Datetime
string='Assigned Date'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'helpdesk.ticket')]
string='Media Attachments'
args: 'ir.attachment', 'res_id'
category_id
Many2one → helpdesk.ticket.category
string='Category'
args: 'helpdesk.ticket.category'
channel_id
Many2one → helpdesk.ticket.channel
help='Channel indicates where the source of a ticketcomes from (it could be a phone call, an email...)'
string='Channel'
args: 'helpdesk.ticket.channel'
closed
Boolean
related='stage_id.closed'
closed_date
Datetime
string='Closed Date'
color
Integer
string='Color Index'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
description
Html
sanitize_style=True
strip_classes=True
kanban_state
Selection
string='Kanban State'
args: [('normal', 'Default'), ('done', 'Ready for next stage'), ('blocked', 'Blocked')]
last_stage_update
Datetime
default=fields.Datetime.now
string='Last Stage Update'
name
Char
required=True
string='Title'
number
Char
default='/'
readonly=True
string='Ticket number'
partner_email
Char
partner_id
Many2one → res.partner
partner_name
Char
priority
Selection
default='1'
selection=[('0', _('Low')), ('1', _('Medium')), ('2', _('High')), ('3', _('Very High'))]
string='Priority'
stage_id
Many2one → helpdesk.ticket.stage
default=_get_default_stage_id
group_expand='_read_group_stage_ids'
string='Stage'
track_visibility='onchange'
args: 'helpdesk.ticket.stage'
tag_ids
Many2many → helpdesk.ticket.tag
team_id
Many2one → helpdesk.ticket.team
unattended
Boolean
related='stage_id.unattended'
user_id
Many2one → res.users
string='Assigned user'
args: 'res.users'
user_ids
Many2many → res.users
comodel_name='res.users'
related='team_id.user_ids'
string='Users'
assign_to_me(self)
copy(self, default=None)
create(self, vals)
message_get_suggested_recipients(self)
message_new(self, msg, custom_values=None)
message_update(self, msg, update_vals=None)
send_user_mail(self)
write(self, vals)
active
Boolean
default=True
string='Active'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
string='Name'
No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
No public methods.
active
Boolean
default=True
closed
Boolean
string='Closed'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
description
Html
sanitize_style=True
strip_classes=True
translate=True
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
string='Folded in Kanban'
mail_template_id
Many2one → mail.template
domain=[('model', '=', 'helpdesk.ticket')]
help='If set an email will be sent to the customer when the ticketreaches this step.'
string='Email Template'
args: 'mail.template'
name
Char
required=True
string='Stage Name'
translate=True
sequence
Integer
default=1
unattended
Boolean
string='Unattended'
No public methods.
active
Boolean
default=True
color
Integer
string='Color Index'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
string='Name'
No public methods.
active
Boolean
default=True
category_ids
Many2many → helpdesk.ticket.category
comodel_name='helpdesk.ticket.category'
string='Category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
string='Name'
ticket_ids
One2many → helpdesk.ticket
string='Tickets'
args: 'helpdesk.ticket', 'team_id'
todo_ticket_count
Integer
compute='_compute_todo_tickets'
string='Number of tickets'
todo_ticket_count_high_priority
Integer
compute='_compute_todo_tickets'
string='Number of tickets in high priority'
todo_ticket_count_unassigned
Integer
compute='_compute_todo_tickets'
string='Number of tickets unassigned'
todo_ticket_count_unattended
Integer
compute='_compute_todo_tickets'
string='Number of tickets unattended'
todo_ticket_ids
One2many → helpdesk.ticket
string='Todo tickets'
args: 'helpdesk.ticket', 'team_id'
user_ids
Many2many → res.users
comodel_name='res.users'
string='Members'
No public methods.
helpdesk_ticket_active_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket active count'
helpdesk_ticket_count
Integer
compute='_compute_helpdesk_ticket_count'
string='Ticket count'
helpdesk_ticket_count_string
Char
compute='_compute_helpdesk_ticket_count'
string='Tickets'
helpdesk_ticket_ids
One2many → helpdesk.ticket
comodel_name='helpdesk.ticket'
inverse_name='partner_id'
string='Related tickets'
action_view_helpdesk_tickets(self)