Maintenance - HR

hr_maintenance
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/hr_maintenance
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSOdoo Translation Bot, Thibault Delavallée, Yannick Tivisse, Julien Castiaux, Tiffany Chang (tic), Gorash, Victor Piryns (pivi), Dylan Kiss (dyki), Nathaniel (naja), Abdelrahman Mahmoud (amah), David Van Droogenbroeck (DROD), Krzysztof Magusiak (krma)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:45
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr
    - base_setup
    - base
    - web
    - digest
    - mail
    - bus
    - web_tour
    - html_editor
    - portal
    - http_routing
    - auth_signup
    - resource
    - phone_validation
    - resource_mail
    - maintenance
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge between HR and Maintenance.

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
hr_departure_wizard_view_form hr.departure.wizard.view.form.extend hr.departure.wizard xpath Inherits hr.hr_departure_wizard_view_form
hr_employee_public_view_form hr.employee.public.form.inherit.maintenance hr.employee.public xpath Inherits hr.hr_employee_public_view_form
hr_employee_view_form hr.employee.view.form.inherit.maintenance hr.employee button Inherits hr.view_employee_form
maintenance_equipment_view_form_inherit_hr maintenance.equipment.view.form.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_form
maintenance_equipment_view_kanban_inherit_hr maintenance.equipment.view.kanban.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_kanban
maintenance_equipment_view_search_inherit_hr maintenance.equipment.view.search.inherit.hr maintenance.equipment filter Inherits maintenance.hr_equipment_view_search
maintenance_equipment_view_tree_inherit_hr maintenance.equipment.view.list.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_tree
maintenance_request_view_form_inherit_hr maintenance.request.view.form.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_form
maintenance_request_view_kanban_inherit_hr maintenance.request.view.kanban.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_kanban
maintenance_request_view_search_inherit_hr maintenance.request.view.search.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_search
maintenance_request_view_tree_inherit_hr maintenance.request.view.list.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_tree
Models touched (5)

New fields (1)
  • unassign_equipment Boolean
    default=True help='Unassign Employee from Equipments' args: 'Free Equiments'
Public methods (1)
  • action_register_departure(self)

New fields (2)
  • equipment_count Integer
    compute='_compute_equipment_count' args: 'Equipment Count'
  • equipment_ids One2many → maintenance.equipment
    groups='hr.group_hr_user' args: 'maintenance.equipment', 'employee_id'
Public methods (0)

No public methods.

New fields (1)
  • equipment_count Integer
    related='employee_id.equipment_count'
Public methods (0)

No public methods.

New fields (5)
  • assign_date Date
    compute='_compute_equipment_assign' copy=True readonly=False store=True
  • department_id Many2one → hr.department
    compute='_compute_equipment_assign' readonly=False store=True string='Assigned Department' tracking=True args: 'hr.department'
  • employee_id Many2one → hr.employee
    compute='_compute_equipment_assign' index='btree_not_null' readonly=False store=True string='Assigned Employee' tracking=True args: 'hr.employee'
  • equipment_assign_to Selection
    default='employee' required=True string='Used By' args: [('department', 'Department'), ('employee', 'Employee'), ('other', 'Other')]
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (3)
  • employee_id Many2one → hr.employee
    default=_default_employee_get string='Employee' args: 'hr.employee'
  • equipment_id Many2one
    domain="['|', ('employee_id', '=', employee_id), ('employee_id', '=', False)]"
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • message_new(self, msg_dict, custom_values=None)
    @api.model
  • write(self, vals)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/hr_maintenance
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Yannick Tivisse, Odoo Online, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, Louis Wicket (wil), Dylan Kiss (dyki), ravb-odoo, Louis (wil), David Van Droogenbroeck (DROD)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr
    - base_setup
    - base
    - web
    - digest
    - mail
    - bus
    - web_tour
    - html_editor
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - phone_validation
    - resource_mail
    - maintenance
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge between HR and Maintenance.

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
hr_departure_wizard_view_form hr.departure.wizard.view.form.extend hr.departure.wizard xpath Inherits hr.hr_departure_wizard_view_form
hr_employee_view_form hr.employee.view.form.inherit.maintenance hr.employee div Inherits hr.view_employee_form
maintenance_equipment_view_form_inherit_hr maintenance.equipment.view.form.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_form
maintenance_equipment_view_kanban_inherit_hr maintenance.equipment.view.kanban.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_kanban
maintenance_equipment_view_search_inherit_hr maintenance.equipment.view.search.inherit.hr maintenance.equipment filter Inherits maintenance.hr_equipment_view_search
maintenance_equipment_view_tree_inherit_hr maintenance.equipment.view.list.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_tree
maintenance_request_view_form_inherit_hr maintenance.request.view.form.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_form
maintenance_request_view_kanban_inherit_hr maintenance.request.view.kanban.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_kanban
maintenance_request_view_search_inherit_hr maintenance.request.view.search.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_search
maintenance_request_view_tree_inherit_hr maintenance.request.view.list.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_tree
res_users_view_form_preference res.users.view.form.inherit.maintenance res.users xpath Inherits hr.res_users_view_form_profile
Models touched (5)

