Timesheet when on Time Off

project_timesheet_holidays
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/project_timesheet_holidays
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Xavier ALT, Xavier Morel, Yannick Tivisse, Julien Castiaux, Prakash Prajapati, Tiffany Chang (tic), Gorash, William Braeckman, Audric Onockx (auon), Vincent Larcin, Victor Piryns (pivi), Dylan Kiss (dyki), Simon Goffaux (sigo), Xavier Bol (xbo), Maxime de Neuville, suth-odoo, Tanguy Quéguineur, Mathieu Coutant, Yassin Abdelkarim, st-yes, Corentin Heinix (cohe), bona-odoo, Krzysztof Magusiak (krma), mjvi-odoo, Dirk Douglas, path-odoo, Vincent Janssen, Shubham Patel, Aurélien Bertrand, Jurgen Gjini
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_timesheet
    - hr
    - base_setup
    - base
    - web
    - digest
    - mail
    - bus
    - web_tour
    - html_editor
    - portal
    - http_routing
    - auth_signup
    - resource
    - phone_validation
    - resource_mail
    - hr_hourly_cost
    - analytic
    - uom
    - project
    - rating
    - hr_holidays
    - calendar
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge module to integrate leaves in timesheet
================================================

This module allows to automatically log timesheets when employees are
on leaves. Project and task can be configured company-wide.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
leave_task_form_view project.task.leave.form.view project.task xpath Inherits hr_timesheet.view_task_form2_inherited
res_config_settings_view_form res.config.settings.view.form.inherit.project.timesheet.holidays res.config.settings xpath Inherits hr_timesheet.res_config_settings_view_form
Models touched (7)

New fields (3)
  • global_leave_id Many2one → resource.calendar.leaves
    export_string_translation=False index='btree_not_null' ondelete='cascade' string='Global Time Off' args: 'resource.calendar.leaves'
  • holiday_id Many2one → hr.leave
    copy=False export_string_translation=False index='btree_not_null' string='Time Off Request' args: 'hr.leave'
  • task_id Many2one
    domain="[('allow_timesheets', '=', True), ('project_id', '=?', project_id), ('has_template_ancestor', '=', False), ('is_timeoff_task', '=', False)]"
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'holiday_id'
Public methods (2)
  • action_refuse(self)
    Remove the timesheets linked to the refused holidays
  • write(self, vals)

New fields (2)
  • is_timeoff_task Boolean
    compute='_compute_is_timeoff_task' export_string_translation=False groups='hr_timesheet.group_hr_timesheet_user' search='_search_is_timeoff_task' args: 'Is Time off Task'
  • leave_types_count Integer
    compute='_compute_leave_types_count' string='Time Off Types Count'
Public methods (0)

No public methods.

New fields (1)
  • leave_timesheet_task_id Many2one → project.task
    domain="[('project_id', '=', internal_project_id)]" string='Time Off Task' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • internal_project_id Many2one
    domain="[('company_id', '=', company_id), ('is_template', '=', False)]" help='The default project used when automatically generating timesheets via time off requests. You can specify another project on each time off type individually.' readonly=False related='company_id.internal_project_id' required=True string='Internal Project'
  • leave_timesheet_task_id Many2one
    domain="[('company_id', '=', company_id), ('project_id', '=?', internal_project_id), ('has_template_ancestor', '=', False)]" help='The default task used when automatically generating timesheets via time off requests. You can specify another task on each time off type individually.' readonly=False related='company_id.leave_timesheet_task_id' string='Time Off Task'
Public methods (0)

