HR Contract Multi Jobs

hr_contract_multi_jobs
REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/10.0/hr_contract_multi_jobs
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeneric Modules/Human Resources
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Fekete Mihai (Forest and Biomass Services Romania), Savoir-faire Linux
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Fekete Mihai (Forest and Biomass Services Romania), Savoir-faire Linux
COMMITTERS
COMMITTERSPedro M. Baeza, Stéphane Bidoul (ACSONE), Iryna Vushnevska
WEBSITE
WEBSITEhttps://www.savoirfairelinux.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_contract
    - base_action_rule
    - base
    - resource
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - hr
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
hr_contract_view_form hr.contract.view.form hr.contract field Inherits hr_contract.hr_contract_view_form
Models touched (3)

New fields (2)
  • contract_job_ids One2many → hr.contract.job
    string='Jobs' args: 'hr.contract.job', 'contract_id'
  • job_id Many2one → hr.job
    compute='_get_main_job_position' store=True string='Job Title' args: 'hr.job'
Public methods (0)

No public methods.

New fields (4)
  • contract_id Many2one → hr.contract
    ondelete='cascade' required=True string='Contract' args: 'hr.contract'
  • is_main_job Boolean
    string='Main Job Position'
  • job_id Many2one → hr.job
    ondelete='cascade' required=True string='Job' args: 'hr.job'
  • name Char
    index=True related='job_id.name' string='Job'
Public methods (0)

No public methods.

New fields (1)
  • contract_job_ids One2many → hr.contract.job
    string='Contract Jobs' args: 'hr.contract.job', 'job_id'
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/9.0/hr_contract_multi_jobs
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeneric Modules/Human Resources
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Fekete Mihai (Forest and Biomass Services Romania), Savoir-faire Linux
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Fekete Mihai (Forest and Biomass Services Romania), Savoir-faire Linux
COMMITTERS
COMMITTERSPedro M. Baeza, Stéphane Bidoul (ACSONE)
WEBSITE
WEBSITEhttps://www.savoirfairelinux.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_contract
    - base_action_rule
    - base
    - resource
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - hr
    - web_tip
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
hr_contract_view_form hr.contract.view.form hr.contract field Inherits hr_contract.hr_contract_view_form
Models touched (3)

New fields (2)
  • contract_job_ids One2many → hr.contract.job
    string='Jobs' args: 'hr.contract.job', 'contract_id'
  • job_id Many2one → hr.job
    compute='_get_main_job_position' store=True string='Job Title' args: 'hr.job'
Public methods (0)

No public methods.

New fields (4)
  • contract_id Many2one → hr.contract
    ondelete='cascade' required=True string='Contract' args: 'hr.contract'
  • is_main_job Boolean
    string='Main Job Position'
  • job_id Many2one → hr.job
    ondelete='cascade' required=True string='Job' args: 'hr.job'
  • name Char
    index=True related='job_id.name' string='Job'
Public methods (0)

No public methods.

New fields (1)
  • contract_job_ids One2many → hr.contract.job
    string='Contract Jobs' args: 'hr.contract.job', 'job_id'
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/8.0/hr_contract_multi_jobs
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeneric Modules/Human Resources
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Fekete Mihai (Forest and Biomass Services Romania), Savoir-faire Linux
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Fekete Mihai (Forest and Biomass Services Romania), Savoir-faire Linux
COMMITTERS
COMMITTERSStéphane Bidoul, Fekete Mihai, Stéphane Bidoul (ACSONE), Alex Comba, OCA Transbot, dufresnedavid, oca-travis, Weblate
WEBSITE
WEBSITEhttps://www.savoirfairelinux.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_contract
    - base_action_rule
    - base
    - resource
    - mail
    - base_setup
    - web_kanban
    - web
    - hr
    - board
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
hr_contract_view_form hr.contract.view.form hr.contract field Inherits hr_contract.hr_contract_view_form
Models touched (3)

New fields (2)
  • contract_job_ids One2many → hr.contract.job
    string='Jobs' args: 'hr.contract.job', 'contract_id'
  • job_id Many2one → hr.job
    compute='_get_main_job_position' store=True string='Job Title' args: 'hr.job'
Public methods (0)

No public methods.

New fields (4)
  • contract_id Many2one → hr.contract
    ondelete='cascade' required=True string='Contract' args: 'hr.contract'
  • is_main_job Boolean
    string='Main Job Position'
  • job_id Many2one → hr.job
    ondelete='cascade' required=True string='Job' args: 'hr.job'
  • name Char
    index=True related='job_id.name' string='Job'
Public methods (0)

No public methods.

New fields (1)
  • contract_job_ids One2many → hr.contract.job
    string='Contract Jobs' args: 'hr.contract.job', 'job_id'
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/7.0/hr_contract_multi_jobs
VERSION
VERSION 1.0
CATEGORY
CATEGORYGeneric Modules/Human Resources
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Savoir-faire Linux
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Savoir-faire Linux
COMMITTERS
COMMITTERSAlexandre Fayolle, Stéphane Bidoul (ACSONE), OCA Transbot, Rudolf Schnapka, dufresnedavid, Maxime Chambreuil - http://www.savoirfairelinux.com
WEBSITE
WEBSITEhttps://www.savoirfairelinux.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_contract
    - hr
    - base_setup
    - base
    - web_kanban
    - web
    - mail
    - resource
    - process
    - board
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Contract Multi Jobs
===================
In some companies, one employee may have more than one job position with a
different hourly rate based wage.

An example is a construction worker who makes different types of jobs
for the same company like bricklaying, electricity, carpentry.

Also in restaurants, a waiter can also work as a barman.

This module enables multiple job positions for one contract

Contributors
------------
* David Dufresne <david.dufresne@savoirfairelinux.com>
* Pierre Lamarche <pierre.lamarche@savoirfairelinux.com>

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
hr_contract_view_form hr.contract.view.form hr.contract field Inherits hr_contract.hr_contract_view_form
Models touched (3)

New fields (0)

No new fields.

Public methods (2)
  • create(self, cr, uid, vals, context=None)
  • write(self, cr, uid, ids, vals, context=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.