New fields (1)
  • unassign_equipment Boolean
    default=True help='Unassign Employee from Equipments' args: 'Free Equiments'
Public methods (1)
  • action_register_departure(self)

New fields (2)
  • equipment_count Integer
    compute='_compute_equipment_count' groups='hr.group_hr_user' args: 'Equipment Count'
  • equipment_ids One2many → maintenance.equipment
    groups='hr.group_hr_user' args: 'maintenance.equipment', 'employee_id'
Public methods (0)

No public methods.

New fields (5)
  • assign_date Date
    compute='_compute_equipment_assign' copy=True readonly=False store=True
  • department_id Many2one → hr.department
    compute='_compute_equipment_assign' readonly=False store=True string='Assigned Department' tracking=True args: 'hr.department'
  • employee_id Many2one → hr.employee
    compute='_compute_equipment_assign' readonly=False store=True string='Assigned Employee' tracking=True args: 'hr.employee'
  • equipment_assign_to Selection
    default='employee' required=True string='Used By' args: [('department', 'Department'), ('employee', 'Employee'), ('other', 'Other')]
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (3)
  • employee_id Many2one → hr.employee
    default=_default_employee_get string='Employee' args: 'hr.employee'
  • equipment_id Many2one
    domain="['|', ('employee_id', '=', employee_id), ('employee_id', '=', False)]"
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • message_new(self, msg, custom_values=None)
    @api.model
    Overrides mail_thread message_new that is called by the mailgateway through message_process. This override updates the document according to the email.
  • write(self, vals)

New fields (2)
  • equipment_count Integer
    related='employee_id.equipment_count' string='Assigned Equipment'
  • equipment_ids One2many → maintenance.equipment
    string='Managed Equipment' args: 'maintenance.equipment', 'owner_user_id'
Public methods (1)
  • SELF_READABLE_FIELDS(self)
    @property
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/hr_maintenance
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Yannick Tivisse, Odoo Online, Tiffany Chang (tic), Gorash, Hubert Van de Walle (huvw), Thomas Lefebvre (thle), Louis Wicket (wil), Dylan Kiss (dyki), Louis (wil), David Van Droogenbroeck (DROD)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr
    - base_setup
    - base
    - web
    - phone_validation
    - mail
    - bus
    - web_tour
    - resource
    - maintenance
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge between HR and Maintenance.

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
hr_employee_view_form hr.employee.view.form.inherit.maintenance hr.employee div Inherits hr.view_employee_form
maintenance_equipment_view_form_inherit_hr maintenance.equipment.view.form.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_form
maintenance_equipment_view_kanban_inherit_hr maintenance.equipment.view.kanban.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_kanban
maintenance_equipment_view_search_inherit_hr maintenance.equipment.view.search.inherit.hr maintenance.equipment filter Inherits maintenance.hr_equipment_view_search
maintenance_equipment_view_tree_inherit_hr maintenance.equipment.view.tree.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_tree
maintenance_request_view_form_inherit_hr maintenance.request.view.form.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_form
maintenance_request_view_kanban_inherit_hr maintenance.request.view.kanban.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_kanban
maintenance_request_view_search_inherit_hr maintenance.request.view.search.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_search
maintenance_request_view_tree_inherit_hr maintenance.request.view.tree.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_tree
res_users_view_form_preference res.users.view.form.inherit.maintenance res.users xpath Inherits hr.res_users_view_form_profile
Models touched (4)