No public methods.

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    export_string_translation=False string='Analytic Lines' args: 'account.analytic.line', 'global_leave_id'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/project_timesheet_holidays
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Xavier ALT, Yannick Tivisse, Odoo Online, Prakash Prajapati, Tiffany Chang (tic), Vincent Larcin, alsh-odoo, Louis Wicket (wil), Victor Piryns (pivi), Daniel Kosky (dako), Levi Siuzdak (sile), Dylan Kiss (dyki), Simon Goffaux (sigo), Xavier Bol (xbo), ravb-odoo, Youssef Bashandy, Maxime de Neuville, suth-odoo, Abderraouf Ghrissi (abgh), Tanguy Quéguineur, Louis (wil), Yassin Abdelkarim, Rob Coekaerts, st-yes, Chris Duvivier, Corentin Heinix (cohe), Ritika Shekhawat, Krzysztof Magusiak (krma), Dirk Douglas, sbel-odoo, Uemus, Vincent Janssen, Shubham Patel, Jurgen Gjini
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_timesheet
    - hr
    - base_setup
    - base
    - web
    - digest
    - mail
    - bus
    - web_tour
    - html_editor
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - phone_validation
    - resource_mail
    - hr_hourly_cost
    - analytic
    - uom
    - project
    - rating
    - hr_holidays
    - calendar
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge module to integrate leaves in timesheet
================================================

This module allows to automatically log timesheets when employees are
on leaves. Project and task can be configured company-wide.
    

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
hr_holiday_status_view_form_inherit hr.leave.type.form hr.leave.type xpath Inherits hr_holidays.edit_holiday_status_form
leave_task_form_view project.task.leave.form.view project.task xpath Inherits hr_timesheet.view_task_form2_inherited
res_config_settings_view_form res.config.settings.view.form.inherit.project.timesheet.holidays res.config.settings xpath Inherits hr_timesheet.res_config_settings_view_form
Models touched (8)

New fields (3)
  • global_leave_id Many2one → resource.calendar.leaves
    export_string_translation=False index='btree_not_null' ondelete='cascade' string='Global Time Off' args: 'resource.calendar.leaves'
  • holiday_id Many2one → hr.leave
    copy=False export_string_translation=False index='btree_not_null' string='Time Off Request' args: 'hr.leave'
  • task_id Many2one
    domain="[('allow_timesheets', '=', True), ('project_id', '=?', project_id), ('is_timeoff_task', '=', False)]"
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'holiday_id'
Public methods (2)
  • action_refuse(self)
    Remove the timesheets linked to the refused holidays
  • write(self, vals)

New fields (3)
  • timesheet_generate Boolean
    compute='_compute_timesheet_generate' help='If checked, when validating a time off, timesheet will be generated in the Vacation Project of the company.' readonly=False store=True args: 'Generate Timesheets'
  • timesheet_project_id Many2one → project.project
    compute='_compute_timesheet_project_id' domain="[('company_id', 'in', [False, company_id])]" readonly=False store=True string='Project' args: 'project.project'
  • timesheet_task_id Many2one → project.task
    compute='_compute_timesheet_task_id' domain="[('project_id', '=', timesheet_project_id),('project_id', '!=', False),('company_id', 'in', [False, company_id])]" readonly=False store=True string='Task' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • is_timeoff_task Boolean
    compute='_compute_is_timeoff_task' export_string_translation=False search='_search_is_timeoff_task' args: 'Is Time off Task'
  • leave_types_count Integer
    compute='_compute_leave_types_count' string='Time Off Types Count'
Public methods (0)

No public methods.

New fields (1)
  • leave_timesheet_task_id Many2one → project.task
    domain="[('project_id', '=', internal_project_id)]" string='Time Off Task' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • internal_project_id Many2one
    domain="[('company_id', '=', company_id)]" help='The default project used when automatically generating timesheets via time off requests. You can specify another project on each time off type individually.' readonly=False related='company_id.internal_project_id' required=True string='Internal Project'
  • leave_timesheet_task_id Many2one
    domain="[('company_id', '=', company_id), ('project_id', '=?', internal_project_id)]" help='The default task used when automatically generating timesheets via time off requests. You can specify another task on each time off type individually.' readonly=False related='company_id.leave_timesheet_task_id' string='Time Off Task'
Public methods (0)

