Hr Personal Equipment Request

hr_personal_equipment_request
REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/18.0/hr_personal_equipment_request
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Bhavesh Heliconia
WEBSITE
WEBSITEhttps://github.com/OCA/hr
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - hr
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - phone_validation
    - resource_mail
    - purchase
    - account
    - onboarding
    - analytic
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to create a personal equipment request and manage
allocation of employee personal equipment.

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
hr_employee_form_view hr.employee.form (in hr_personal_equipment_request) hr.employee xpath Inherits hr.view_employee_form
hr_personal_equipment_form_view hr.personal.equipment.form (in hr_personal_equipment_request) hr.personal.equipment form New
hr_personal_equipment_list_view hr.personal.equipment.list (in hr_personal_equipment_request) hr.personal.equipment list New
hr_personal_equipment_request_form_view hr.personal.equipment.request.form (in hr_personal_equipment_request) hr.personal.equipment.request form New
hr_personal_equipment_request_list_view hr.personal.equipment.request.list (in hr_personal_equipment_request) hr.personal.equipment.request list New
hr_personal_equipment_request_search_view hr.personal.equipment.request.search (in hr_personal_equipment_request) hr.personal.equipment.request search New
hr_personal_equipment_search_view hr.personal.equipment.search (in hr_personal_equipment_request) hr.personal.equipment search New
product_template_form_view product.template.form (in hr_personal_equipment_request) product.template xpath Inherits product.product_template_form_view
view_product_supplier_inherit product.template.supplier.form (in hr_personal_equipment_request) product.template xpath Inherits purchase.view_product_supplier_inherit
Models touched (4)

New fields (4)
  • equipment_request_count Integer
    compute='_compute_equipment_request_count'
  • equipment_request_ids One2many → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' inverse_name='employee_id'
  • personal_equipment_count Integer
    compute='_compute_personal_equipment_count'
  • personal_equipment_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' domain=[('state', 'not in', ['draft', 'cancelled'])] inverse_name='employee_id'
Public methods (2)
  • action_open_equipment_request(self)
  • action_open_personal_equipment(self)

New fields (9)
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' related='equipment_request_id.employee_id' store=True
  • equipment_request_id Many2one → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' ondelete='cascade' required=True
  • expiry_date Date
  • name Char
    compute='_compute_name'
  • product_id Many2one → product.product
    comodel_name='product.product' domain=[('is_personal_equipment', '=', True)] required=True
  • product_uom_id Many2one → uom.uom
    args: 'uom.uom', 'Unit of Measure'
  • quantity Integer
    default=1
  • start_date Date
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('valid', 'Valid'), ('expired', 'Expired'), ('cancelled', 'Cancelled')]
Public methods (2)
  • expire_allocation(self)
  • validate_allocation(self)

New fields (6)
  • allocations_count Integer
    compute='_compute_allocation_count'
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' default=<expr> required=True string='Employee'
  • line_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' copy=True inverse_name='equipment_request_id' string='Personal Equipment'
  • name Char
    compute='_compute_name'
  • observations Text
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('cancelled', 'Cancelled')]
Public methods (3)
  • accept_request(self)
  • action_open_personal_equipment(self)
  • cancel_request(self)

New fields (1)
  • is_personal_equipment Boolean
    default=False string='Is Employee Personal Equipment'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/17.0/hr_personal_equipment_request
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Antoni Marroig Campomar
WEBSITE
WEBSITEhttps://github.com/OCA/hr
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - hr
    - phone_validation
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to create a personal equipment request and manage
allocation of employee personal equipment.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
hr_employee_form_view hr.employee.form (in hr_personal_equipment_request) hr.employee xpath Inherits hr.view_employee_form
hr_personal_equipment_form_view hr.personal.equipment.form (in hr_personal_equipment_request) hr.personal.equipment form New
hr_personal_equipment_request_form_view hr.personal.equipment.request.form (in hr_personal_equipment_request) hr.personal.equipment.request form New
hr_personal_equipment_request_search_view hr.personal.equipment.request.search (in hr_personal_equipment_request) hr.personal.equipment.request search New
hr_personal_equipment_request_tree_view hr.personal.equipment.request.tree (in hr_personal_equipment_request) hr.personal.equipment.request tree New
hr_personal_equipment_search_view hr.personal.equipment.search (in hr_personal_equipment_request) hr.personal.equipment search New
hr_personal_equipment_tree_view hr.personal.equipment.tree (in hr_personal_equipment_request) hr.personal.equipment tree New
product_template_form_view product.template.form (in hr_personal_equipment_request) product.template xpath Inherits product.product_template_form_view
Models touched (4)