New fields (2)
  • equipment_count Integer
    compute='_compute_equipment_count' args: 'Equipment Count'
  • equipment_ids One2many → maintenance.equipment
    args: 'maintenance.equipment', 'employee_id'
Public methods (0)

No public methods.

New fields (5)
  • assign_date Date
    compute='_compute_equipment_assign' copy=True readonly=False store=True
  • department_id Many2one → hr.department
    compute='_compute_equipment_assign' readonly=False store=True string='Assigned Department' tracking=True args: 'hr.department'
  • employee_id Many2one → hr.employee
    compute='_compute_equipment_assign' readonly=False store=True string='Assigned Employee' tracking=True args: 'hr.employee'
  • equipment_assign_to Selection
    default='employee' required=True string='Used By' args: [('department', 'Department'), ('employee', 'Employee'), ('other', 'Other')]
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (3)
  • employee_id Many2one → hr.employee
    default=_default_employee_get string='Employee' args: 'hr.employee'
  • equipment_id Many2one
    domain="['|', ('employee_id', '=', employee_id), ('employee_id', '=', False)]"
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • message_new(self, msg, custom_values=None)
    @api.model
    Overrides mail_thread message_new that is called by the mailgateway through message_process. This override updates the document according to the email.
  • write(self, vals)

New fields (2)
  • equipment_count Integer
    related='employee_id.equipment_count' string='Assigned Equipment'
  • equipment_ids One2many → maintenance.equipment
    string='Managed Equipment' args: 'maintenance.equipment', 'owner_user_id'
Public methods (1)
  • SELF_READABLE_FIELDS(self)
    @property
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/hr_maintenance
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Yannick Tivisse, Victor Feyens, Philippe Wauthy, Hubert Van de Walle (huvw)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:53
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - maintenance
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        Bridge between HR and Maintenance.

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
hr_employee_view_form hr.employee.view.form.inherit.maintenance hr.employee div Inherits hr.view_employee_form
maintenance_equipment_view_form_inherit_hr maintenance.equipment.view.form.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_form
maintenance_equipment_view_kanban_inherit_hr maintenance.equipment.view.kanban.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_kanban
maintenance_equipment_view_search_inherit_hr maintenance.equipment.view.search.inherit.hr maintenance.equipment filter Inherits maintenance.hr_equipment_view_search
maintenance_equipment_view_tree_inherit_hr maintenance.equipment.view.tree.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_tree
maintenance_request_view_form_inherit_hr maintenance.request.view.form.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_form
maintenance_request_view_kanban_inherit_hr maintenance.request.view.kanban.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_kanban
maintenance_request_view_search_inherit_hr maintenance.request.view.search.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_search
maintenance_request_view_tree_inherit_hr maintenance.request.view.tree.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_tree
res_users_view_form_preference res.users.view.form.inherit.maintenance res.users xpath Inherits hr.res_users_view_form_profile
Models touched (4)

New fields (2)
  • equipment_count Integer
    compute='_compute_equipment_count' args: 'Equipments'
  • equipment_ids One2many → maintenance.equipment
    args: 'maintenance.equipment', 'employee_id'
Public methods (0)

No public methods.