No public methods.

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    export_string_translation=False string='Analytic Lines' args: 'account.analytic.line', 'global_leave_id'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/project_timesheet_holidays
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Denis Ledoux, Xavier ALT, Xavier Morel, GitHub, Barad Mahendra, Yannick Tivisse, Odoo Online, Jorge Pinna Puissant, Prakash Prajapati, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Kevin Baptiste, Xavier BOL (xbo), Audric Onockx (auon), Dossogne Bertrand, niyasraphy, Thomas Lefebvre (thle), alsh-odoo, Louis Wicket (wil), Victor Piryns (pivi), Yash Vaishnav, Tom De Caluwé, Daniel Kosky (dako), Levi Siuzdak (sile), Dylan Kiss (dyki), Simon Goffaux (sigo), Kartik Chavda, Xavier Bol (xbo), Youssef Bashandy, suth-odoo, Abderraouf Ghrissi (abgh), Tanguy Quéguineur, Louis (wil), Rob Coekaerts, st-yes, Chris Duvivier, Remi Chauvenne, Ritika Shekhawat, Thomas Carlier(thc), Dirk Douglas, sbel-odoo, Uemus, Vincent Janssen
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_timesheet
    - hr
    - base_setup
    - base
    - web
    - phone_validation
    - mail
    - bus
    - web_tour
    - resource
    - hr_hourly_cost
    - analytic
    - uom
    - project
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - digest
    - hr_holidays
    - calendar
    - onboarding
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge module to integrate leaves in timesheet
================================================

This module allows to automatically log timesheets when employees are
on leaves. Project and task can be configured company-wide.
    

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
hr_holiday_status_view_form_inherit hr.leave.type.form hr.leave.type xpath Inherits hr_holidays.edit_holiday_status_form
leave_task_form_view project.task.leave.form.view project.task xpath Inherits hr_timesheet.view_task_form2_inherited
res_config_settings_view_form res.config.settings.view.form.inherit.project.timesheet.holidays res.config.settings xpath Inherits hr_timesheet.res_config_settings_view_form
Models touched (8)

New fields (3)
  • global_leave_id Many2one → resource.calendar.leaves
    index='btree_not_null' ondelete='cascade' string='Global Time Off' args: 'resource.calendar.leaves'
  • holiday_id Many2one → hr.leave
    copy=False index='btree_not_null' string='Time Off Request' args: 'hr.leave'
  • task_id Many2one
    domain="[('allow_timesheets', '=', True), ('project_id', '=?', project_id), ('is_timeoff_task', '=', False)]"
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'holiday_id'
Public methods (2)
  • action_refuse(self)
    Remove the timesheets linked to the refused holidays
  • write(self, vals)

New fields (3)
  • timesheet_generate Boolean
    compute='_compute_timesheet_generate' help='If checked, when validating a time off, timesheet will be generated in the Vacation Project of the company.' readonly=False store=True args: 'Generate Timesheets'
  • timesheet_project_id Many2one → project.project
    compute='_compute_timesheet_project_id' domain="[('company_id', 'in', [False, company_id])]" readonly=False store=True string='Project' args: 'project.project'
  • timesheet_task_id Many2one → project.task
    compute='_compute_timesheet_task_id' domain="[('project_id', '=', timesheet_project_id),('project_id', '!=', False),('company_id', 'in', [False, company_id])]" readonly=False store=True string='Task' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • is_timeoff_task Boolean
    compute='_compute_is_timeoff_task' search='_search_is_timeoff_task' args: 'Is Time off Task'
  • leave_types_count Integer
    compute='_compute_leave_types_count' string='Time Off Types Count'
Public methods (0)

No public methods.

New fields (1)
  • leave_timesheet_task_id Many2one → project.task
    domain="[('project_id', '=', internal_project_id)]" string='Time Off Task' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • internal_project_id Many2one
    domain="[('company_id', '=', company_id)]" help='The default project used when automatically generating timesheets via time off requests. You can specify another project on each time off type individually.' readonly=False related='company_id.internal_project_id' required=True string='Internal Project'
  • leave_timesheet_task_id Many2one
    domain="[('company_id', '=', company_id), ('project_id', '=?', internal_project_id)]" help='The default task used when automatically generating timesheets via time off requests. You can specify another task on each time off type individually.' readonly=False related='company_id.leave_timesheet_task_id' string='Time Off Task'
Public methods (0)