New fields (4)
  • equipment_request_count Integer
    compute='_compute_equipment_request_count'
  • equipment_request_ids One2many → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' inverse_name='employee_id'
  • personal_equipment_count Integer
    compute='_compute_personal_equipment_count'
  • personal_equipment_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' domain=[('state', 'not in', ['draft', 'cancelled'])] inverse_name='employee_id'
Public methods (2)
  • action_open_equipment_request(self)
  • action_open_personal_equipment(self)

New fields (9)
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' related='equipment_request_id.employee_id' store=True
  • equipment_request_id Many2one → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' ondelete='cascade' required=True
  • expiry_date Date
  • name Char
    compute='_compute_name'
  • product_id Many2one → product.product
    comodel_name='product.product' domain=[('is_personal_equipment', '=', True)] required=True
  • product_uom_id Many2one → uom.uom
    args: 'uom.uom', 'Unit of Measure'
  • quantity Integer
    default=1
  • start_date Date
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('valid', 'Valid'), ('expired', 'Expired'), ('cancelled', 'Cancelled')]
Public methods (2)
  • expire_allocation(self)
  • validate_allocation(self)

New fields (6)
  • allocations_count Integer
    compute='_compute_allocation_count'
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' default=<expr> required=True string='Employee'
  • line_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' copy=True inverse_name='equipment_request_id' string='Personal Equipment'
  • name Char
    compute='_compute_name'
  • observations Text
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('cancelled', 'Cancelled')]
Public methods (3)
  • accept_request(self)
  • action_open_personal_equipment(self)
  • cancel_request(self)

New fields (1)
  • is_personal_equipment Boolean
    default=False string='Is Employee Personal Equipment'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/16.0/hr_personal_equipment_request
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSGitHub, Weblate, OCA-git-bot, oca-ci, FernandoRomera, EdgarRetes
WEBSITE
WEBSITEhttps://github.com/OCA/hr
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - hr
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
hr_employee_form_view hr.employee.form (in hr_personal_equipment_request) hr.employee xpath Inherits hr.view_employee_form
hr_personal_equipment_form_view hr.personal.equipment.form (in hr_personal_equipment_request) hr.personal.equipment form New
hr_personal_equipment_request_form_view hr.personal.equipment.request.form (in hr_personal_equipment_request) hr.personal.equipment.request form New
hr_personal_equipment_request_search_view hr.personal.equipment.request.search (in hr_personal_equipment_request) hr.personal.equipment.request search New
hr_personal_equipment_request_tree_view hr.personal.equipment.request.tree (in hr_personal_equipment_request) hr.personal.equipment.request tree New
hr_personal_equipment_search_view hr.personal.equipment.search (in hr_personal_equipment_request) hr.personal.equipment search New
hr_personal_equipment_tree_view hr.personal.equipment.tree (in hr_personal_equipment_request) hr.personal.equipment tree New
product_template_form_view product.template.form (in hr_personal_equipment_request) product.template xpath Inherits product.product_template_form_view
Models touched (4)

New fields (4)
  • equipment_request_count Integer
    compute='_compute_equipment_request_count'
  • equipment_request_ids One2many → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' inverse_name='employee_id'
  • personal_equipment_count Integer
    compute='_compute_personal_equipment_count'
  • personal_equipment_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' domain=[('state', 'not in', ['draft', 'cancelled'])] inverse_name='employee_id'
Public methods (2)
  • action_open_equipment_request(self)
  • action_open_personal_equipment(self)

New fields (9)
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' related='equipment_request_id.employee_id' store=True
  • equipment_request_id Many2one → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' ondelete='cascade' required=True
  • expiry_date Date
  • name Char
    compute='_compute_name'
  • product_id Many2one → product.product
    comodel_name='product.product' domain=[('is_personal_equipment', '=', True)] required=True
  • product_uom_id Many2one → uom.uom
    args: 'uom.uom', 'Unit of Measure'
  • quantity Integer
    default=1
  • start_date Date
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('valid', 'Valid'), ('expired', 'Expired'), ('cancelled', 'Cancelled')]
Public methods (2)
  • expire_allocation(self)
  • validate_allocation(self)