New fields (5)
  • assign_date Date
    compute='_compute_equipment_assign' copy=True readonly=False store=True
  • department_id Many2one → hr.department
    compute='_compute_equipment_assign' readonly=False store=True string='Assigned Department' tracking=True args: 'hr.department'
  • employee_id Many2one → hr.employee
    compute='_compute_equipment_assign' readonly=False store=True string='Assigned Employee' tracking=True args: 'hr.employee'
  • equipment_assign_to Selection
    default='employee' required=True string='Used By' args: [('department', 'Department'), ('employee', 'Employee'), ('other', 'Other')]
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (3)
  • employee_id Many2one → hr.employee
    default=_default_employee_get string='Employee' args: 'hr.employee'
  • equipment_id Many2one
    domain="['|', ('employee_id', '=', employee_id), ('employee_id', '=', False)]"
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • message_new(self, msg, custom_values=None)
    @api.model
    Overrides mail_thread message_new that is called by the mailgateway through message_process. This override updates the document according to the email.
  • write(self, vals)

New fields (2)
  • equipment_count Integer
    related='employee_id.equipment_count' string='Assigned Equipments'
  • equipment_ids One2many → maintenance.equipment
    string='Managed Equipments' args: 'maintenance.equipment', 'owner_user_id'
Public methods (1)
  • SELF_READABLE_FIELDS(self)
    @property
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/hr_maintenance
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Xavier-Do, Ivan Yelizariev
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - maintenance
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        Bridge between HR and Maintenance.

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
hr_employee_view_form hr.employee.view.form.inherit.maintenance hr.employee div Inherits hr.view_employee_form
maintenance_equipment_view_form_inherit_hr maintenance.equipment.view.form.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_form
maintenance_equipment_view_kanban_inherit_hr maintenance.equipment.view.kanban.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_kanban
maintenance_equipment_view_search_inherit_hr maintenance.equipment.view.search.inherit.hr maintenance.equipment filter Inherits maintenance.hr_equipment_view_search
maintenance_equipment_view_tree_inherit_hr maintenance.equipment.view.tree.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_tree
maintenance_request_view_form_inherit_hr maintenance.request.view.form.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_form
maintenance_request_view_kanban_inherit_hr maintenance.request.view.kanban.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_kanban
maintenance_request_view_search_inherit_hr maintenance.request.view.search.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_search
maintenance_request_view_tree_inherit_hr maintenance.request.view.tree.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_tree
res_users_view_form_preference res.users.view.form.inherit.maintenance res.users xpath Inherits hr.res_users_view_form_profile
Models touched (4)

New fields (2)
  • equipment_count Integer
    compute='_compute_equipment_count' args: 'Equipments'
  • equipment_ids One2many → maintenance.equipment
    args: 'maintenance.equipment', 'employee_id'
Public methods (0)

No public methods.

New fields (5)
  • assign_date Date
    compute='_compute_equipment_assign' copy=True readonly=False store=True
  • department_id Many2one → hr.department
    compute='_compute_equipment_assign' readonly=False store=True string='Assigned Department' tracking=True args: 'hr.department'
  • employee_id Many2one → hr.employee
    compute='_compute_equipment_assign' readonly=False store=True string='Assigned Employee' tracking=True args: 'hr.employee'
  • equipment_assign_to Selection
    default='employee' required=True string='Used By' args: [('department', 'Department'), ('employee', 'Employee'), ('other', 'Other')]
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)

New fields (3)
  • employee_id Many2one → hr.employee
    default=_default_employee_get string='Employee' args: 'hr.employee'
  • equipment_id Many2one
    domain="['|', ('employee_id', '=', employee_id), ('employee_id', '=', False)]"
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (3)
  • create(self, vals)
    @api.model
  • message_new(self, msg, custom_values=None)
    @api.model
    Overrides mail_thread message_new that is called by the mailgateway through message_process. This override updates the document according to the email.
  • write(self, vals)

New fields (2)
  • equipment_count Integer
    related='employee_id.equipment_count' string='Assigned Equipments'
  • equipment_ids One2many → maintenance.equipment
    string='Managed Equipments' args: 'maintenance.equipment', 'owner_user_id'
