| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/timesheet |
| GIT | |
| GIT | https://github.com/OCA/timesheet.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/timesheet/tree/19.0/hr_timesheet_time_control |
| VERSION | |
| VERSION | 1.0.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 | Weblate, OCA-git-bot, oca-ci, Christopher Rogos |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/timesheet |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:50 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_timesheet - hr - base_setup - base - web - digest - bus - web_tour - html_editor - portal - 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=<expr>
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=<expr>
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)