| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project |
| GIT | |
| GIT | https://github.com/OCA/project.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project/tree/18.0/project_timesheet_time_control |
| VERSION | |
| VERSION | 1.0.7 |
| CATEGORY | |
| CATEGORY | Project |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Víctor Martínez, Weblate, OCA-git-bot, oca-ci, pilarvargas-tecnativa, Christopher Rogos, Jan Suhr, David Bañón, Simon Leblanc, Jonathan Debétaz |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:14 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_timesheet - hr - base_setup - base - web - digest - bus - web_tour - html_editor - portal - web_editor - http_routing - auth_signup - resource - phone_validation - resource_mail - hr_hourly_cost - analytic - uom - project - rating |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Allow to track the exact moment when a timesheet line is started (not only the day, but also the minute and second) and let users start and stop timers easily. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_analytic_line_tree |
account.analytic.line | field | Inherits hr_timesheet.hr_timesheet_line_tree | |
hr_timesheet_line_form |
account.analytic.line.form.inherit | account.analytic.line | xpath | Inherits hr_timesheet.hr_timesheet_line_form |
hr_timesheet_switch_form |
hr.timesheet.switch resume form | hr.timesheet.switch | form | New |
project_invoice_form |
Add timesheet time controls | project.project | div | Inherits hr_timesheet.project_invoice_form |
view_kanban_account_analytic_line |
account.analytic.line.kanban | account.analytic.line | xpath | Inherits hr_timesheet.view_kanban_account_analytic_line |
view_project_kanban_inherited |
Add timesheet time controls | project.project | xpath | Inherits hr_timesheet.view_project_kanban_inherited |
view_project_tree |
Add timesheet time controls | project.project | list | Inherits project.view_project |
view_task_form2_inherited |
Add timesheet time controls | project.task | div | Inherits hr_timesheet.view_task_form2_inherited |
view_task_kanban |
Add timesheet time controls | project.task | xpath | Inherits project.view_task_kanban |
view_task_tree2_inherited |
Add timesheet time controls | project.task | list | Inherits hr_timesheet.view_task_tree2_inherited |
date_time
Datetime
copy=False
default=fields.Datetime.now
string='Start Time'
date_time_end
Datetime
compute='_compute_date_time_end'
inverse='_inverse_date_time_end'
search='_search_date_time_end'
string='End Time'
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('resume', 'Resume'), ('stop', 'Stop')]
button_end_work(self)
button_resume_work(self)
create(self, vals_list)
write(self, vals)
analytic_line_id
Many2one → account.analytic.line
comodel_name='account.analytic.line'
string='Origin line'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
date_time
Datetime
default=fields.Datetime.now
required=True
string='Start Time'
date_time_end
Datetime
string='End Time'
name
Char
required=True
string='Description'
project_id
Many2one → project.project
comodel_name='project.project'
compute='_compute_project_id'
domain=_domain_project_id
readonly=False
store=True
string='Project'
running_timer_duration
Float
compute='_compute_running_timer_duration'
help='When the previous timer is stopped, it will save this duration.'
string='Previous timer duration'
running_timer_id
Many2one → account.analytic.line
comodel_name='account.analytic.line'
default=<expr>
help='This timer is running and will be stopped'
ondelete='cascade'
readonly=True
string='Previous timer'
running_timer_start
Datetime
readonly=True
related='running_timer_id.date_time'
string='Previous timer start'
task_id
Many2one → project.task
comodel_name='project.task'
compute='_compute_task_id'
domain="\n [\n ('company_id', '=', company_id),\n ('project_id.allow_timesheets', '=', True),\n ('project_id', '=?', project_id)\n ]\n "
index=True
readonly=False
store=True
string='Task'
action_switch(self)
default_get(self, fields_list)
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('start', 'Start'), ('stop', 'Stop')]
button_end_work(self)
button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project |
| GIT | |
| GIT | https://github.com/OCA/project.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project/tree/17.0/project_timesheet_time_control |
| VERSION | |
| VERSION | 1.1.2 |
| CATEGORY | |
| CATEGORY | Project |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Víctor Martínez, Weblate, OCA-git-bot, oca-ci, pilarvargas-tecnativa, Roger, David Bañón |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:07 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_timesheet - hr - base_setup - base - web - phone_validation - bus - web_tour - resource - hr_hourly_cost - analytic - uom - project - portal - web_editor - http_routing - auth_signup - rating - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Allow to track the exact moment when a timesheet line is started (not only the day, but also the minute and second) and let users start and stop timers easily. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_analytic_line_tree |
account.analytic.line | field | Inherits hr_timesheet.hr_timesheet_line_tree | |
hr_timesheet_line_form |
account.analytic.line.form.inherit | account.analytic.line | xpath | Inherits hr_timesheet.hr_timesheet_line_form |
hr_timesheet_switch_form |
hr.timesheet.switch resume form | hr.timesheet.switch | form | New |
project_invoice_form |
Add timesheet time controls | project.project | div | Inherits hr_timesheet.project_invoice_form |
view_kanban_account_analytic_line |
account.analytic.line.kanban | account.analytic.line | xpath | Inherits hr_timesheet.view_kanban_account_analytic_line |
view_project_kanban_inherited |
Add timesheet time controls | project.project | xpath | Inherits hr_timesheet.view_project_kanban_inherited |
view_project_tree |
Add timesheet time controls | project.project | tree | Inherits project.view_project |
view_task_form2_inherited |
Add timesheet time controls | project.task | div | Inherits hr_timesheet.view_task_form2_inherited |
view_task_kanban |
Add timesheet time controls | project.task | xpath | Inherits project.view_task_kanban |
view_task_tree2_inherited |
Add timesheet time controls | project.task | tree | Inherits hr_timesheet.view_task_tree2_inherited |
date_time
Datetime
copy=False
default=fields.Datetime.now
string='Start Time'
date_time_end
Datetime
compute='_compute_date_time_end'
inverse='_inverse_date_time_end'
string='End Time'
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('resume', 'Resume'), ('stop', 'Stop')]
button_end_work(self)
button_resume_work(self)
create(self, vals_list)
write(self, vals)
analytic_line_id
Many2one → account.analytic.line
comodel_name='account.analytic.line'
string='Origin line'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
date_time
Datetime
default=fields.Datetime.now
required=True
string='Start Time'
date_time_end
Datetime
string='End Time'
name
Char
required=True
string='Description'
project_id
Many2one → project.project
comodel_name='project.project'
compute='_compute_project_id'
domain=_domain_project_id
readonly=False
store=True
string='Project'
running_timer_duration
Float
compute='_compute_running_timer_duration'
help='When the previous timer is stopped, it will save this duration.'
string='Previous timer duration'
running_timer_id
Many2one → account.analytic.line
comodel_name='account.analytic.line'
default=<expr>
help='This timer is running and will be stopped'
ondelete='cascade'
readonly=True
string='Previous timer'
running_timer_start
Datetime
readonly=True
related='running_timer_id.date_time'
string='Previous timer start'
task_id
Many2one → project.task
comodel_name='project.task'
compute='_compute_task_id'
domain="\n [\n ('company_id', '=', company_id),\n ('project_id.allow_timesheets', '=', True),\n ('project_id', '=?', project_id)\n ]\n "
index=True
readonly=False
store=True
string='Task'
action_switch(self)
default_get(self, fields_list)
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('start', 'Start'), ('stop', 'Stop')]
button_end_work(self)
button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project |
| GIT | |
| GIT | https://github.com/OCA/project.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project/tree/16.0/project_timesheet_time_control |
| VERSION | |
| VERSION | 1.0.4 |
| CATEGORY | |
| CATEGORY | Project |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, angel, Moctar Diallo |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:49 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_timesheet - hr - base_setup - base - web - bus - web_tour - resource - hr_hourly_cost - analytic - uom - project - portal - web_editor - http_routing - auth_signup - rating - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_analytic_line_tree |
account.analytic.line | field | Inherits hr_timesheet.hr_timesheet_line_tree | |
hr_timesheet_line_form |
account.analytic.line.form.inherit | account.analytic.line | xpath | Inherits hr_timesheet.hr_timesheet_line_form |
hr_timesheet_switch_form |
hr.timesheet.switch resume form | hr.timesheet.switch | form | New |
project_invoice_form |
Add timesheet time controls | project.project | div | Inherits hr_timesheet.project_invoice_form |
view_kanban_account_analytic_line |
account.analytic.line.kanban | account.analytic.line | xpath | Inherits hr_timesheet.view_kanban_account_analytic_line |
view_project_kanban_inherited |
Add timesheet time controls | project.project | xpath | Inherits hr_timesheet.view_project_kanban_inherited |
view_project_tree |
Add timesheet time controls | project.project | tree | Inherits project.view_project |
view_task_form2_inherited |
Add timesheet time controls | project.task | div | Inherits hr_timesheet.view_task_form2_inherited |
view_task_kanban |
Add timesheet time controls | project.task | xpath | Inherits project.view_task_kanban |
view_task_tree2_inherited |
Add timesheet time controls | project.task | tree | Inherits hr_timesheet.view_task_tree2_inherited |
date_time
Datetime
copy=False
default=fields.Datetime.now
string='Start Time'
date_time_end
Datetime
compute='_compute_date_time_end'
inverse='_inverse_date_time_end'
string='End Time'
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('resume', 'Resume'), ('stop', 'Stop')]
button_end_work(self)
button_resume_work(self)
create(self, vals_list)
write(self, vals)
analytic_line_id
Many2one → account.analytic.line
comodel_name='account.analytic.line'
string='Origin line'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
date_time
Datetime
default=fields.Datetime.now
required=True
string='Start Time'
date_time_end
Datetime
string='End Time'
name
Char
required=True
string='Description'
project_id
Many2one → project.project
comodel_name='project.project'
compute='_compute_project_id'
domain=_domain_project_id
readonly=False
store=True
string='Project'
running_timer_duration
Float
compute='_compute_running_timer_duration'
help='When the previous timer is stopped, it will save this duration.'
string='Previous timer duration'
running_timer_id
Many2one → account.analytic.line
comodel_name='account.analytic.line'
default=<expr>
help='This timer is running and will be stopped'
ondelete='cascade'
readonly=True
string='Previous timer'
running_timer_start
Datetime
readonly=True
related='running_timer_id.date_time'
string='Previous timer start'
task_id
Many2one → project.task
comodel_name='project.task'
compute='_compute_task_id'
domain="\n [\n ('company_id', '=', company_id),\n ('project_id.allow_timesheets', '=', True),\n ('project_id', '=?', project_id)\n ]\n "
index=True
readonly=False
store=True
string='Task'
action_switch(self)
default_get(self, fields_list)
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('start', 'Start'), ('stop', 'Stop')]
button_end_work(self)
button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project |
| GIT | |
| GIT | https://github.com/OCA/project.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project/tree/15.0/project_timesheet_time_control |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Project |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, CarlosRoca13, Ignacio Rodriguez |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:36 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/timesheet: - hr_timesheet_task_domain - hr_timesheet_task_stage OCA/web: - web_ir_actions_act_multi - web_ir_actions_act_view_reload odoo/odoo: - hr_timesheet - hr - base_setup - base - web - bus - web_tour - resource - analytic - uom - project - portal - web_editor - http_routing - auth_signup - rating - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_analytic_line_tree |
account.analytic.line | field | Inherits hr_timesheet.hr_timesheet_line_tree | |
hr_timesheet_line_form |
account.analytic.line.form.inherit | account.analytic.line | div | Inherits hr_timesheet_task_stage.account_analytic_line_form |
hr_timesheet_switch_form |
hr.timesheet.switch resume form | hr.timesheet.switch | form | New |
project_invoice_form |
Add timesheet time controls | project.project | div | Inherits hr_timesheet.project_invoice_form |
view_kanban_account_analytic_line |
account.analytic.line.kanban | account.analytic.line | xpath | Inherits hr_timesheet.view_kanban_account_analytic_line |
view_project_kanban_inherited |
Add timesheet time controls | project.project | xpath | Inherits hr_timesheet.view_project_kanban_inherited |
view_project_tree |
Add timesheet time controls | project.project | tree | Inherits project.view_project |
view_task_form2_inherited |
Add timesheet time controls | project.task | div | Inherits hr_timesheet.view_task_form2_inherited |
view_task_kanban |
Add timesheet time controls | project.task | xpath | Inherits project.view_task_kanban |
view_task_tree2_inherited |
Add timesheet time controls | project.task | tree | Inherits hr_timesheet.view_task_tree2_inherited |
date_time
Datetime
copy=False
default=fields.Datetime.now
string='Start Time'
date_time_end
Datetime
compute='_compute_date_time_end'
inverse='_inverse_date_time_end'
string='End Time'
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('resume', 'Resume'), ('stop', 'Stop')]
button_end_work(self)
button_resume_work(self)
create(self, vals_list)
write(self, vals)
analytic_line_id
Many2one → account.analytic.line
comodel_name='account.analytic.line'
string='Origin line'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
date_time
Datetime
default=fields.Datetime.now
required=True
string='Start Time'
date_time_end
Datetime
string='End Time'
name
Char
required=True
string='Description'
project_id
Many2one → project.project
comodel_name='project.project'
compute='_compute_project_id'
domain=_domain_project_id
readonly=False
store=True
string='Project'
running_timer_duration
Float
compute='_compute_running_timer_duration'
help='When the previous timer is stopped, it will save this duration.'
string='Previous timer duration'
running_timer_id
Many2one → account.analytic.line
comodel_name='account.analytic.line'
default=<expr>
help='This timer is running and will be stopped'
ondelete='cascade'
readonly=True
string='Previous timer'
running_timer_start
Datetime
readonly=True
related='running_timer_id.date_time'
string='Previous timer start'
task_id
Many2one → project.task
comodel_name='project.task'
compute='_compute_task_id'
domain="\n [\n ('company_id', '=', company_id),\n ('project_id.allow_timesheets', '=', True),\n ('project_id', '=?', project_id)\n ]\n "
index=True
readonly=False
store=True
string='Task'
action_switch(self)
default_get(self, fields_list)
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('start', 'Start'), ('stop', 'Stop')]
button_end_work(self)
button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project |
| GIT | |
| GIT | https://github.com/OCA/project.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project/tree/14.0/project_timesheet_time_control |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Project |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Pierre Verkest, OCA Transbot, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, oca-ci, Alessandro Uffreduzzi, ntsirintanis, aromera, Antoni Romera luis |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:03 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/timesheet: - hr_timesheet_task_domain - hr_timesheet_task_stage OCA/web: - web_ir_actions_act_multi - web_ir_actions_act_view_reload odoo/odoo: - hr_timesheet - hr - base_setup - base - web - bus - web_tour - resource - analytic - uom - project - portal - web_editor - http_routing - auth_signup - rating - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_analytic_line_tree |
account.analytic.line | field | Inherits hr_timesheet.hr_timesheet_line_tree | |
hr_timesheet_line_form |
account.analytic.line.form.inherit | account.analytic.line | div | Inherits hr_timesheet_task_stage.account_analytic_line_form |
hr_timesheet_switch_form |
hr.timesheet.switch resume form | hr.timesheet.switch | div | Inherits hr_timesheet_line_form |
project_invoice_form |
Add timesheet time controls | project.project | div | Inherits hr_timesheet.project_invoice_form |
view_kanban_account_analytic_line |
account.analytic.line.kanban | account.analytic.line | xpath | Inherits hr_timesheet.view_kanban_account_analytic_line |
view_project_kanban_inherited |
Add timesheet time controls | project.project | xpath | Inherits hr_timesheet.view_project_kanban_inherited |
view_project_tree |
Add timesheet time controls | project.project | tree | Inherits project.view_project |
view_task_form2_inherited |
Add timesheet time controls | project.task | div | Inherits hr_timesheet.view_task_form2_inherited |
view_task_kanban |
Add timesheet time controls | project.task | xpath | Inherits project.view_task_kanban |
view_task_tree2_inherited |
Add timesheet time controls | project.task | tree | Inherits hr_timesheet.view_task_tree2_inherited |
date_time
Datetime
copy=False
default=fields.Datetime.now
string='Start Time'
date_time_end
Datetime
compute='_compute_date_time_end'
inverse='_inverse_date_time_end'
string='End Time'
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('resume', 'Resume'), ('stop', 'Stop')]
button_end_work(self)
button_resume_work(self)
create(self, vals_list)
write(self, vals)
running_timer_duration
Float
compute='_compute_running_timer_duration'
help='When the previous timer is stopped, it will save this duration.'
string='Previous timer duration'
running_timer_id
Many2one → account.analytic.line
comodel_name='account.analytic.line'
default=<expr>
help='This timer is running and will be stopped'
ondelete='cascade'
readonly=True
string='Previous timer'
running_timer_start
Datetime
readonly=True
related='running_timer_id.date_time'
string='Previous timer start'
tag_ids
Many2many
relation='hr_timesheet_switch_line_tag_rel'
action_switch(self)
default_get(self, fields_list)
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('start', 'Start'), ('stop', 'Stop')]
button_end_work(self)
button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project |
| GIT | |
| GIT | https://github.com/OCA/project.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project/tree/13.0/project_timesheet_time_control |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Project |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | eLBati, Pedro M. Baeza, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-ci, David James |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:15 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/project: - project_stage_closed OCA/timesheet: - hr_timesheet_task_stage - hr_timesheet_task_domain OCA/web: - web_ir_actions_act_multi - web_ir_actions_act_view_reload odoo/odoo: - hr_timesheet - hr - base_setup - base - web - bus - web_tour - resource - mail_bot - analytic - uom - project - portal - web_editor - http_routing - auth_signup - rating - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_analytic_line_tree |
account.analytic.line | field | Inherits hr_timesheet.hr_timesheet_line_tree | |
hr_timesheet_line_form |
account.analytic.line.form.inherit | account.analytic.line | div | Inherits hr_timesheet_task_stage.account_analytic_line_form |
hr_timesheet_switch_form |
hr.timesheet.switch resume form | hr.timesheet.switch | div | Inherits hr_timesheet_line_form |
project_invoice_form |
Add timesheet time controls | project.project | div | Inherits hr_timesheet.project_invoice_form |
view_kanban_account_analytic_line |
account.analytic.line.kanban | account.analytic.line | xpath | Inherits hr_timesheet.view_kanban_account_analytic_line |
view_project_kanban_inherited |
Add timesheet time controls | project.project | xpath | Inherits hr_timesheet.view_project_kanban_inherited |
view_project_tree |
Add timesheet time controls | project.project | tree | Inherits project.view_project |
view_task_form2_inherited |
Add timesheet time controls | project.task | div | Inherits hr_timesheet.view_task_form2_inherited |
view_task_kanban |
Add timesheet time controls | project.task | xpath | Inherits project.view_task_kanban |
view_task_tree2_inherited |
Add timesheet time controls | project.task | tree | Inherits hr_timesheet.view_task_tree2_inherited |
date_time
Datetime
copy=False
default=fields.Datetime.now
string='Start Time'
date_time_end
Datetime
compute='_compute_date_time_end'
inverse='_inverse_date_time_end'
string='End Time'
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('resume', 'Resume'), ('stop', 'Stop')]
button_end_work(self)
button_resume_work(self)
create(self, vals_list)
write(self, vals)
running_timer_duration
Float
compute='_compute_running_timer_duration'
help='When the previous timer is stopped, it will save this duration.'
string='Previous timer duration'
running_timer_id
Many2one → account.analytic.line
comodel_name='account.analytic.line'
default=<expr>
help='This timer is running and will be stopped'
ondelete='cascade'
readonly=True
string='Previous timer'
running_timer_start
Datetime
readonly=True
related='running_timer_id.date_time'
string='Previous timer start'
tag_ids
Many2many
relation='hr_timesheet_switch_line_tag_rel'
action_switch(self)
default_get(self, fields_list)
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('start', 'Start'), ('stop', 'Stop')]
button_end_work(self)
button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project |
| GIT | |
| GIT | https://github.com/OCA/project.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project/tree/12.0/project_timesheet_time_control |
| VERSION | |
| VERSION | 2.1.2 |
| CATEGORY | |
| CATEGORY | Project |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | eLBati, GitHub, Jairo Llopis, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-ci, Marcel Savegnago |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/project: - project_stage_closed OCA/timesheet: - hr_timesheet_task_stage - hr_timesheet_task_domain OCA/web: - web_ir_actions_act_multi - web_ir_actions_act_view_reload odoo/odoo: - hr_timesheet - hr - base_setup - base - web - bus - web_tour - resource - analytic - decimal_precision - uom - project - portal - http_routing - rating - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_analytic_line_tree |
account.analytic.line | field | Inherits hr_timesheet.hr_timesheet_line_tree | |
hr_timesheet_line_form |
account.analytic.line.form.inherit | account.analytic.line | div | Inherits hr_timesheet_task_stage.account_analytic_line_form |
hr_timesheet_switch_form |
hr.timesheet.switch resume form | hr.timesheet.switch | div | Inherits hr_timesheet_line_form |
project_invoice_form |
Add timesheet time controls | project.project | div | Inherits hr_timesheet.project_invoice_form |
view_kanban_account_analytic_line |
account.analytic.line.kanban | account.analytic.line | xpath | Inherits hr_timesheet.view_kanban_account_analytic_line |
view_project_kanban_inherited |
Add timesheet time controls | project.project | xpath | Inherits hr_timesheet.view_project_kanban_inherited |
view_project_tree |
Add timesheet time controls | project.project | tree | Inherits project.view_project |
view_task_form2_inherited |
Add timesheet time controls | project.task | div | Inherits hr_timesheet.view_task_form2_inherited |
view_task_kanban |
Add timesheet time controls | project.task | xpath | Inherits project.view_task_kanban |
view_task_tree2_inherited |
Add timesheet time controls | project.task | tree | Inherits hr_timesheet.view_task_tree2_inherited |
date_time
Datetime
copy=False
default=fields.Datetime.now
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('resume', 'Resume'), ('stop', 'Stop')]
button_end_work(self)
button_resume_work(self)
create(self, vals_list)
write(self, vals)
running_timer_duration
Float
compute='_compute_running_timer_duration'
help='When the previous timer is stopped, it will save this duration.'
string='Previous timer duration'
running_timer_id
Many2one → account.analytic.line
comodel_name='account.analytic.line'
default=<expr>
help='This timer is running and will be stopped'
ondelete='cascade'
readonly=True
string='Previous timer'
running_timer_start
Datetime
readonly=True
related='running_timer_id.date_time'
string='Previous timer start'
action_switch(self)
default_get(self, fields_list)
show_time_control
Selection
compute='_compute_show_time_control'
help='Indicate which time control button to show, if any.'
selection=[('start', 'Start'), ('stop', 'Stop')]
button_end_work(self)
button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
No new fields.
Public methods (1)button_start_work(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project |
| GIT | |
| GIT | https://github.com/OCA/project.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project/tree/11.0/project_timesheet_time_control |
| VERSION | |
| VERSION | 1.2.0 |
| CATEGORY | |
| CATEGORY | Project |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, OCA Transbot, oca-travis, Weblate, OCA-git-bot, OCA Git Bot, tbaden |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/project: - project_stage_closed odoo/odoo: - hr_timesheet - hr - base_setup - base - web - bus - web_tour - resource - project - product - decimal_precision - analytic - portal - http_routing - web_planner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_analytic_line_tree |
account.analytic.line | field | Inherits hr_timesheet.hr_timesheet_line_tree | |
hr_timesheet_line_form |
account.analytic.line.form.inherit | account.analytic.line | field | Inherits hr_timesheet.hr_timesheet_line_form |
view_kanban_account_analytic_line |
account.analytic.line.kanban | account.analytic.line | xpath | Inherits hr_timesheet.view_kanban_account_analytic_line |
view_task_form2_inherited |
project.task | xpath | Inherits hr_timesheet.view_task_form2_inherited |
closed
Boolean
readonly=True
related='task_id.stage_id.closed'
date_time
Datetime
default=fields.Datetime.now
string='Date'
button_close_task(self)
button_end_work(self)
button_open_task(self)
create(self, vals)
eval_date(self, vals)
onchange_project_id(self)
onchange_task_id_project_timesheet_time_control(self)
toggle_closed(self)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project |
| GIT | |
| GIT | https://github.com/OCA/project.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project/tree/10.0/project_timesheet_time_control |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Project |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, OCA Transbot, oca-travis, Weblate, Luis M. Ontalba |
| WEBSITE | |
| WEBSITE | http://www.serviciosbaeza.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:58 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/project: - project_stage_closed odoo/odoo: - hr_timesheet - account - base_setup - base - web_kanban - web - product - decimal_precision - bus - web_tour - report - analytic - web_planner - hr - resource - project |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_analytic_line_tree |
account.analytic.line | field | Inherits hr_timesheet.hr_timesheet_line_tree | |
view_task_form2_inherited |
project.task | xpath | Inherits hr_timesheet.view_task_form2_inherited |
closed
Boolean
readonly=True
related='task_id.stage_id.closed'
date_time
Datetime
default=fields.Datetime.now
string='Date'
button_close_task(self)
button_end_work(self)
button_open_task(self)
create(self, vals)
eval_date(self, vals)
onchange_project_id(self)
onchange_task_id(self)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project |
| GIT | |
| GIT | https://github.com/OCA/project.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project/tree/9.0/project_timesheet_time_control |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Project |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, OCA Transbot, oca-travis, Weblate |
| WEBSITE | |
| WEBSITE | http://www.serviciosbaeza.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:15:21 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/project: - project_stage_closed odoo/odoo: - project_timesheet - resource - base - project - base_setup - web_kanban - web - product - decimal_precision - bus - report - analytic - portal - auth_signup - web_tip - web_planner - sale_timesheet - sale - sales_team - account - procurement - hr_timesheet - hr - hr_attendance |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_analytic_line_search |
account.analytic.line | group | Inherits hr_timesheet.hr_timesheet_line_search | |
account_analytic_line_tree |
account.analytic.line | field | Inherits project_timesheet.view_account_analytic_line_tree_inherit_account_id | |
view_task_form2_inherited |
project.task | xpath | Inherits project_timesheet.view_task_form2_inherited |
closed
Boolean
readonly=True
related='task_id.stage_id.closed'
date_time
Datetime
default=fields.Datetime.now
string='Date'
button_close_task(self)
button_end_work(self)
button_open_task(self)
create(self, vals)
eval_date(self, vals)
onchange_account_id(self)
onchange_task_id(self)
write(self, vals)