No public methods.

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'global_leave_id'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)
  • write(self, vals)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/project_timesheet_holidays
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Denis Ledoux, Barad Mahendra, Yannick Tivisse, Victor Feyens, Prakash Prajapati, Kevin Baptiste, Philippe Wauthy, Xavier BOL (xbo), mafo-odoo, Laurent Stukkens (LTU), Vincent Larcin, Thomas Lefebvre (thle), alsh-odoo, Tom De Caluwé, Anna Janiszewska, Daniel Kosky (dako), Michele, Levi Siuzdak (sile), Simon Goffaux (sigo), Kartik Chavda, Xavier Bol (xbo), Nguyễn Đại Dương, Youssef Bashandy, Remi Chauvenne, Ritika Shekhawat, Thomas Carlier(thc)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:50
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_timesheet
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - hr_hourly_cost
    - analytic
    - uom
    - project
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - digest
    - hr_holidays
    - calendar
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge module to integrate leaves in timesheet
================================================

This module allows to automatically log timesheets when employees are
on leaves. Project and task can be configured company-wide.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
hr_holiday_status_view_form_inherit hr.leave.type.form hr.leave.type xpath Inherits hr_holidays.edit_holiday_status_form
res_config_settings_view_form res.config.settings.view.form.inherit.project.timesheet.holidays res.config.settings xpath Inherits hr_timesheet.res_config_settings_view_form
Models touched (8)

New fields (3)
  • global_leave_id Many2one → resource.calendar.leaves
    ondelete='cascade' string='Global Time Off' args: 'resource.calendar.leaves'
  • holiday_id Many2one → hr.leave
    copy=False string='Leave Request' args: 'hr.leave'
  • task_id Many2one
    domain="[('allow_timesheets', '=', True),('project_id', '=?', project_id), ('is_timeoff_task', '=', False)]"
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'holiday_id'
Public methods (1)
  • action_refuse(self)
    Remove the timesheets linked to the refused holidays

New fields (3)
  • timesheet_generate Boolean
    compute='_compute_timesheet_generate' help='If checked, when validating a time off, timesheet will be generated in the Vacation Project of the company.' readonly=False store=True args: 'Generate Timesheet'
  • timesheet_project_id Many2one → project.project
    default=_default_project_id domain="[('company_id', '=', company_id)]" string='Project' args: 'project.project'
  • timesheet_task_id Many2one → project.task
    compute='_compute_timesheet_task_id' default=_default_task_id domain="[('project_id', '=', timesheet_project_id),('project_id', '!=', False),('company_id', '=', company_id)]" readonly=False store=True string='Task' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • is_timeoff_task Boolean
    compute='_compute_is_timeoff_task' search='_search_is_timeoff_task' args: 'Is Time off Task'
  • leave_types_count Integer
    compute='_compute_leave_types_count'
Public methods (0)

No public methods.

New fields (1)
  • leave_timesheet_task_id Many2one → project.task
    domain="[('project_id', '=', internal_project_id)]" string='Time Off Task' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • internal_project_id Many2one
    domain="[('company_id', '=', company_id)]" help='The default project used when automatically generating timesheets via time off requests. You can specify another project on each time off type individually.' readonly=False related='company_id.internal_project_id' required=True string='Internal Project'
  • leave_timesheet_task_id Many2one
    domain="[('company_id', '=', company_id), ('project_id', '=?', internal_project_id)]" help='The default task used when automatically generating timesheets via time off requests. You can specify another task on each time off type individually.' readonly=False related='company_id.leave_timesheet_task_id' string='Time Off Task'
Public methods (0)

No public methods.

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'global_leave_id'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/project_timesheet_holidays
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Barad Mahendra, Yannick Tivisse, Xavier-Do, Tiffany Chang (tic), William Braeckman, Philippe Wauthy, Xavier BOL (xbo), Mitali Patel, mafo-odoo, Laurent Stukkens (LTU), Vincent Larcin, Thomas Lefebvre (thle), alsh-odoo, Daniel Kosky (dako), Simon Goffaux (sigo), Nguyễn Đại Dương, Youssef Bashandy
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:28
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_timesheet
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - analytic
    - uom
    - project
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - digest
    - hr_holidays
    - calendar
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge module to integrate leaves in timesheet
================================================