New fields (6)
  • allocations_count Integer
    compute='_compute_allocation_count'
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' default=<expr> required=True string='Employee'
  • line_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' copy=True inverse_name='equipment_request_id' string='Personal Equipment'
  • name Char
    compute='_compute_name'
  • observations Text
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('cancelled', 'Cancelled')]
Public methods (3)
  • accept_request(self)
  • action_open_personal_equipment(self)
  • cancel_request(self)

New fields (1)
  • is_personal_equipment Boolean
    default=False string='Is Employee Personal Equipment'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/15.0/hr_personal_equipment_request
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSOCA Transbot, Weblate, OCA-git-bot, oca-ci, Olga Marco
WEBSITE
WEBSITEhttps://github.com/OCA/hr
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:36
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - hr
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
hr_employee_form_view hr.employee.form (in hr_personal_equipment_request) hr.employee xpath Inherits hr.view_employee_form
hr_personal_equipment_form_view hr.personal.equipment.form (in hr_personal_equipment_request) hr.personal.equipment form New
hr_personal_equipment_request_form_view hr.personal.equipment.request.form (in hr_personal_equipment_request) hr.personal.equipment.request form New
hr_personal_equipment_request_search_view hr.personal.equipment.request.search (in hr_personal_equipment_request) hr.personal.equipment.request search New
hr_personal_equipment_request_tree_view hr.personal.equipment.request.tree (in hr_personal_equipment_request) hr.personal.equipment.request tree New
hr_personal_equipment_search_view hr.personal.equipment.search (in hr_personal_equipment_request) hr.personal.equipment search New
hr_personal_equipment_tree_view hr.personal.equipment.tree (in hr_personal_equipment_request) hr.personal.equipment tree New
product_template_form_view product.template.form (in hr_personal_equipment_request) product.template xpath Inherits product.product_template_form_view
Models touched (4)

New fields (4)
  • equipment_request_count Integer
    compute='_compute_equipment_request_count'
  • equipment_request_ids One2many → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' inverse_name='employee_id'
  • personal_equipment_count Integer
    compute='_compute_personal_equipment_count'
  • personal_equipment_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' domain=[('state', 'not in', ['draft', 'cancelled'])] inverse_name='employee_id'
Public methods (2)
  • action_open_equipment_request(self)
  • action_open_personal_equipment(self)

New fields (9)
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' related='equipment_request_id.employee_id' store=True
  • equipment_request_id Many2one → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' ondelete='cascade' required=True
  • expiry_date Date
  • name Char
    compute='_compute_name'
  • product_id Many2one → product.product
    comodel_name='product.product' domain=[('is_personal_equipment', '=', True)] required=True
  • product_uom_id Many2one → uom.uom
    args: 'uom.uom', 'Unit of Measure'
  • quantity Integer
    default=1
  • start_date Date
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('valid', 'Valid'), ('expired', 'Expired'), ('cancelled', 'Cancelled')]
Public methods (2)
  • expire_allocation(self)
  • validate_allocation(self)

New fields (6)
  • allocations_count Integer
    compute='_compute_allocation_count'
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' default=<expr> required=True string='Employee'
  • line_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' copy=True inverse_name='equipment_request_id' string='Personal Equipment'
  • name Char
    compute='_compute_name'
  • observations Text
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('cancelled', 'Cancelled')]
Public methods (3)
  • accept_request(self)
  • action_open_personal_equipment(self)
  • cancel_request(self)

New fields (1)
  • is_personal_equipment Boolean
    default=False string='Is Employee Personal Equipment'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/14.0/hr_personal_equipment_request
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSEnric Tobella, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-ci, Alba Riera, aromera
WEBSITE
WEBSITEhttps://github.com/OCA/hr
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - hr
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
hr_employee_form_view hr.employee.form (in hr_personal_equipment_request) hr.employee xpath Inherits hr.view_employee_form
hr_personal_equipment_form_view hr.personal.equipment.form (in hr_personal_equipment_request) hr.personal.equipment form New
hr_personal_equipment_request_form_view hr.personal.equipment.request.form (in hr_personal_equipment_request) hr.personal.equipment.request form New
hr_personal_equipment_request_search_view hr.personal.equipment.request.search (in hr_personal_equipment_request) hr.personal.equipment.request search New
hr_personal_equipment_request_tree_view hr.personal.equipment.request.tree (in hr_personal_equipment_request) hr.personal.equipment.request tree New
hr_personal_equipment_search_view hr.personal.equipment.search (in hr_personal_equipment_request) hr.personal.equipment search New
hr_personal_equipment_tree_view hr.personal.equipment.tree (in hr_personal_equipment_request) hr.personal.equipment tree New
product_template_form_view product.template.form (in hr_personal_equipment_request) product.template xpath Inherits product.product_template_form_view
Models touched (4)