Public methods (1)
  • SELF_READABLE_FIELDS(self)
    @property
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/hr_maintenance
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, Xavier Morel, Barad Mahendra, Yannick Tivisse, Xavier-Do, Victor Feyens, fw-bot, Ivan Yelizariev, bve-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:30
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - maintenance
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        Bridge between HR and Maintenance.

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
hr_employee_view_form hr.employee.view.form.inherit.maintenance hr.employee div Inherits hr.view_employee_form
maintenance_equipment_view_form_inherit_hr maintenance.equipment.view.form.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_form
maintenance_equipment_view_kanban_inherit_hr maintenance.equipment.view.kanban.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_kanban
maintenance_equipment_view_search_inherit_hr maintenance.equipment.view.search.inherit.hr maintenance.equipment filter Inherits maintenance.hr_equipment_view_search
maintenance_equipment_view_tree_inherit_hr maintenance.equipment.view.tree.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_tree
maintenance_request_view_form_inherit_hr maintenance.request.view.form.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_form
maintenance_request_view_kanban_inherit_hr maintenance.request.view.kanban.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_kanban
maintenance_request_view_search_inherit_hr maintenance.request.view.search.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_search
maintenance_request_view_tree_inherit_hr maintenance.request.view.tree.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_tree
res_users_view_form_preference res.users.view.form.inherit.maintenance res.users xpath Inherits hr.res_users_view_form_profile
Models touched (4)

New fields (2)
  • equipment_count Integer
    compute='_compute_equipment_count' args: 'Equipments'
  • equipment_ids One2many → maintenance.equipment
    args: 'maintenance.equipment', 'employee_id'
Public methods (0)

No public methods.

New fields (5)
  • assign_date Date
    compute='_compute_equipment_assign' copy=True readonly=False store=True
  • department_id Many2one → hr.department
    compute='_compute_equipment_assign' readonly=False store=True string='Assigned Department' tracking=True args: 'hr.department'
  • employee_id Many2one → hr.employee
    compute='_compute_equipment_assign' readonly=False store=True string='Assigned Employee' tracking=True args: 'hr.employee'
  • equipment_assign_to Selection
    default='employee' required=True string='Used By' args: [('department', 'Department'), ('employee', 'Employee'), ('other', 'Other')]
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)

New fields (3)
  • employee_id Many2one → hr.employee
    default=_default_employee_get string='Employee' args: 'hr.employee'
  • equipment_id Many2one
    domain="['|', ('employee_id', '=', employee_id), ('employee_id', '=', False)]"
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (3)
  • create(self, vals)
    @api.model
  • message_new(self, msg, custom_values=None)
    @api.model
    Overrides mail_thread message_new that is called by the mailgateway through message_process. This override updates the document according to the email.
  • write(self, vals)

New fields (2)
  • equipment_count Integer
    related='employee_id.equipment_count' string='Assigned Equipments'
  • equipment_ids One2many → maintenance.equipment
    string='Managed Equipments' args: 'maintenance.equipment', 'owner_user_id'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/13.0/hr_maintenance
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Simon Lejeune, Damien Bouvy, Yannick Tivisse, Nicolas Seinlet, Adrian Torres, Xavier-Do, Sébastien Theys, svs-odoo, Lucas Lefèvre
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:06:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - mail_bot
    - maintenance
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        Bridge between HR and Maintenance.

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
hr_employee_view_form hr.employee.view.form.inherit.maintenance hr.employee div Inherits hr.view_employee_form
maintenance_equipment_view_form_inherit_hr maintenance.equipment.view.form.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_form
maintenance_equipment_view_kanban_inherit_hr maintenance.equipment.view.kanban.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_kanban
maintenance_equipment_view_search_inherit_hr maintenance.equipment.view.search.inherit.hr maintenance.equipment filter Inherits maintenance.hr_equipment_view_search
maintenance_equipment_view_tree_inherit_hr maintenance.equipment.view.tree.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_tree
maintenance_request_view_form_inherit_hr maintenance.request.view.form.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_form
maintenance_request_view_kanban_inherit_hr maintenance.request.view.kanban.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_kanban
maintenance_request_view_search_inherit_hr maintenance.request.view.search.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_search
maintenance_request_view_tree_inherit_hr maintenance.request.view.tree.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_tree
res_users_view_form_preference res.users.view.form.inherit.maintenance res.users xpath Inherits hr.res_users_view_form_profile
Models touched (4)

