| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/18.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Contracts |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Xavier ALT, Christophe Simonis, Damien Bouvy, Yannick Tivisse, Odoo Online, Pierre Masereel, Adrien Dieudonné, Nasreddin Boulif (bon), Prakash Prajapati, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, sofiagvaladze, Florian Damhaut, Audric Onockx (auon), Dossogne Bertrand, bve-odoo, Louis Wicket (wil), Pierre-Yves Dufays, Levi Siuzdak (sile), Dylan Kiss (dyki), Mattis Megevand (mmeg), omra-odoo, Paul Stroobant, ravb-odoo, Mélanie, Youssef Bashandy, Maryam Kia, Flotchet, jugj-odoo, Julien Carion (juca), Ahmad (khah), sami odoo, Louis (wil), Kacper Gasior, Abdelrahman Mahmoud (amah), sapp-odoo, Chris Duvivier, Pierre Pulinckx (pipu), laro-odoo, Ajit Singh, kareem, dhka-odoo, Einar Andersen (eian), assh-odoo, arpr-odoo, Arthur Pierrot |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:25:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - digest - bus - web_tour - html_editor - portal - web_editor - http_routing - auth_signup - resource - phone_validation - resource_mail |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_history_view_form |
hr.contract.history.form | hr.contract.history | form | New |
hr_contract_history_view_kanban |
hr.contract.history.view.kanban | hr.contract.history | kanban | New |
hr_contract_history_view_list |
hr.contract.history.list | hr.contract.history | list | New |
hr_contract_history_view_search |
hr.contract.history.search | hr.contract.history | search | New |
hr_contract_view_activity |
hr.contract.activity | hr.contract | activity | New |
hr_contract_view_form |
hr.contract.form | hr.contract | form | New |
hr_contract_view_kanban |
hr.contract.kanban | hr.contract | kanban | New |
hr_contract_view_search |
hr.contract.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.list | hr.contract | list | New |
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_graph_inherit_hr_contract |
hr.employee.view.graph | hr.employee | field | Inherits hr.hr_employee_view_graph |
hr_employee_view_pivot_inherit_hr_contract |
hr.employee.view.pivot | hr.employee | field | Inherits hr.hr_employee_view_pivot |
hr_employee_view_search |
hr.employee.view.search.inherit.contract | hr.employee | xpath | Inherits hr.view_employee_filter |
hr_employee_view_search |
hr.employee.view.search | hr.employee | data | Inherits hr.view_employee_filter |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
hr_hr_employee_view_form3 |
hr.hr.employee.view.form3 | hr.employee | data | Inherits hr.view_employee_form |
hr_user_view_form |
hr.user.preferences.view.form.contract.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.contract | res.config.settings | xpath | Inherits hr.res_config_settings_view_form |
resource_calendar_view_form |
resource.calendar.view.form.inherit.hr.contract | resource.calendar | div | Inherits resource.resource_calendar_form |
resource_calendar_view_tree |
resource.calendar.view.list.inherit.hr.contract | resource.calendar | field | Inherits resource.view_resource_calendar_tree |
view_employee_public_form |
hr.employee.public | xpath | Inherits hr.hr_employee_public_view_form | |
view_employee_tree |
hr.employee.list | hr.employee | xpath | Inherits hr.view_employee_tree |
active
Boolean
default=True
active_employee
Boolean
related='employee_id.active'
string='Active Employee'
calendar_mismatch
Boolean
compute='_compute_calendar_mismatch'
compute_sudo=True
company_country_id
Many2one → res.country
readonly=True
related='company_id.country_id'
string='Company country'
args: 'res.country'
company_id
Many2one → res.company
compute='_compute_employee_contract'
default=<expr>
readonly=False
required=True
store=True
args: 'res.company'
contract_type_id
Many2one → hr.contract.type
tracking=True
args: 'hr.contract.type', 'Contract Type'
contract_wage
Monetary
compute='_compute_contract_wage'
args: 'Contract Wage'
contracts_count
Integer
groups='hr_contract.group_hr_contract_employee_manager'
related='employee_id.contracts_count'
country_code
Char
depends=['company_country_id']
readonly=True
related='company_country_id.code'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
help="End date of the contract (if it's a fixed-term contract)."
tracking=True
args: 'End Date'
date_start
Date
default=fields.Date.today
index=True
required=True
tracking=True
args: 'Start Date'
department_id
Many2one → hr.department
compute='_compute_employee_contract'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
string='Employee'
tracking=True
args: 'hr.employee'
first_contract_date
Date
related='employee_id.first_contract_date'
hr_responsible_id
Many2one → res.users
domain=_get_hr_responsible_domain
help="Person responsible for validating the employee's contracts."
tracking=True
args: 'res.users', 'HR Responsible'
job_id
Many2one → hr.job
compute='_compute_employee_contract'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Job Position'
args: 'hr.job'
kanban_state
Selection
copy=False
default='normal'
string='Kanban State'
tracking=True
args: [('normal', 'Ongoing'), ('done', 'Ready'), ('blocked', 'Warning')]
name
Char
required=True
args: 'Contract Reference'
notes
Html
permit_no
Char
readonly=False
related='employee_id.permit_no'
args: 'Work Permit No'
resource_calendar_id
Many2one → resource.calendar
compute='_compute_employee_contract'
copy=False
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
readonly=False
store=True
tracking=True
args: 'resource.calendar', 'Working Schedule'
state
Selection
copy=False
default='draft'
group_expand=True
help='Status of the contract'
string='Status'
tracking=True
args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')]
structure_type_id
Many2one → hr.payroll.structure.type
compute='_compute_structure_type_id'
readonly=False
store=True
string='Salary Structure Type'
tracking=True
args: 'hr.payroll.structure.type'
trial_date_end
Date
help='End date of the trial period (if there is one).'
args: 'End of Trial Period'
visa_no
Char
readonly=False
related='employee_id.visa_no'
args: 'Visa No'
wage
Monetary
aggregator='avg'
help="Employee's monthly gross wage."
required=True
tracking=True
args: 'Wage'
action_open_contract_form(self)
action_open_contract_history(self)
action_open_contract_list(self)
create(self, vals_list)
update_state(self)
write(self, vals)
active_employee
Boolean
readonly=True
args: 'Active Employee'
activity_state
Selection
related='contract_id.activity_state'
company_country_id
Many2one → res.country
readonly=True
related='company_id.country_id'
string='Company country'
args: 'res.country'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
contract_count
Integer
compute='_compute_contract_count'
string='# Contracts'
contract_id
Many2one → hr.contract
readonly=True
args: 'hr.contract'
contract_ids
One2many → hr.contract
compute='_compute_contract_ids'
compute_sudo=True
readonly=True
string='Contracts'
args: 'hr.contract'
contract_type_id
Many2one → hr.contract.type
readonly=True
args: 'hr.contract.type', 'Contract Type'
country_code
Char
depends=['company_country_id']
readonly=True
related='company_country_id.code'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
readonly=True
args: 'End Date'
date_hired
Date
readonly=True
args: 'Hire Date'
date_start
Date
readonly=True
args: 'Start Date'
department_id
Many2one → hr.department
readonly=True
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
readonly=True
string='Employee'
args: 'hr.employee'
hr_responsible_id
Many2one → res.users
readonly=True
string='HR Responsible'
args: 'res.users'
is_under_contract
Boolean
readonly=True
args: 'Is Currently Under Contract'
job_id
Many2one → hr.job
readonly=True
string='Job Position'
args: 'hr.job'
name
Char
readonly=True
args: 'Contract Name'
resource_calendar_id
Many2one → resource.calendar
readonly=True
string='Working Schedule'
args: 'resource.calendar'
state
Selection
readonly=True
string='Status'
args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')]
structure_type_id
Many2one → hr.payroll.structure.type
readonly=True
string='Salary Structure Type'
args: 'hr.payroll.structure.type'
under_contract_state
Selection
compute='_compute_under_contract_state'
string='Contractual Status'
args: [('done', 'Under Contract'), ('blocked', 'Not Under Contract')]
wage
Monetary
aggregator='avg'
help="Employee's monthly gross wage."
readonly=True
args: 'Wage'
hr_contract_view_form_new_action(self)
init(self)
set_date_end
Boolean
default=<expr>
help='Set the end date on the current contract.'
string='Set Contract End Date'
action_register_departure(self)
calendar_mismatch
Boolean
groups='base.group_system,hr.group_hr_user'
related='contract_id.calendar_mismatch'
contract_id
Many2one → hr.contract
copy=False
domain="[('company_id', '=', company_id), ('employee_id', '=', id)]"
groups='hr.group_hr_user'
help='Current contract of the employee'
string='Current Contract'
args: 'hr.contract'
contract_ids
One2many → hr.contract
groups='hr.group_hr_user'
string='Employee Contracts'
args: 'hr.contract', 'employee_id'
contract_warning
Boolean
compute='_compute_contract_warning'
groups='hr.group_hr_user'
store=True
string='Contract Warning'
contracts_count
Integer
compute='_compute_contracts_count'
groups='hr.group_hr_user'
string='Contract Count'
first_contract_date
Date
compute='_compute_first_contract_date'
groups='hr.group_hr_user'
store=True
legal_name
Char
compute='_compute_legal_name'
groups='hr.group_hr_user'
readonly=False
store=True
vehicle
Char
groups='hr.group_hr_user'
string='Company Vehicle'
action_open_contract(self)
filter_valid(self, checked_date)
write(self, vals)
No new fields.
Public methods (0)No public methods.
first_contract_date
Date
compute='_compute_manager_only_fields'
search='_search_first_contract_date'
No public methods.
country_code
Char
related='country_id.code'
country_id
Many2one → res.country
default=<expr>
string='Country'
args: 'res.country'
default_resource_calendar_id
Many2one → resource.calendar
default=<expr>
args: 'resource.calendar', 'Default Working Hours'
name
Char
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
contract_expiration_notice_period
Integer
default=7
args: 'Contract Expiry Notice Period'
work_permit_expiration_notice_period
Integer
default=60
args: 'Work Permit Expiry Notice Period'
No public methods.
contract_expiration_notice_period
Integer
readonly=False
related='company_id.contract_expiration_notice_period'
string='Contract Expiry Notice Period'
work_permit_expiration_notice_period
Integer
readonly=False
related='company_id.work_permit_expiration_notice_period'
string='Work Permit Expiry Notice Period'
No public methods.
bank_account_id
Many2one
related='employee_id.bank_account_id'
vehicle
Char
related='employee_id.vehicle'
SELF_READABLE_FIELDS(self)
contracts_count
Integer
compute='_compute_contracts_count'
groups='hr_contract.group_hr_contract_manager'
args: '# Contracts using it'
action_open_contracts(self)
transfer_leaves_to(self, other_calendar, resources=None, from_date=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/17.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Contracts |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Denis Ledoux, Xavier ALT, Christophe Simonis, Xavier Morel, GitHub, Damien Bouvy, Yannick Tivisse, Odoo Online, Pierre Masereel, Jorge Pinna Puissant, Alexandre Kühn, Xavier-Do, Victor Feyens, alt-odoo, Samuel Degueldre, Prakash Prajapati, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Pierre Paridans, Kevin Baptiste, Philippe Wauthy, pedrambiria, sofiagvaladze, Audric Onockx (auon), Dossogne Bertrand, bve-odoo, Thomas Lefebvre (thle), Louis Wicket (wil), Pierre-Yves Dufays, Jurgen (jugj), Levi Siuzdak (sile), Dylan Kiss (dyki), FrancoisGe, mehjabin, prye-odoo, Kartik Chavda, TN Tommy, Brieuc-brd, Mattis Megevand (mmeg), Paul Stroobant, dasz, Youssef Bashandy, bary, Flotchet, jugj-odoo, Ahmad (khah), Louis (wil), Elisabeth Dickinson, Kacper Gasior, Abdelrahman Mahmoud (amah), Sina Chaichi Maleki (cmsi), Carmine, Arthur Pierrot (arpi), Arthur Pierrot |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:02:10 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - phone_validation - bus - web_tour - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_history_view_form |
hr.contract.history.form | hr.contract.history | form | New |
hr_contract_history_view_kanban |
hr.contract.history.view.kanban | hr.contract.history | kanban | New |
hr_contract_history_view_list |
hr.contract.history.list | hr.contract.history | tree | New |
hr_contract_history_view_search |
hr.contract.history.search | hr.contract.history | search | New |
hr_contract_view_activity |
hr.contract.activity | hr.contract | activity | New |
hr_contract_view_form |
hr.contract.form | hr.contract | form | New |
hr_contract_view_kanban |
hr.contract.kanban | hr.contract | kanban | New |
hr_contract_view_search |
hr.contract.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.tree | hr.contract | tree | New |
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_graph_inherit_hr_contract |
hr.employee.view.graph | hr.employee | field | Inherits hr.hr_employee_view_graph |
hr_employee_view_pivot_inherit_hr_contract |
hr.employee.view.pivot | hr.employee | field | Inherits hr.hr_employee_view_pivot |
hr_employee_view_search |
hr.employee.view.search.inherit.contract | hr.employee | xpath | Inherits hr.view_employee_filter |
hr_employee_view_search |
hr.employee.view.search | hr.employee | data | Inherits hr.view_employee_filter |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
hr_hr_employee_view_form3 |
hr.hr.employee.view.form3 | hr.employee | data | Inherits hr.view_employee_form |
hr_user_view_form |
hr.user.preferences.view.form.contract.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.contract | res.config.settings | xpath | Inherits hr.res_config_settings_view_form |
resource_calendar_view_form |
resource.calendar.view.form.inherit.hr.contract | resource.calendar | div | Inherits resource.resource_calendar_form |
resource_calendar_view_tree |
resource.calendar.view.tree.inherit.hr.contract | resource.calendar | field | Inherits resource.view_resource_calendar_tree |
view_employee_public_form |
hr.employee.public | xpath | Inherits hr.hr_employee_public_view_form | |
view_employee_tree |
hr.employee.tree | hr.employee | xpath | Inherits hr.view_employee_tree |
active
Boolean
default=True
calendar_mismatch
Boolean
compute='_compute_calendar_mismatch'
compute_sudo=True
company_country_id
Many2one → res.country
readonly=True
related='company_id.country_id'
string='Company country'
args: 'res.country'
company_id
Many2one → res.company
compute='_compute_employee_contract'
default=<expr>
readonly=False
required=True
store=True
args: 'res.company'
contract_type_id
Many2one → hr.contract.type
tracking=True
args: 'hr.contract.type', 'Contract Type'
contract_wage
Monetary
compute='_compute_contract_wage'
args: 'Contract Wage'
contracts_count
Integer
related='employee_id.contracts_count'
country_code
Char
depends=['company_country_id']
readonly=True
related='company_country_id.code'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
help="End date of the contract (if it's a fixed-term contract)."
tracking=True
args: 'End Date'
date_start
Date
default=fields.Date.today
index=True
required=True
tracking=True
args: 'Start Date'
department_id
Many2one → hr.department
compute='_compute_employee_contract'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
string='Employee'
tracking=True
args: 'hr.employee'
first_contract_date
Date
related='employee_id.first_contract_date'
hr_responsible_id
Many2one → res.users
domain=_get_hr_responsible_domain
help="Person responsible for validating the employee's contracts."
tracking=True
args: 'res.users', 'HR Responsible'
job_id
Many2one → hr.job
compute='_compute_employee_contract'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Job Position'
args: 'hr.job'
kanban_state
Selection
copy=False
default='normal'
string='Kanban State'
tracking=True
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
name
Char
required=True
args: 'Contract Reference'
notes
Html
permit_no
Char
readonly=False
related='employee_id.permit_no'
args: 'Work Permit No'
resource_calendar_id
Many2one → resource.calendar
compute='_compute_employee_contract'
copy=False
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
readonly=False
store=True
tracking=True
args: 'resource.calendar', 'Working Schedule'
state
Selection
copy=False
default='draft'
group_expand='_expand_states'
help='Status of the contract'
string='Status'
tracking=True
args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')]
structure_type_id
Many2one → hr.payroll.structure.type
compute='_compute_structure_type_id'
readonly=False
store=True
string='Salary Structure Type'
tracking=True
args: 'hr.payroll.structure.type'
trial_date_end
Date
help='End date of the trial period (if there is one).'
args: 'End of Trial Period'
visa_no
Char
readonly=False
related='employee_id.visa_no'
args: 'Visa No'
wage
Monetary
group_operator='avg'
help="Employee's monthly gross wage."
required=True
tracking=True
args: 'Wage'
action_open_contract_form(self)
action_open_contract_history(self)
action_open_contract_list(self)
create(self, vals_list)
update_state(self)
write(self, vals)
active_employee
Boolean
readonly=True
args: 'Active Employee'
activity_state
Selection
related='contract_id.activity_state'
company_country_id
Many2one → res.country
readonly=True
related='company_id.country_id'
string='Company country'
args: 'res.country'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
contract_count
Integer
compute='_compute_contract_count'
string='# Contracts'
contract_id
Many2one → hr.contract
readonly=True
args: 'hr.contract'
contract_ids
One2many → hr.contract
compute='_compute_contract_ids'
compute_sudo=True
readonly=True
string='Contracts'
args: 'hr.contract'
contract_type_id
Many2one → hr.contract.type
readonly=True
args: 'hr.contract.type', 'Contract Type'
country_code
Char
depends=['company_country_id']
readonly=True
related='company_country_id.code'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
readonly=True
args: 'End Date'
date_hired
Date
readonly=True
args: 'Hire Date'
date_start
Date
readonly=True
args: 'Start Date'
department_id
Many2one → hr.department
readonly=True
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
readonly=True
string='Employee'
args: 'hr.employee'
hr_responsible_id
Many2one → res.users
readonly=True
string='HR Responsible'
args: 'res.users'
is_under_contract
Boolean
readonly=True
args: 'Is Currently Under Contract'
job_id
Many2one → hr.job
readonly=True
string='Job Position'
args: 'hr.job'
name
Char
readonly=True
args: 'Contract Name'
resource_calendar_id
Many2one → resource.calendar
readonly=True
string='Working Schedule'
args: 'resource.calendar'
state
Selection
readonly=True
string='Status'
args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')]
structure_type_id
Many2one → hr.payroll.structure.type
readonly=True
string='Salary Structure Type'
args: 'hr.payroll.structure.type'
under_contract_state
Selection
compute='_compute_under_contract_state'
string='Contractual Status'
args: [('done', 'Under Contract'), ('blocked', 'Not Under Contract')]
wage
Monetary
group_operator='avg'
help="Employee's monthly gross wage."
readonly=True
args: 'Wage'
hr_contract_view_form_new_action(self)
init(self)
set_date_end
Boolean
default=<expr>
help='Set the end date on the current contract.'
string='Set Contract End Date'
action_register_departure(self)
calendar_mismatch
Boolean
related='contract_id.calendar_mismatch'
contract_id
Many2one → hr.contract
copy=False
domain="[('company_id', '=', company_id), ('employee_id', '=', id)]"
groups='hr.group_hr_user'
help='Current contract of the employee'
string='Current Contract'
args: 'hr.contract'
contract_ids
One2many → hr.contract
string='Employee Contracts'
args: 'hr.contract', 'employee_id'
contract_warning
Boolean
compute='_compute_contract_warning'
groups='hr.group_hr_user'
store=True
string='Contract Warning'
contracts_count
Integer
compute='_compute_contracts_count'
string='Contract Count'
first_contract_date
Date
compute='_compute_first_contract_date'
groups='hr.group_hr_user'
store=True
vehicle
Char
groups='hr.group_hr_user'
string='Company Vehicle'
action_open_contract(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
first_contract_date
Date
compute='_compute_manager_only_fields'
search='_search_first_contract_date'
No public methods.
country_code
Char
related='country_id.code'
country_id
Many2one → res.country
default=<expr>
string='Country'
args: 'res.country'
default_resource_calendar_id
Many2one → resource.calendar
default=<expr>
args: 'resource.calendar', 'Default Working Hours'
name
Char
No public methods.
No new fields.
Public methods (0)No public methods.
contract_expiration_notice_period
Integer
default=7
args: 'Contract Expiry Notice Period'
work_permit_expiration_notice_period
Integer
default=60
args: 'Work Permit Expiry Notice Period'
No public methods.
contract_expiration_notice_period
Integer
readonly=False
related='company_id.contract_expiration_notice_period'
string='Contract Expiry Notice Period'
work_permit_expiration_notice_period
Integer
readonly=False
related='company_id.work_permit_expiration_notice_period'
string='Work Permit Expiry Notice Period'
No public methods.
bank_account_id
Many2one
related='employee_id.bank_account_id'
vehicle
Char
related='employee_id.vehicle'
SELF_READABLE_FIELDS(self)
contracts_count
Integer
compute='_compute_contracts_count'
groups='hr_contract.group_hr_contract_manager'
args: '# Contracts using it'
action_open_contracts(self)
transfer_leaves_to(self, other_calendar, resources=None, from_date=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/16.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Contracts |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Denis Ledoux, Christophe Simonis, Xavier Morel, Aaron Bohy, Damien Bouvy, Yannick Tivisse, Xavier-Do, David Tran, Romeo Fragomeli, Luis Torres, Victor Feyens, alt-odoo, Prakash Prajapati, Tiffany Chang (tic), Gorash, Pierre Paridans, William Braeckman, Kevin Baptiste, Stefan-Calin Crainiciuc (stcc), Philippe Wauthy, pedrambiria, sofiagvaladze, Audric Onockx (auon), Thibault Libioulle, Dossogne Bertrand, bve-odoo, Thomas Lefebvre (thle), Louis Wicket (wil), Jurgen (jugj), Levi Siuzdak (sile), TN Tommy, Paul Stroobant, bary, Flotchet, jugj-odoo, Martin Trigaux (mat), Ahmad (khah), Kacper Gasior, Abdelrahman Mahmoud (amah) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:53 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_history_view_form |
hr.contract.history.form | hr.contract.history | form | New |
hr_contract_history_view_kanban |
hr.contract.history.view.kanban | hr.contract.history | kanban | New |
hr_contract_history_view_list |
hr.contract.history.list | hr.contract.history | tree | New |
hr_contract_history_view_search |
hr.contract.history.search | hr.contract.history | search | New |
hr_contract_view_activity |
hr.contract.activity | hr.contract | activity | New |
hr_contract_view_form |
hr.contract.form | hr.contract | form | New |
hr_contract_view_kanban |
hr.contract.kanban | hr.contract | kanban | New |
hr_contract_view_search |
hr.contract.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.tree | hr.contract | tree | New |
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 | hr.employee.public | field | Inherits hr.hr_employee_public_view_form |
hr_employee_view_search |
hr.employee.view.search | hr.employee | data | Inherits hr.view_employee_filter |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
hr_user_view_form |
hr.user.preferences.view.form.contract.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
resource_calendar_view_form |
resource.calendar.view.form.inherit.hr.contract | resource.calendar | div | Inherits resource.resource_calendar_form |
resource_calendar_view_tree |
resource.calendar.view.tree.inherit.hr.contract | resource.calendar | field | Inherits resource.view_resource_calendar_tree |
view_employee_tree |
hr.employee.tree | hr.employee | xpath | Inherits hr.view_employee_tree |
active
Boolean
default=True
calendar_mismatch
Boolean
compute='_compute_calendar_mismatch'
compute_sudo=True
company_country_id
Many2one → res.country
readonly=True
related='company_id.country_id'
string='Company country'
args: 'res.country'
company_id
Many2one → res.company
compute='_compute_employee_contract'
default=<expr>
readonly=False
required=True
store=True
args: 'res.company'
contract_type_id
Many2one → hr.contract.type
contract_wage
Monetary
compute='_compute_contract_wage'
args: 'Contract Wage'
country_code
Char
depends=['company_country_id']
readonly=True
related='company_country_id.code'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
help="End date of the contract (if it's a fixed-term contract)."
tracking=True
args: 'End Date'
date_start
Date
default=fields.Date.today
index=True
required=True
tracking=True
args: 'Start Date'
department_id
Many2one → hr.department
compute='_compute_employee_contract'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Employee'
tracking=True
args: 'hr.employee'
first_contract_date
Date
related='employee_id.first_contract_date'
hr_responsible_id
Many2one → res.users
domain=_get_hr_responsible_domain
help="Person responsible for validating the employee's contracts."
tracking=True
args: 'res.users', 'HR Responsible'
job_id
Many2one → hr.job
compute='_compute_employee_contract'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Job Position'
args: 'hr.job'
kanban_state
Selection
copy=False
default='normal'
string='Kanban State'
tracking=True
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
name
Char
required=True
args: 'Contract Reference'
notes
Html
permit_no
Char
readonly=False
related='employee_id.permit_no'
args: 'Work Permit No'
resource_calendar_id
Many2one → resource.calendar
compute='_compute_employee_contract'
copy=False
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
readonly=False
store=True
args: 'resource.calendar', 'Working Schedule'
state
Selection
copy=False
default='draft'
group_expand='_expand_states'
help='Status of the contract'
string='Status'
tracking=True
args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')]
structure_type_id
Many2one → hr.payroll.structure.type
string='Salary Structure Type'
args: 'hr.payroll.structure.type'
trial_date_end
Date
help='End date of the trial period (if there is one).'
args: 'End of Trial Period'
visa_expire
Date
readonly=False
related='employee_id.visa_expire'
args: 'Visa Expiration Date'
visa_no
Char
readonly=False
related='employee_id.visa_no'
args: 'Visa No'
wage
Monetary
help="Employee's monthly gross wage."
required=True
tracking=True
args: 'Wage'
action_open_contract_form(self)
create(self, vals_list)
update_state(self)
write(self, vals)
active_employee
Boolean
readonly=True
args: 'Active Employee'
activity_state
Selection
related='contract_id.activity_state'
company_country_id
Many2one → res.country
readonly=True
related='company_id.country_id'
string='Company country'
args: 'res.country'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
contract_count
Integer
compute='_compute_contract_count'
string='# Contracts'
contract_id
Many2one → hr.contract
readonly=True
args: 'hr.contract'
contract_ids
One2many → hr.contract
compute='_compute_contract_ids'
compute_sudo=True
readonly=True
string='Contracts'
args: 'hr.contract'
contract_type_id
Many2one → hr.contract.type
readonly=True
args: 'hr.contract.type', 'Contract Type'
country_code
Char
depends=['company_country_id']
readonly=True
related='company_country_id.code'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
readonly=True
args: 'End Date'
date_hired
Date
readonly=True
args: 'Hire Date'
date_start
Date
readonly=True
args: 'Start Date'
department_id
Many2one → hr.department
readonly=True
string='Department'
args: 'hr.department'
display_name
Char
compute='_compute_display_name'
employee_id
Many2one → hr.employee
readonly=True
string='Employee'
args: 'hr.employee'
hr_responsible_id
Many2one → res.users
readonly=True
string='HR Responsible'
args: 'res.users'
is_under_contract
Boolean
readonly=True
args: 'Is Currently Under Contract'
job_id
Many2one → hr.job
readonly=True
string='Job Position'
args: 'hr.job'
name
Char
readonly=True
args: 'Contract Name'
resource_calendar_id
Many2one → resource.calendar
readonly=True
string='Working Schedule'
args: 'resource.calendar'
state
Selection
readonly=True
string='Status'
args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')]
structure_type_id
Many2one → hr.payroll.structure.type
readonly=True
string='Salary Structure Type'
args: 'hr.payroll.structure.type'
under_contract_state
Selection
compute='_compute_under_contract_state'
string='Contractual Status'
args: [('done', 'Under Contract'), ('blocked', 'Not Under Contract')]
wage
Monetary
group_operator='avg'
help="Employee's monthly gross wage."
readonly=True
args: 'Wage'
hr_contract_view_form_new_action(self)
init(self)
set_date_end
Boolean
default=<expr>
help='Set the end date on the current contract.'
string='Set Contract End Date'
action_register_departure(self)
calendar_mismatch
Boolean
related='contract_id.calendar_mismatch'
contract_id
Many2one → hr.contract
copy=False
domain="[('company_id', '=', company_id), ('employee_id', '=', id)]"
groups='hr.group_hr_user'
help='Current contract of the employee'
string='Current Contract'
args: 'hr.contract'
contract_ids
One2many → hr.contract
string='Employee Contracts'
args: 'hr.contract', 'employee_id'
contract_warning
Boolean
compute='_compute_contract_warning'
groups='hr.group_hr_user'
store=True
string='Contract Warning'
contracts_count
Integer
compute='_compute_contracts_count'
string='Contract Count'
first_contract_date
Date
compute='_compute_first_contract_date'
groups='hr.group_hr_user'
store=True
vehicle
Char
groups='hr.group_hr_user'
string='Company Vehicle'
action_open_contract_history(self)
write(self, vals)
first_contract_date
Date
groups='base.group_user'
readonly=True
No public methods.
country_id
Many2one → res.country
default=<expr>
string='Country'
args: 'res.country'
default_resource_calendar_id
Many2one → resource.calendar
default=<expr>
args: 'resource.calendar', 'Default Working Hours'
name
Char
No public methods.
bank_account_id
Many2one
related='employee_id.bank_account_id'
vehicle
Char
related='employee_id.vehicle'
SELF_READABLE_FIELDS(self)
contracts_count
Integer
compute='_compute_contracts_count'
groups='hr_contract.group_hr_contract_manager'
args: '# Contracts using it'
action_open_contracts(self)
transfer_leaves_to(self, other_calendar, resources=None, from_date=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/15.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Contracts |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Barad Mahendra, Yannick Tivisse, Adrien Dieudonne, Xavier-Do, David Tran, Luis Torres, Victor Feyens, alt-odoo, Julien Mougenot, Adrien Widart, Tiffany Chang (tic), Arnaud Joset, William Braeckman, Kevin Baptiste, Stefan-Calin Crainiciuc (stcc), Hardik Prajapati, sofiagvaladze, Thibault Libioulle, Laurent Stukkens (LTU), bve-odoo, Thomas Lefebvre (thle), Louis Wicket (wil), Levi Siuzdak (sile), TN Tommy, Leonardo Pavan Rocha, Dawn Hwang, Paul Stroobant, bary, Flotchet, jugj-odoo, Ahmad (khah) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:25:29 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_history_view_form |
hr.contract.history.form | hr.contract.history | form | New |
hr_contract_history_view_kanban |
hr.contract.history.view.kanban | hr.contract.history | kanban | New |
hr_contract_history_view_list |
hr.contract.history.list | hr.contract.history | tree | New |
hr_contract_history_view_search |
hr.contract.history.search | hr.contract.history | search | New |
hr_contract_view_activity |
hr.contract.activity | hr.contract | activity | New |
hr_contract_view_form |
hr.contract.form | hr.contract | form | New |
hr_contract_view_kanban |
hr.contract.kanban | hr.contract | kanban | New |
hr_contract_view_search |
hr.contract.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.tree | hr.contract | tree | New |
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 | hr.employee.public | field | Inherits hr.hr_employee_public_view_form |
hr_employee_view_search |
hr.employee.view.search | hr.employee | data | Inherits hr.view_employee_filter |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
hr_user_view_form |
hr.user.preferences.view.form.contract.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
resource_calendar_view_form |
resource.calendar.view.form.inherit.hr.contract | resource.calendar | div | Inherits resource.resource_calendar_form |
resource_calendar_view_tree |
resource.calendar.view.tree.inherit.hr.contract | resource.calendar | field | Inherits resource.view_resource_calendar_tree |
view_employee_tree |
hr.employee.tree | hr.employee | xpath | Inherits hr.view_employee_tree |
active
Boolean
default=True
calendar_mismatch
Boolean
compute='_compute_calendar_mismatch'
company_country_id
Many2one → res.country
readonly=True
related='company_id.country_id'
string='Company country'
args: 'res.country'
company_id
Many2one → res.company
compute='_compute_employee_contract'
default=<expr>
readonly=False
required=True
store=True
args: 'res.company'
contract_type_id
Many2one → hr.contract.type
contract_wage
Monetary
compute='_compute_contract_wage'
args: 'Contract Wage'
country_code
Char
readonly=True
related='company_country_id.code'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
help="End date of the contract (if it's a fixed-term contract)."
tracking=True
args: 'End Date'
date_start
Date
default=fields.Date.today
help='Start date of the contract.'
index=True
required=True
tracking=True
args: 'Start Date'
department_id
Many2one → hr.department
compute='_compute_employee_contract'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Employee'
tracking=True
args: 'hr.employee'
first_contract_date
Date
related='employee_id.first_contract_date'
hr_responsible_id
Many2one → res.users
help="Person responsible for validating the employee's contracts."
tracking=True
args: 'res.users', 'HR Responsible'
job_id
Many2one → hr.job
compute='_compute_employee_contract'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Job Position'
args: 'hr.job'
kanban_state
Selection
copy=False
default='normal'
string='Kanban State'
tracking=True
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
name
Char
required=True
args: 'Contract Reference'
notes
Html
permit_no
Char
readonly=False
related='employee_id.permit_no'
args: 'Work Permit No'
resource_calendar_id
Many2one → resource.calendar
compute='_compute_employee_contract'
copy=False
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
readonly=False
store=True
args: 'resource.calendar', 'Working Schedule'
state
Selection
copy=False
default='draft'
group_expand='_expand_states'
help='Status of the contract'
string='Status'
tracking=True
args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')]
structure_type_id
Many2one → hr.payroll.structure.type
string='Salary Structure Type'
args: 'hr.payroll.structure.type'
trial_date_end
Date
help='End date of the trial period (if there is one).'
args: 'End of Trial Period'
visa_expire
Date
readonly=False
related='employee_id.visa_expire'
args: 'Visa Expiration Date'
visa_no
Char
readonly=False
related='employee_id.visa_no'
args: 'Visa No'
wage
Monetary
help="Employee's monthly gross wage."
required=True
tracking=True
args: 'Wage'
action_open_contract_form(self)
create(self, vals)
update_state(self)
write(self, vals)
active_employee
Boolean
readonly=True
args: 'Active Employee'
activity_state
Selection
related='contract_id.activity_state'
company_country_id
Many2one → res.country
readonly=True
related='company_id.country_id'
string='Company country'
args: 'res.country'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
contract_count
Integer
compute='_compute_contract_count'
string='# Contracts'
contract_id
Many2one → hr.contract
readonly=True
args: 'hr.contract'
contract_ids
One2many → hr.contract
compute='_compute_contract_ids'
readonly=True
string='Contracts'
args: 'hr.contract'
contract_type_id
Many2one → hr.contract.type
readonly=True
args: 'hr.contract.type', 'Contract Type'
country_code
Char
readonly=True
related='company_country_id.code'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
readonly=True
args: 'End Date'
date_hired
Date
readonly=True
args: 'Hire Date'
date_start
Date
readonly=True
args: 'Start Date'
department_id
Many2one → hr.department
readonly=True
string='Department'
args: 'hr.department'
display_name
Char
compute='_compute_display_name'
employee_id
Many2one → hr.employee
readonly=True
string='Employee'
args: 'hr.employee'
hr_responsible_id
Many2one → res.users
readonly=True
string='HR Responsible'
args: 'res.users'
is_under_contract
Boolean
readonly=True
args: 'Is Currently Under Contract'
job_id
Many2one → hr.job
readonly=True
string='Job Position'
args: 'hr.job'
name
Char
readonly=True
args: 'Contract Name'
resource_calendar_id
Many2one → resource.calendar
readonly=True
string='Working Schedule'
args: 'resource.calendar'
state
Selection
readonly=True
string='Status'
args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')]
structure_type_id
Many2one → hr.payroll.structure.type
readonly=True
string='Salary Structure Type'
args: 'hr.payroll.structure.type'
under_contract_state
Selection
compute='_compute_under_contract_state'
string='Contractual Status'
args: [('done', 'Under Contract'), ('blocked', 'Not Under Contract')]
wage
Monetary
group_operator='avg'
help="Employee's monthly gross wage."
readonly=True
args: 'Wage'
hr_contract_view_form_new_action(self)
init(self)
name
Char
required=True
No public methods.
set_date_end
Boolean
default=True
help='Set the end date on the current contract.'
string='Set Contract End Date'
action_register_departure(self)
calendar_mismatch
Boolean
related='contract_id.calendar_mismatch'
contract_id
Many2one → hr.contract
copy=False
domain="[('company_id', '=', company_id), ('employee_id', '=', id)]"
groups='hr.group_hr_user'
help='Current contract of the employee'
string='Current Contract'
args: 'hr.contract'
contract_ids
One2many → hr.contract
string='Employee Contracts'
args: 'hr.contract', 'employee_id'
contract_warning
Boolean
compute='_compute_contract_warning'
groups='hr.group_hr_user'
store=True
string='Contract Warning'
contracts_count
Integer
compute='_compute_contracts_count'
string='Contract Count'
first_contract_date
Date
compute='_compute_first_contract_date'
groups='hr.group_hr_user'
store=True
vehicle
Char
groups='hr.group_hr_user'
string='Company Vehicle'
action_open_contract_history(self)
write(self, vals)
first_contract_date
Date
groups='base.group_user'
related='employee_id.first_contract_date'
No public methods.
country_id
Many2one → res.country
default=<expr>
string='Country'
args: 'res.country'
default_resource_calendar_id
Many2one → resource.calendar
default=<expr>
args: 'resource.calendar', 'Default Working Hours'
name
Char
No public methods.
bank_account_id
Many2one
related='employee_id.bank_account_id'
vehicle
Char
related='employee_id.vehicle'
SELF_READABLE_FIELDS(self)
contracts_count
Integer
compute='_compute_contracts_count'
groups='hr_contract.group_hr_contract_manager'
args: '# Contracts using it'
action_open_contracts(self)
transfer_leaves_to(self, other_calendar, resources=None, from_date=None)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/14.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Contracts |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Joren Van Onder, Nicolas Martinelli, Aaron Bohy, Barad Mahendra, Yannick Tivisse, Adrien Dieudonne, Julien Castiaux, Xavier-Do, Victor Feyens, Enric Tobella, Sébastien Theys, Lucas Lefèvre, Adrien Widart, jbm-odoo, Arnaud Joset, Kevin Baptiste, sofiagvaladze, bve-odoo, Thomas Lefebvre (thle), Louis Wicket (wil), Simon Genin (ges), TN Tommy |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:14:30 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
assets_backend | ir.ui.view | qweb | Inherits web.assets_backend |
hr_contract_view_activity |
hr.contract.activity | hr.contract | activity | New |
hr_contract_view_form |
hr.contract.form | hr.contract | form | New |
hr_contract_view_kanban |
hr.contract.kanban | hr.contract | kanban | New |
hr_contract_view_search |
hr.contract.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.tree | hr.contract | tree | New |
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_search |
hr.employee.view.search | hr.employee | data | Inherits hr.view_employee_filter |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
hr_user_view_form |
hr.user.preferences.view.form.contract.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
active
Boolean
default=True
calendar_mismatch
Boolean
compute='_compute_calendar_mismatch'
company_country_id
Many2one → res.country
readonly=True
related='company_id.country_id'
string='Company country'
args: 'res.country'
company_id
Many2one → res.company
compute='_compute_employee_contract'
default=<expr>
readonly=False
required=True
store=True
args: 'res.company'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
help="End date of the contract (if it's a fixed-term contract)."
tracking=True
args: 'End Date'
date_start
Date
default=fields.Date.today
help='Start date of the contract.'
required=True
tracking=True
args: 'Start Date'
department_id
Many2one → hr.department
compute='_compute_employee_contract'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Employee'
tracking=True
args: 'hr.employee'
first_contract_date
Date
related='employee_id.first_contract_date'
hr_responsible_id
Many2one → res.users
help="Person responsible for validating the employee's contracts."
tracking=True
args: 'res.users', 'HR Responsible'
job_id
Many2one → hr.job
compute='_compute_employee_contract'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Job Position'
args: 'hr.job'
kanban_state
Selection
copy=False
default='normal'
string='Kanban State'
tracking=True
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
name
Char
required=True
args: 'Contract Reference'
notes
Text
permit_no
Char
readonly=False
related='employee_id.permit_no'
args: 'Work Permit No'
resource_calendar_id
Many2one → resource.calendar
compute='_compute_employee_contract'
copy=False
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
readonly=False
store=True
args: 'resource.calendar', 'Working Schedule'
state
Selection
copy=False
default='draft'
group_expand='_expand_states'
help='Status of the contract'
string='Status'
tracking=True
args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')]
structure_type_id
Many2one → hr.payroll.structure.type
string='Salary Structure Type'
args: 'hr.payroll.structure.type'
trial_date_end
Date
help='End date of the trial period (if there is one).'
args: 'End of Trial Period'
visa_expire
Date
readonly=False
related='employee_id.visa_expire'
args: 'Visa Expire Date'
visa_no
Char
readonly=False
related='employee_id.visa_no'
args: 'Visa No'
wage
Monetary
help="Employee's monthly gross wage."
required=True
tracking=True
args: 'Wage'
create(self, vals)
update_state(self)
write(self, vals)
set_date_end
Boolean
default=True
string='Set Contract End Date'
action_register_departure(self)
calendar_mismatch
Boolean
related='contract_id.calendar_mismatch'
contract_id
Many2one → hr.contract
domain="[('company_id', '=', company_id)]"
groups='hr.group_hr_user'
help='Current contract of the employee'
string='Current Contract'
args: 'hr.contract'
contract_ids
One2many → hr.contract
string='Employee Contracts'
args: 'hr.contract', 'employee_id'
contract_warning
Boolean
compute='_compute_contract_warning'
groups='hr.group_hr_user'
store=True
string='Contract Warning'
contracts_count
Integer
compute='_compute_contracts_count'
string='Contract Count'
first_contract_date
Date
compute='_compute_first_contract_date'
groups='hr.group_hr_user'
vehicle
Char
groups='hr.group_hr_user'
string='Company Vehicle'
write(self, vals)
country_id
Many2one → res.country
default=<expr>
string='Country'
args: 'res.country'
default_resource_calendar_id
Many2one → resource.calendar
default=<expr>
args: 'resource.calendar', 'Default Working Hours'
name
Char
No public methods.
bank_account_id
Many2one
related='employee_id.bank_account_id'
vehicle
Char
related='employee_id.vehicle'
No public methods.
No new fields.
Public methods (1)transfer_leaves_to(self, other_calendar, resources=None, from_date=None)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/13.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Contracts |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Xavier Morel, Joren Van Onder, Nicolas Martinelli, Yannick Tivisse, Martin Geubelle, Odoo Online, Nicolas Seinlet, Adrien Dieudonne, RomainLibert, Toufik Ben Jaa, Adrian Torres, Xavier-Do, Sébastien Theys, Lucas Lefèvre, Adrien Widart, jbm-odoo, Kevin Baptiste |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:06:44 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - mail_bot |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
assets_backend | ir.ui.view | qweb | Inherits web.assets_backend |
hr_contract_view_activity |
hr.contract.activity | hr.contract | activity | New |
hr_contract_view_form |
hr.contract.form | hr.contract | form | New |
hr_contract_view_kanban |
hr.contract.kanban | hr.contract | kanban | New |
hr_contract_view_search |
hr.contract.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.tree | hr.contract | tree | New |
hr_employee_view_kanban |
hr.employee.view.kanban | hr.employee | data | Inherits hr.hr_kanban_view_employees |
hr_employee_view_search |
hr.employee.view.search | hr.employee | data | Inherits hr.view_employee_filter |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
hr_user_view_form |
hr.user.preferences.view.form.contract.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
active
Boolean
default=True
advantages
Text
calendar_mismatch
Boolean
compute='_compute_calendar_mismatch'
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
help="End date of the contract (if it's a fixed-term contract)."
tracking=True
args: 'End Date'
date_start
Date
default=fields.Date.today
help='Start date of the contract.'
required=True
tracking=True
args: 'Start Date'
department_id
Many2one → hr.department
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Employee'
tracking=True
args: 'hr.employee'
hr_responsible_id
Many2one → res.users
help="Person responsible for validating the employee's contracts."
tracking=True
args: 'res.users', 'HR Responsible'
job_id
Many2one → hr.job
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Job Position'
args: 'hr.job'
kanban_state
Selection
copy=False
default='normal'
string='Kanban State'
tracking=True
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
name
Char
required=True
args: 'Contract Reference'
notes
Text
permit_no
Char
readonly=False
related='employee_id.permit_no'
args: 'Work Permit No'
resource_calendar_id
Many2one → resource.calendar
copy=False
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
args: 'resource.calendar', 'Working Schedule'
state
Selection
copy=False
default='draft'
group_expand='_expand_states'
help='Status of the contract'
string='Status'
tracking=True
args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')]
trial_date_end
Date
help='End date of the trial period (if there is one).'
args: 'End of Trial Period'
visa_expire
Date
readonly=False
related='employee_id.visa_expire'
args: 'Visa Expire Date'
visa_no
Char
readonly=False
related='employee_id.visa_no'
args: 'Visa No'
wage
Monetary
help="Employee's monthly gross wage."
required=True
tracking=True
args: 'Wage'
create(self, vals)
update_state(self)
write(self, vals)
calendar_mismatch
Boolean
related='contract_id.calendar_mismatch'
contract_id
Many2one → hr.contract
domain="[('company_id', '=', company_id)]"
groups='hr.group_hr_user'
help='Current contract of the employee'
string='Current Contract'
args: 'hr.contract'
contract_ids
One2many → hr.contract
string='Employee Contracts'
args: 'hr.contract', 'employee_id'
contract_warning
Boolean
compute='_compute_contract_warning'
groups='hr.group_hr_user'
store=True
string='Contract Warning'
contracts_count
Integer
compute='_compute_contracts_count'
string='Contract Count'
medic_exam
Date
groups='hr.group_hr_user'
string='Medical Examination Date'
vehicle
Char
groups='hr.group_hr_user'
string='Company Vehicle'
write(self, vals)
bank_account_id
Many2one
related='employee_id.bank_account_id'
medic_exam
Date
related='employee_id.medic_exam'
vehicle
Char
related='employee_id.vehicle'
No public methods.
No new fields.
Public methods (1)transfer_leaves_to(self, other_calendar, resources=None, from_date=None)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/12.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Christophe Simonis, Joren Van Onder, Nicolas Martinelli, Richard Mathot, GitHub, Yannick Tivisse, Alexandre Kühn, qsm-odoo, Martin Geubelle, Adrian Torres, Priyanka Kakadiya, Xavier-Do, Kinjal Mehta |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:57:02 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_type_view_form |
hr.contract.type.form | hr.contract.type | form | New |
hr_contract_type_view_search |
hr.contract.type.search | hr.contract.type | search | New |
hr_contract_type_view_tree |
hr.contract.type.tree | hr.contract.type | tree | New |
hr_contract_view_form |
hr.contract.form | hr.contract | form | New |
hr_contract_view_kanban |
hr.contract.kanban | hr.contract | kanban | New |
hr_contract_view_search |
hr.contract.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.tree | hr.contract | tree | New |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
active
Boolean
default=True
advantages
Text
company_id
Many2one → res.company
default=<expr>
args: 'res.company'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
help="End date of the contract (if it's a fixed-term contract)."
args: 'End Date'
date_start
Date
default=fields.Date.today
help='Start date of the contract.'
required=True
args: 'Start Date'
department_id
Many2one → hr.department
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
string='Employee'
args: 'hr.employee'
job_id
Many2one → hr.job
string='Job Position'
args: 'hr.job'
name
Char
required=True
args: 'Contract Reference'
notes
Text
permit_no
Char
readonly=False
related='employee_id.permit_no'
args: 'Work Permit No'
reported_to_secretariat
Boolean
help='Green this button when the contract information has been transfered to the social secretariat.'
args: 'Social Secretariat'
resource_calendar_id
Many2one → resource.calendar
default=<expr>
args: 'resource.calendar', 'Working Schedule'
state
Selection
default='draft'
group_expand='_expand_states'
help='Status of the contract'
string='Status'
track_visibility='onchange'
args: [('draft', 'New'), ('open', 'Running'), ('pending', 'To Renew'), ('close', 'Expired'), ('cancel', 'Cancelled')]
trial_date_end
Date
help='End date of the trial period (if there is one).'
args: 'End of Trial Period'
type_id
Many2one → hr.contract.type
default=<expr>
required=True
string='Employee Category'
args: 'hr.contract.type'
visa_expire
Date
readonly=False
related='employee_id.visa_expire'
args: 'Visa Expire Date'
visa_no
Char
readonly=False
related='employee_id.visa_no'
args: 'Visa No'
wage
Monetary
digits=(16, 2)
help="Employee's monthly gross wage."
required=True
track_visibility='onchange'
args: 'Wage'
update_state(self)
name
Char
required=True
string='Contract Type'
translate=True
sequence
Integer
default=10
help='Gives the sequence when displaying a list of Contract.'
No public methods.
contract_id
Many2one → hr.contract
compute='_compute_contract_id'
help='Latest contract of the employee'
string='Current Contract'
args: 'hr.contract'
contract_ids
One2many → hr.contract
string='Employee Contracts'
args: 'hr.contract', 'employee_id'
contracts_count
Integer
compute='_compute_contracts_count'
string='Contract Count'
manager
Boolean
string='Is a Manager'
medic_exam
Date
groups='hr.group_hr_user'
string='Medical Examination Date'
vehicle
Char
groups='hr.group_hr_user'
string='Company Vehicle'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/11.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Jérome Maes, Jeremy Kersten, GitHub, Yannick Tivisse, qsm-odoo, Odoo Online, DVE |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:53:44 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_type_view_form |
hr.contract.type.form | hr.contract.type | form | New |
hr_contract_type_view_search |
hr.contract.type.search | hr.contract.type | search | New |
hr_contract_type_view_tree |
hr.contract.type.tree | hr.contract.type | tree | New |
hr_contract_view_form |
hr.contract.form | hr.contract | form | New |
hr_contract_view_kanban |
hr.contract.kanban | hr.contract | kanban | New |
hr_contract_view_search |
hr.contract.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.tree | hr.contract | tree | New |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
advantages
Text
company_id
Many2one → res.company
default=<expr>
args: 'res.company'
currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Currency'
date_end
Date
help="End date of the contract (if it's a fixed-term contract)."
args: 'End Date'
date_start
Date
default=fields.Date.today
help='Start date of the contract.'
required=True
args: 'Start Date'
department_id
Many2one → hr.department
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
string='Employee'
args: 'hr.employee'
job_id
Many2one → hr.job
string='Job Position'
args: 'hr.job'
name
Char
required=True
args: 'Contract Reference'
notes
Text
permit_no
Char
related='employee_id.permit_no'
args: 'Work Permit No'
resource_calendar_id
Many2one → resource.calendar
default=<expr>
args: 'resource.calendar', 'Working Schedule'
state
Selection
default='draft'
group_expand='_expand_states'
help='Status of the contract'
string='Status'
track_visibility='onchange'
args: [('draft', 'New'), ('open', 'Running'), ('pending', 'To Renew'), ('close', 'Expired'), ('cancel', 'Cancelled')]
trial_date_end
Date
help='End date of the trial period (if there is one).'
args: 'End of Trial Period'
type_id
Many2one → hr.contract.type
default=<expr>
required=True
string='Contract Type'
args: 'hr.contract.type'
visa_expire
Date
related='employee_id.visa_expire'
args: 'Visa Expire Date'
visa_no
Char
related='employee_id.visa_no'
args: 'Visa No'
wage
Monetary
digits=(16, 2)
help="Employee's monthly gross wage."
required=True
track_visibility='onchange'
args: 'Wage'
update_state(self)
name
Char
required=True
string='Contract Type'
sequence
Integer
default=10
help='Gives the sequence when displaying a list of Contract.'
No public methods.
children
Integer
groups='hr.group_hr_user'
string='Number of Children'
contract_id
Many2one → hr.contract
compute='_compute_contract_id'
help='Latest contract of the employee'
string='Current Contract'
args: 'hr.contract'
contract_ids
One2many → hr.contract
string='Contracts'
args: 'hr.contract', 'employee_id'
contracts_count
Integer
compute='_compute_contracts_count'
string='Contracts'
manager
Boolean
string='Is a Manager'
medic_exam
Date
groups='hr.group_hr_user'
string='Medical Examination Date'
place_of_birth
Char
groups='hr.group_hr_user'
args: 'Place of Birth'
vehicle
Char
groups='hr.group_hr_user'
string='Company Vehicle'
vehicle_distance
Integer
groups='hr.group_hr_user'
help='In kilometers'
string='Home-Work Dist.'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/10.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Denis Ledoux, Christophe Simonis, Nicolas Martinelli, Jérome Maes, Julien Legros, qdp-odoo, Jeremy Kersten, GitHub, Yannick Tivisse |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:50:49 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_action_rule - base - resource - base_setup - web_kanban - web - bus - web_tour - hr |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_type_view_form |
hr.contract.type.form | hr.contract.type | form | New |
hr_contract_type_view_search |
hr.contract.type.search | hr.contract.type | search | New |
hr_contract_type_view_tree |
hr.contract.type.tree | hr.contract.type | tree | New |
hr_contract_view_form |
hr.contract.form | hr.contract | form | New |
hr_contract_view_search |
hr.contract.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.tree | hr.contract | tree | New |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
view_base_action_rule_form_resource |
base.action.rule.form | base.action.rule | xpath | Inherits base_action_rule.view_base_action_rule_form |
trg_date_resource_field_id
Many2one → ir.model.fields
help="Use the user's working schedule."
string='Use employee work schedule'
args: 'ir.model.fields'
No public methods.
advantages
Text
date_end
Date
date_start
Date
default=fields.Date.today
required=True
args: 'Start Date'
department_id
Many2one → hr.department
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
required=True
string='Employee'
args: 'hr.employee'
job_id
Many2one → hr.job
string='Job Title'
args: 'hr.job'
name
Char
required=True
args: 'Contract Reference'
notes
Text
permit_no
Char
state
Selection
default='draft'
help='Status of the contract'
string='Status'
track_visibility='onchange'
args: [('draft', 'New'), ('open', 'Running'), ('pending', 'To Renew'), ('close', 'Expired')]
trial_date_end
Date
trial_date_start
Date
type_id
Many2one → hr.contract.type
default=<expr>
required=True
string='Contract Type'
args: 'hr.contract.type'
visa_expire
Date
visa_no
Char
wage
Float
digits=(16, 2)
help='Basic Salary of the employee'
required=True
args: 'Wage'
working_hours
Many2one → resource.calendar
string='Working Schedule'
args: 'resource.calendar'
set_as_close(self)
set_as_pending(self)
name
Char
required=True
string='Contract Type'
sequence
Integer
default=10
help='Gives the sequence when displaying a list of Contract.'
No public methods.
children
Integer
groups='hr.group_hr_user'
string='Number of Children'
contract_id
Many2one → hr.contract
compute='_compute_contract_id'
help='Latest contract of the employee'
string='Current Contract'
args: 'hr.contract'
contract_ids
One2many → hr.contract
string='Contracts'
args: 'hr.contract', 'employee_id'
contracts_count
Integer
compute='_compute_contracts_count'
string='Contracts'
manager
Boolean
string='Is a Manager'
medic_exam
Date
groups='hr.group_hr_user'
string='Medical Examination Date'
place_of_birth
Char
groups='hr.group_hr_user'
args: 'Place of Birth'
vehicle
Char
groups='hr.group_hr_user'
string='Company Vehicle'
vehicle_distance
Integer
groups='hr.group_hr_user'
help='In kilometers'
string='Home-Work Dist.'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/9.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Nicolas Martinelli, Jérome Maes, Richard Mathot, Géry Debongnie, Yannick Tivisse |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:48:31 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_action_rule - base - resource - base_setup - web_kanban - web - bus - hr - web_tip |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_type_view_form |
hr.contract.type.view.form | hr.contract.type | form | New |
hr_contract_type_view_search |
hr.contract.type.view.search | hr.contract.type | search | New |
hr_contract_type_view_tree |
hr.contract.type.view.tree | hr.contract.type | tree | New |
hr_contract_view_form |
hr.contract.view.form | hr.contract | form | New |
hr_contract_view_search |
hr.contract.view.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.view.tree | hr.contract | tree | New |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
view_base_action_rule_form_resource |
base.action.rule.form | base.action.rule | xpath | Inherits base_action_rule.view_base_action_rule_form |
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/8.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Vo Minh Thu, Launchpad Translations on behalf of openerp, Denis Ledoux, Fabien Meghazi, Amit Bhavsar (Open ERP), Richard Mathot, Géry Debongnie, Aaron Bohy, ged-odoo, Gery Debongnie, Randhir Mayatra rma-openerp, Yogesh Parekh (OpenERP) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:45:40 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_action_rule - base - resource - base_setup - web_kanban - web - hr - board |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_type_view_form |
hr.contract.type.view.form | hr.contract.type | form | New |
hr_contract_type_view_search |
hr.contract.type.view.search | hr.contract.type | search | New |
hr_contract_type_view_tree |
hr.contract.type.view.tree | hr.contract.type | tree | New |
hr_contract_view_form |
hr.contract.view.form | hr.contract | form | New |
hr_contract_view_search |
hr.contract.view.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.view.tree | hr.contract | tree | New |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
view_base_action_rule_form_resource |
base.action.rule.form | base.action.rule | xpath | Inherits base_action_rule.view_base_action_rule_form |
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/7.0/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Jagdish Panchal (Open ERP), Twinkle Christian (OpenERP), Cecile Tonglet, Jalpesh Patel (OpenERP), Stephane Wirtel, Odoo Translation Bot, Turkesh Patel (Open ERP), Pinakin Nayi (OpenERP), Antonin Bourguignon, Martin Trigaux, Ajay Chauhan (OpenERP), Purnendu Singh (OpenERP), Fabien Pinckaers, Bharat Devnani (OpenERP), Olivier Dony, Vo Minh Thu, Hardik, pso (OpenERP), Sbh (Openerp), Amit Patel (OpenERP), Launchpad Translations on behalf of openerp, vta vta@openerp.com, Quentin (OpenERP), Kuldeep Joshi (OpenERP), Mayur Maheshwari (OpenERP), Sanjay Gohel (Open ERP), help, Amit Patel |
| WEBSITE | |
| WEBSITE | http://www.openerp.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:43:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web_kanban - web - resource - process - board |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_type_view_form |
hr.contract.type.view.form | hr.contract.type | form | New |
hr_contract_type_view_search |
hr.contract.type.view.search | hr.contract.type | search | New |
hr_contract_type_view_tree |
hr.contract.type.view.tree | hr.contract.type | tree | New |
hr_contract_view_form |
hr.contract.view.form | hr.contract | form | New |
hr_contract_view_search |
hr.contract.view.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.view.tree | hr.contract | tree | New |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
No models found for this module.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/6.1/hr_contract |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Stephane Wirtel, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Mayur Maheshwari (OpenERP), vro, niv-openerp, Ujjvala Collins (OpenERP), Xavier Morel, Thibault Francois, Carlos Vásquez, Els Van Vossel, Israel Fermin Montilla, Hardik Ansodariy (OpenERP), rch-openerp, Bharat (OpenERP), ARA (OpenERP), mtr, Mustufa Rangwala, psi (Open ERP), Anup (OpenERP) |
| WEBSITE | |
| WEBSITE | http://www.openerp.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:41:35 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - base_tools - resource - process - board |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Add all information on the employee form to manage contracts.
=============================================================
* Marital status,
* Security number,
* Place of birth, birth date, ...
You can assign several contracts per employee.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_type_view_form |
hr.contract.type.view.form | hr.contract.type | form | New |
hr_contract_type_view_search |
hr.contract.type.view.search | hr.contract.type | search | New |
hr_contract_type_view_tree |
hr.contract.type.view.tree | hr.contract.type | tree | New |
hr_contract_view_form |
hr.contract.view.form | hr.contract | form | New |
hr_contract_view_search |
hr.contract.view.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.view.tree | hr.contract | tree | New |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | page | Inherits hr.view_employee_form |
No models found for this module.