New fields (4)
  • equipment_request_count Integer
    compute='_compute_equipment_request_count'
  • equipment_request_ids One2many → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' inverse_name='employee_id'
  • personal_equipment_count Integer
    compute='_compute_personal_equipment_count'
  • personal_equipment_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' domain=[('state', 'not in', ['draft', 'cancelled'])] inverse_name='employee_id'
Public methods (2)
  • action_open_equipment_request(self)
  • action_open_personal_equipment(self)

New fields (9)
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' related='equipment_request_id.employee_id' store=True
  • equipment_request_id Many2one → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' ondelete='cascade' required=True
  • expiry_date Date
  • name Char
    compute='_compute_name'
  • product_id Many2one → product.product
    comodel_name='product.product' domain=[('is_personal_equipment', '=', True)] required=True
  • product_uom_id Many2one → uom.uom
    args: 'uom.uom', 'Unit of Measure'
  • quantity Integer
    default=1
  • start_date Date
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('valid', 'Valid'), ('expired', 'Expired'), ('cancelled', 'Cancelled')]
Public methods (2)
  • expire_allocation(self)
  • validate_allocation(self)

New fields (6)
  • allocations_count Integer
    compute='_compute_allocation_count'
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' default=<expr> required=True string='Employee'
  • line_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' copy=True inverse_name='equipment_request_id' string='Personal Equipment'
  • name Char
    compute='_compute_name'
  • observations Text
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('cancelled', 'Cancelled')]
Public methods (3)
  • accept_request(self)
  • action_open_personal_equipment(self)
  • cancel_request(self)

New fields (1)
  • is_personal_equipment Boolean
    default=False string='Is Employee Personal Equipment'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/13.0/hr_personal_equipment_request
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, Weblate, OCA-git-bot, Alba Riera
WEBSITE
WEBSITEhttps://github.com/OCA/hr
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - hr
    - resource
    - mail_bot
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
hr_employee_form_view hr.employee.form (in hr_personal_equipment_request) hr.employee xpath Inherits hr.view_employee_form
hr_personal_equipment_form_view hr.personal.equipment.form (in hr_personal_equipment_request) hr.personal.equipment form New
hr_personal_equipment_request_form_view hr.personal.equipment.request.form (in hr_personal_equipment_request) hr.personal.equipment.request form New
hr_personal_equipment_request_search_view hr.personal.equipment.request.search (in hr_personal_equipment_request) hr.personal.equipment.request search New
hr_personal_equipment_request_tree_view hr.personal.equipment.request.tree (in hr_personal_equipment_request) hr.personal.equipment.request tree New
hr_personal_equipment_search_view hr.personal.equipment.search (in hr_personal_equipment_request) hr.personal.equipment search New
hr_personal_equipment_tree_view hr.personal.equipment.tree (in hr_personal_equipment_request) hr.personal.equipment tree New
product_template_form_view product.template.form (in hr_personal_equipment_request) product.template xpath Inherits product.product_template_form_view
Models touched (4)

New fields (4)
  • equipment_request_count Integer
    compute='_compute_equipment_request_count'
  • equipment_request_ids One2many → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' inverse_name='employee_id'
  • personal_equipment_count Integer
    compute='_compute_personal_equipment_count'
  • personal_equipment_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' domain=[('state', 'not in', ['draft', 'cancelled'])] inverse_name='employee_id'
Public methods (2)
  • action_open_equipment_request(self)
  • action_open_personal_equipment(self)