New fields (2)
  • equipment_count Integer
    compute='_compute_equipment_count' args: 'Equipments'
  • equipment_ids One2many → maintenance.equipment
    args: 'maintenance.equipment', 'employee_id'
Public methods (0)

No public methods.

New fields (4)
  • department_id Many2one → hr.department
    string='Assigned Department' tracking=True args: 'hr.department'
  • employee_id Many2one → hr.employee
    string='Assigned Employee' tracking=True args: 'hr.employee'
  • equipment_assign_to Selection
    default='employee' required=True string='Used By' args: [('department', 'Department'), ('employee', 'Employee'), ('other', 'Other')]
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)

New fields (3)
  • department_id Many2one → hr.department
    string='Department' args: 'hr.department'
  • employee_id Many2one → hr.employee
    default=_default_employee_get string='Employee' args: 'hr.employee'
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (4)
  • create(self, vals)
    @api.model
  • message_new(self, msg, custom_values=None)
    @api.model
    Overrides mail_thread message_new that is called by the mailgateway through message_process. This override updates the document according to the email.
  • onchange_department_or_employee_id(self)
    @api.onchange('employee_id', 'department_id')
  • write(self, vals)

New fields (2)
  • equipment_count Integer
    related='employee_id.equipment_count' string='Assigned Equipments'
  • equipment_ids One2many → maintenance.equipment
    string='Managed Equipments' args: 'maintenance.equipment', 'owner_user_id'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/hr_maintenance
VERSION
VERSION 1.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Simon Lejeune, GitHub, Yannick Tivisse, Pierre Masereel, Arnold Moyaux, Xavier-Do
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - maintenance
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        Bridge between HR and Maintenance.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
maintenance_equipment_view_form_inherit_hr maintenance.equipment.view.form.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_form
maintenance_equipment_view_kanban_inherit_hr maintenance.equipment.view.kanban.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_kanban
maintenance_equipment_view_search_inherit_hr maintenance.equipment.view.search.inherit.hr maintenance.equipment filter Inherits maintenance.hr_equipment_view_search
maintenance_equipment_view_tree_inherit_hr maintenance.equipment.view.tree.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_tree
maintenance_request_view_form_inherit_hr maintenance.request.view.form.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_form
maintenance_request_view_kanban_inherit_hr maintenance.request.view.kanban.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_kanban
maintenance_request_view_search_inherit_hr maintenance.request.view.search.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_search
maintenance_request_view_tree_inherit_hr maintenance.request.view.tree.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_tree
Models touched (2)

New fields (4)
  • department_id Many2one → hr.department
    string='Assigned to Department' track_visibility='onchange' args: 'hr.department'
  • employee_id Many2one → hr.employee
    string='Assigned to Employee' track_visibility='onchange' args: 'hr.employee'
  • equipment_assign_to Selection
    default='employee' required=True string='Used By' args: [('department', 'Department'), ('employee', 'Employee'), ('other', 'Other')]
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)
    @api.multi

New fields (3)
  • department_id Many2one → hr.department
    string='Department' args: 'hr.department'
  • employee_id Many2one → hr.employee
    default=_default_employee_get string='Employee' args: 'hr.employee'
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (4)
  • create(self, vals)
    @api.model
  • message_new(self, msg, custom_values=None)
    @api.model
    Overrides mail_thread message_new that is called by the mailgateway through message_process. This override updates the document according to the email.
  • onchange_department_or_employee_id(self)
    @api.onchange('employee_id', 'department_id')
  • write(self, vals)
    @api.multi
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/11.0/hr_maintenance
VERSION
VERSION 1.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Christophe Simonis, GitHub, Odoo Online, Adrian Torres
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:53:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - maintenance
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        Bridge between HR and Maintenance.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
maintenance_equipment_view_form_inherit_hr maintenance.equipment.view.form.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_form
maintenance_equipment_view_kanban_inherit_hr maintenance.equipment.view.kanban.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_kanban
maintenance_equipment_view_search_inherit_hr maintenance.equipment.view.search.inherit.hr maintenance.equipment filter Inherits maintenance.hr_equipment_view_search
maintenance_equipment_view_tree_inherit_hr maintenance.equipment.view.tree.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_tree
maintenance_request_view_form_inherit_hr maintenance.request.view.form.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_form
maintenance_request_view_kanban_inherit_hr maintenance.request.view.kanban.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_kanban
maintenance_request_view_search_inherit_hr maintenance.request.view.search.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_search
maintenance_request_view_tree_inherit_hr maintenance.request.view.tree.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_tree
Models touched (2)