This module allows to automatically log timesheets when employees are
on leaves. Project and task can be configured company-wide.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
hr_holiday_status_view_form_inherit hr.leave.type.form hr.leave.type xpath Inherits hr_holidays.edit_holiday_status_form
res_config_settings_view_form res.config.settings.view.form.inherit.project.timesheet.holidays res.config.settings xpath Inherits hr_timesheet.res_config_settings_view_form
Models touched (7)

New fields (2)
  • global_leave_id Many2one → resource.calendar.leaves
    copy=False ondelete='cascade' string='Global Time Off' args: 'resource.calendar.leaves'
  • holiday_id Many2one → hr.leave
    copy=False string='Leave Request' args: 'hr.leave'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'holiday_id'
Public methods (1)
  • action_refuse(self)
    Remove the timesheets linked to the refused holidays

New fields (3)
  • timesheet_generate Boolean
    compute='_compute_timesheet_generate' help='If checked, when validating a time off, timesheet will be generated in the Vacation Project of the company.' readonly=False store=True args: 'Generate Timesheet'
  • timesheet_project_id Many2one → project.project
    default=_default_project_id domain="[('company_id', '=', company_id)]" help='The project will contain the timesheet generated when a time off is validated.' string='Project' args: 'project.project'
  • timesheet_task_id Many2one → project.task
    compute='_compute_timesheet_task_id' default=_default_task_id domain="[('project_id', '=', timesheet_project_id),('company_id', '=', company_id)]" readonly=False store=True string='Task' args: 'project.task'
Public methods (0)

No public methods.

New fields (1)
  • leave_timesheet_task_id Many2one → project.task
    domain="[('project_id', '=', internal_project_id)]" string='Time Off Task' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • internal_project_id Many2one
    domain="[('company_id', '=', company_id)]" readonly=False related='company_id.internal_project_id' required=True string='Internal Project'
  • leave_timesheet_task_id Many2one
    domain="[('company_id', '=', company_id), ('project_id', '=?', internal_project_id)]" readonly=False related='company_id.leave_timesheet_task_id' string='Time Off Task'
Public methods (0)

No public methods.

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'global_leave_id'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/project_timesheet_holidays
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, Nicolas Martinelli, Yannick Tivisse, Julien Castiaux, Xavier-Do, Victor Feyens, jbm-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_timesheet
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - analytic
    - uom
    - project
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - digest
    - hr_holidays
    - calendar
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge module to integrate leaves in timesheet
================================================

This module allows to automatically log timesheets when employees are
on leaves. Project and task can be configured company-wide.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
hr_holiday_status_view_form_inherit hr.leave.type.form hr.leave.type xpath Inherits hr_holidays.edit_holiday_status_form
res_config_settings_view_form res.config.settings.view.form.inherit.project.timesheet.holidays res.config.settings xpath Inherits hr_timesheet.res_config_settings_view_form
Models touched (5)

New fields (1)
  • holiday_id Many2one → hr.leave
    string='Leave Request' args: 'hr.leave'
Public methods (1)
  • unlink(self)

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'holiday_id'
Public methods (1)
  • action_refuse(self)
    Remove the timesheets linked to the refused holidays

New fields (3)
  • timesheet_generate Boolean
    compute='_compute_timesheet_generate' help='If checked, when validating a time off, timesheet will be generated in the Vacation Project of the company.' readonly=False store=True args: 'Generate Timesheet'
  • timesheet_project_id Many2one → project.project
    default=_default_project_id domain="[('company_id', '=', company_id)]" help='The project will contain the timesheet generated when a time off is validated.' string='Project' args: 'project.project'
  • timesheet_task_id Many2one → project.task
    compute='_compute_timesheet_task_id' default=_default_task_id domain="[('project_id', '=', timesheet_project_id),('company_id', '=', company_id)]" readonly=False store=True string='Task for timesheet' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • leave_timesheet_project_id Many2one → project.project
    help='Default project value for timesheet generated from time off type.' string='Internal Project' args: 'project.project'
  • leave_timesheet_task_id Many2one → project.task
    domain="[('project_id', '=', leave_timesheet_project_id)]" string='Time Off Task' args: 'project.task'