New fields (9)
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' related='equipment_request_id.employee_id' store=True
  • equipment_request_id Many2one → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' ondelete='cascade' required=True
  • expiry_date Date
  • name Char
    compute='_compute_name'
  • product_id Many2one → product.product
    comodel_name='product.product' domain=[('is_personal_equipment', '=', True)] required=True
  • product_uom_id Many2one → uom.uom
    args: 'uom.uom', 'Unit of Measure'
  • quantity Integer
    default=1
  • start_date Date
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('valid', 'Valid'), ('expired', 'Expired'), ('cancelled', 'Cancelled')]
Public methods (2)
  • expire_allocation(self)
  • validate_allocation(self)

New fields (6)
  • allocations_count Integer
    compute='_compute_allocation_count'
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' default=<expr> required=True string='Employee'
  • line_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' copy=True inverse_name='equipment_request_id' string='Personal Equipment'
  • name Char
    compute='_compute_name'
  • observations Text
  • state Selection
    default='draft' tracking=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('cancelled', 'Cancelled')]
Public methods (3)
  • accept_request(self)
  • action_open_personal_equipment(self)
  • cancel_request(self)

New fields (1)
  • is_personal_equipment Boolean
    default=False string='Is Employee Personal Equipment'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/12.0/hr_personal_equipment_request
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSoca-travis, Weblate, OCA-git-bot, Alba Riera
WEBSITE
WEBSITEhttps://github.com/OCA/hr
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - hr
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
hr_employee_form_view hr.employee.form (in hr_personal_equipment_request) hr.employee xpath Inherits hr.view_employee_form
hr_personal_equipment_form_view hr.personal.equipment.form (in hr_personal_equipment_request) hr.personal.equipment form New
hr_personal_equipment_request_form_view hr.personal.equipment.request.form (in hr_personal_equipment_request) hr.personal.equipment.request form New
hr_personal_equipment_request_search_view hr.personal.equipment.request.search (in hr_personal_equipment_request) hr.personal.equipment.request search New
hr_personal_equipment_request_tree_view hr.personal.equipment.request.tree (in hr_personal_equipment_request) hr.personal.equipment.request tree New
hr_personal_equipment_search_view hr.personal.equipment.search (in hr_personal_equipment_request) hr.personal.equipment search New
hr_personal_equipment_tree_view hr.personal.equipment.tree (in hr_personal_equipment_request) hr.personal.equipment tree New
product_template_form_view product.template.form (in hr_personal_equipment_request) product.template xpath Inherits product.product_template_form_view
Models touched (4)

New fields (4)
  • equipment_request_count Integer
    compute='_compute_equipment_request_count'
  • equipment_request_ids One2many → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' inverse_name='employee_id'
  • personal_equipment_count Integer
    compute='_compute_personal_equipment_count'
  • personal_equipment_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' domain=[('state', 'not in', ['draft', 'cancelled'])] inverse_name='employee_id'
Public methods (2)
  • action_open_equipment_request(self)
  • action_open_personal_equipment(self)

New fields (8)
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' related='equipment_request_id.employee_id' store=True
  • equipment_request_id Many2one → hr.personal.equipment.request
    comodel_name='hr.personal.equipment.request' ondelete='cascade' required=True
  • name Char
    compute='_compute_name'
  • product_id Many2one → product.product
    comodel_name='product.product' domain=[('is_personal_equipment', '=', True)] required=True
  • product_uom_id Many2one → uom.uom
    args: 'uom.uom', 'Unit of Measure'
  • quantity Integer
    default=1
  • start_date Date
  • state Selection
    default='draft' track_visibility=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('valid', 'Valid'), ('expired', 'Expired'), ('cancelled', 'Cancelled')]
Public methods (2)
  • expire_allocation(self)
  • validate_allocation(self)

New fields (5)
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' default=<expr> required=True string='Employee'
  • line_ids One2many → hr.personal.equipment
    comodel_name='hr.personal.equipment' copy=True inverse_name='equipment_request_id' string='Personal Equipment'
  • name Char
    compute='_compute_name'
  • observations Text
  • state Selection
    default='draft' track_visibility=True args: [('draft', 'Draft'), ('accepted', 'Accepted'), ('cancelled', 'Cancelled')]
Public methods (2)
  • accept_request(self)
  • cancel_request(self)

New fields (1)
  • is_personal_equipment Boolean
    default=False string='Is Employee Personal Equipment'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/hr
PULL REQUEST
PULL REQUEST[19.0] [MIG] hr_personal_equipment_request: Migration to 19.0 (#1530)