New fields (4)
  • department_id Many2one → hr.department
    string='Assigned to Department' track_visibility='onchange' args: 'hr.department'
  • employee_id Many2one → hr.employee
    string='Assigned to Employee' track_visibility='onchange' args: 'hr.employee'
  • equipment_assign_to Selection
    default='employee' required=True string='Used By' args: [('department', 'Department'), ('employee', 'Employee'), ('other', 'Other')]
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)
    @api.multi

New fields (3)
  • department_id Many2one → hr.department
    string='Department' args: 'hr.department'
  • employee_id Many2one → hr.employee
    default=_default_employee_get string='Employee' args: 'hr.employee'
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (4)
  • create(self, vals)
    @api.model
  • message_new(self, msg, custom_values=None)
    @api.model
    Overrides mail_thread message_new that is called by the mailgateway through message_process. This override updates the document according to the email.
  • onchange_department_or_employee_id(self)
    @api.onchange('employee_id', 'department_id')
  • write(self, vals)
    @api.multi
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/10.0/hr_maintenance
VERSION
VERSION 1.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Goffin Simon
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:50:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr
    - base_setup
    - base
    - web_kanban
    - web
    - mail
    - bus
    - web_tour
    - resource
    - maintenance
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        Bridge between HR and Maintenance.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
maintenance_equipment_view_form_inherit_hr maintenance.equipment.view.form.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_form
maintenance_equipment_view_kanban_inherit_hr maintenance.equipment.view.kanban.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_kanban
maintenance_equipment_view_search_inherit_hr maintenance.equipment.view.search.inherit.hr maintenance.equipment filter Inherits maintenance.hr_equipment_view_search
maintenance_equipment_view_tree_inherit_hr maintenance.equipment.view.tree.inherit.hr maintenance.equipment xpath Inherits maintenance.hr_equipment_view_tree
maintenance_request_view_form_inherit_hr maintenance.request.view.form.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_form
maintenance_request_view_kanban_inherit_hr maintenance.request.view.kanban.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_kanban
maintenance_request_view_search_inherit_hr maintenance.request.view.search.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_search
maintenance_request_view_tree_inherit_hr maintenance.request.view.tree.inherit.hr maintenance.request xpath Inherits maintenance.hr_equipment_request_view_tree
Models touched (2)

New fields (4)
  • department_id Many2one → hr.department
    string='Assigned to Department' track_visibility='onchange' args: 'hr.department'
  • employee_id Many2one → hr.employee
    string='Assigned to Employee' track_visibility='onchange' args: 'hr.employee'
  • equipment_assign_to Selection
    default='employee' required=True string='Used By' args: [('department', 'Department'), ('employee', 'Employee'), ('other', 'Other')]
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)
    @api.multi

New fields (3)
  • department_id Many2one → hr.department
    string='Department' args: 'hr.department'
  • employee_id Many2one → hr.employee
    default=_default_employee_get string='Employee' args: 'hr.employee'
  • owner_user_id Many2one
    compute='_compute_owner' store=True
Public methods (4)
  • create(self, vals)
    @api.model
  • message_new(self, msg, custom_values=None)
    @api.model
    Overrides mail_thread message_new that is called by the mailgateway through message_process. This override updates the document according to the email.
  • onchange_department_or_employee_id(self)
    @api.onchange('employee_id', 'department_id')
  • write(self, vals)
    @api.multi