Public methods (1)
  • init(self)

New fields (2)
  • leave_timesheet_project_id Many2one
    domain="[('company_id', '=', company_id)]" readonly=False related='company_id.leave_timesheet_project_id' required=True string='Internal Project'
  • leave_timesheet_task_id Many2one
    domain="[('company_id', '=', company_id), ('project_id', '=?', leave_timesheet_project_id)]" readonly=False related='company_id.leave_timesheet_task_id' string='Time Off Task'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/13.0/project_timesheet_holidays
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Christophe Simonis, Nicolas Martinelli, Yannick Tivisse, jem-odoo, Adrian Torres, Xavier-Do, fw-bot, Geoffroy Larue
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:06:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_timesheet
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - mail_bot
    - analytic
    - uom
    - project
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - digest
    - hr_holidays
    - calendar
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge module to integrate leaves in timesheet
================================================

This module allows to automatically log timesheets when employees are
on leaves. Project and task can be configured company-wide.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
hr_holiday_status_view_form_inherit hr.leave.type.form hr.leave.type xpath Inherits hr_holidays.edit_holiday_status_form
res_config_settings_view_form res.config.settings.view.form.inherit.project.timesheet.holidays res.config.settings xpath Inherits hr_timesheet.res_config_settings_view_form
Models touched (5)

New fields (1)
  • holiday_id Many2one → hr.leave
    string='Leave Request' args: 'hr.leave'
Public methods (1)
  • unlink(self)

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'holiday_id'
Public methods (1)
  • action_refuse(self)
    Remove the timesheets linked to the refused holidays

New fields (3)
  • timesheet_generate Boolean
    default=True help='If checked, when validating a time off, timesheet will be generated in the Vacation Project of the company.' args: 'Generate Timesheet'
  • timesheet_project_id Many2one → project.project
    default=_default_project_id domain="[('company_id', '=', company_id)]" help='The project will contain the timesheet generated when a time off is validated.' string='Project' args: 'project.project'
  • timesheet_task_id Many2one → project.task
    default=_default_task_id domain="[('project_id', '=', timesheet_project_id), ('company_id', '=', company_id)]" string='Task for timesheet' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • leave_timesheet_project_id Many2one → project.project
    help='Default project value for timesheet generated from time off type.' string='Internal Project' args: 'project.project'
  • leave_timesheet_task_id Many2one → project.task
    domain="[('project_id', '=', leave_timesheet_project_id)]" string='Time Off Task' args: 'project.task'
Public methods (2)
  • create(self, values)
    @api.model
  • init(self)

New fields (2)
  • leave_timesheet_project_id Many2one
    domain="[('company_id', '=', company_id)]" readonly=False related='company_id.leave_timesheet_project_id' string='Internal Project'
  • leave_timesheet_task_id Many2one
    domain="[('company_id', '=', company_id)]" readonly=False related='company_id.leave_timesheet_task_id' string='Time Off Task'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/project_timesheet_holidays
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Nicolas Martinelli, GitHub, Yannick Tivisse, qsm-odoo, jem-odoo, RomainLibert, Adrian Torres, mreficent, Xavier-Do, Alexey Pelykh
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_timesheet
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - analytic
    - decimal_precision
    - uom
    - project
    - portal
    - http_routing
    - rating
    - digest
    - hr_holidays
    - calendar
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge module to integrate leaves in timesheet
================================================

This module allows to automatically log timesheets when employees are
on leaves. Project and task can be configured company-wide.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
hr_holiday_status_view_form_inherit hr.leave.type.form hr.leave.type xpath Inherits hr_holidays.edit_holiday_status_form
res_config_settings_view_form res.config.settings.view.form.inherit.project.timesheet.holidays res.config.settings xpath Inherits hr_timesheet.res_config_settings_view_form
Models touched (5)

New fields (1)
  • holiday_id Many2one → hr.leave
    string='Leave Request' args: 'hr.leave'
Public methods (1)
  • unlink(self)
    @api.multi

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'holiday_id'
Public methods (1)
  • action_refuse(self)
    @api.multi
    Remove the timesheets linked to the refused holidays

New fields (3)
  • timesheet_generate Boolean
    default=True help='If checked, when validating a leave, timesheet will be generated in the Vacation Project of the company.' args: 'Generate Timesheet'
  • timesheet_project_id Many2one → project.project
    default=_default_project_id help='The project will contain the timesheet generated when a leave is validated.' string='Internal Project' args: 'project.project'
  • timesheet_task_id Many2one → project.task
    default=_default_task_id domain="[('project_id', '=', timesheet_project_id)]" string='Internal Task for timesheet' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • leave_timesheet_project_id Many2one → project.project
    help='Default project value for timesheet generated from leave type.' string='Internal Project' args: 'project.project'
  • leave_timesheet_task_id Many2one → project.task
    domain="[('project_id', '=', leave_timesheet_project_id)]" string='Leave Task' args: 'project.task'
Public methods (2)
  • create(self, values)
    @api.model
  • init(self)

New fields (2)
  • leave_timesheet_project_id Many2one
    domain="[('company_id', '=', company_id)]" readonly=False related='company_id.leave_timesheet_project_id' string='Internal Project'
  • leave_timesheet_task_id Many2one
    domain="[('company_id', '=', company_id)]" readonly=False related='company_id.leave_timesheet_task_id' string='Leave Task'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/11.0/project_timesheet_holidays
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Xavier Morel, Nicolas Martinelli, Jérome Maes, Richard Mathot, Yannick Tivisse, Odoo Online, jem-odoo, Christophe Monniez
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:53:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_timesheet
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - project
    - product
    - decimal_precision
    - analytic
    - portal
    - http_routing
    - web_planner
    - hr_holidays
    - calendar
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Bridge module to integrate leaves in timesheet
================================================

This module allows to automatically log timesheets when employees are
on leaves. Project and task can be configured company-wide.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
hr_holiday_status_view_form_inherit hr.holidays.status.form hr.holidays.status xpath Inherits hr_holidays.edit_holiday_status_form
res_config_settings_view_form res.config.settings.view.form.inherit.project.timesheet.holidays res.config.settings xpath Inherits hr_timesheet.res_config_settings_view_form
Models touched (5)

New fields (1)
  • holiday_id Many2one → hr.holidays
    string='Leave Request' args: 'hr.holidays'
Public methods (1)
  • unlink(self)
    @api.multi

New fields (1)
  • timesheet_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'holiday_id'
Public methods (1)
  • action_refuse(self)
    @api.multi
    Remove the timesheets linked to the refused holidays

New fields (3)
  • timesheet_generate Boolean
    default=True help='If checked, when validating a leave, timesheet will be generated in the Vacation Project of the company.' args: 'Generate Timesheet'
  • timesheet_project_id Many2one → project.project
    default=_default_project_id help='The project will contain the timesheet generated when a leave is validated.' string='Internal Project' args: 'project.project'
  • timesheet_task_id Many2one → project.task
    default=_default_task_id domain="[('project_id', '=', timesheet_project_id)]" string='Internal Task for timesheet' args: 'project.task'
Public methods (0)

No public methods.

New fields (2)
  • leave_timesheet_project_id Many2one → project.project
    help='Default project value for timesheet generated from leave type.' string='Internal Project' args: 'project.project'
  • leave_timesheet_task_id Many2one → project.task
    domain="[('project_id', '=', leave_timesheet_project_id)]" string='Leave Task' args: 'project.task'
Public methods (2)
  • create(self, values)
    @api.model
  • init(self)

New fields (2)
  • leave_timesheet_project_id Many2one
    related='company_id.leave_timesheet_project_id' string='Internal Project'
  • leave_timesheet_task_id Many2one
    related='company_id.leave_timesheet_task_id' string='Leave Task'
Public methods (0)

No public methods.