TIP: You can type at any time to perform a new search.
Timesheets / Attendances
hr_timesheet_sheet · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.1
- Category
- Human Resources
- Folder size
- 1.33 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://www.odoo.com/page/employees
- Last tracking update
- 2026-08-07 04:59:45
- Authors
- Maintainers
- None
- Committers
- Xavier Morel, Antony Lesuisse, Olivier Dony, Fabien Pinckaers, Christophe Simonis, Thibault Delavallée, Martin Trigaux, Odoo Translation Bot, Denis Ledoux, Simon Lejeune, Julien Legros, qdp-odoo, Jeremy Kersten, Yannick Tivisse, qsm-odoo, Denis Vermylen (dve), Tanguy Charlier, jem-odoo, Toufik Ben Jaa, Giulio Marcon
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- analytic_secondaxis_timesheet, hr_timesheet_activity_begin_end, hr_timesheet_attendance, hr_timesheet_fulfill, hr_timesheet_holiday, hr_timesheet_improvement, hr_timesheet_reminder, hr_timesheet_sheet_change_period, hr_timesheet_sheet_period, hr_timesheet_sheet_restrict_project, hr_timesheet_sheet_week_start_day, hr_timesheet_task, hr_worked_days_from_timesheet, project_issue_sheet
- Description
Record and validate timesheets and attendances easily ===================================================== This application supplies a new screen enabling you to manage your work encoding (timesheet) by period. Timesheet entries are made by employees each day. At the end of the defined period, employees validate their sheet and the manager must then approve his team's entries. Periods are defined in the company forms and you can set them to run monthly or weekly. The complete timesheet validation process is: --------------------------------------------- * Draft sheet * Confirmation at the end of the period by the employee * Validation by the project manager The validation can be configured in the company: ------------------------------------------------ * Period size (Day, Week, Month) * Maximal difference between timesheet and attendances
Code Analysis ⓘ
Views touched (12)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_timesheet_sheet assets | ir.ui.view | qweb | Inherits web.assets_backend |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | kanban | Inherits hr.hr_department_view_kanban |
hr_timesheet_account_filter |
hr.timesheet.account.filter | hr_timesheet_sheet.sheet.account | search | New |
hr_timesheet_account_form |
hr.timesheet.account.form | hr_timesheet_sheet.sheet.account | form | New |
hr_timesheet_account_tree |
hr.timesheet.account.tree | hr_timesheet_sheet.sheet.account | tree | New |
hr_timesheet_line_form |
account.analytic.line.form | account.analytic.line | form | Inherits hr_timesheet.hr_timesheet_line_form |
hr_timesheet_line_search |
account.analytic.line.search | account.analytic.line | search | Inherits hr_timesheet.hr_timesheet_line_search |
hr_timesheet_sheet_employee_extd_form |
hr.timesheet.sheet.employee.extd_form | hr.employee | form | Inherits hr.view_employee_form |
hr_timesheet_sheet_form |
hr.timesheet.sheet.form | hr_timesheet_sheet.sheet | form | New |
hr_timesheet_sheet_tree_simplified |
hr.timesheet.sheet.tree | hr_timesheet_sheet.sheet | tree | New |
view_config_settings_form_inherit_hr_timesheet_sheet |
project.config.settings.form.inherit.timesheet.sheet | project.config.settings | form | Inherits project.view_config_settings |
view_hr_timesheet_sheet_filter |
hr_timesheet_sheet.sheet.filter | hr_timesheet_sheet.sheet | search | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (8)
New fields (2)
-
sheet_idMany2one → hr_timesheet_sheet.sheetcompute='_compute_sheet'store=Truestring='Sheet' args: 'hr_timesheet_sheet.sheet' -
sheet_id_computedMany2one → hr_timesheet_sheet.sheetcompute='_compute_sheet'index=Trueondelete='cascade'search='_search_sheet'string='Sheet' args: 'hr_timesheet_sheet.sheet'
-
unlink(self)@api.multi -
write(self, values)@api.multi
New fields (1)
-
timesheet_to_approve_countIntegercompute='_compute_timesheet_to_approve'string='Timesheet to Approve'
No public methods.
New fields (1)
-
timesheet_countIntegercompute='_compute_timesheet_count'string='Timesheets'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
open_timesheet(self)@api.model
New fields (10)
-
account_idsOne2many → hr_timesheet_sheet.sheet.accountreadonly=Truestring='Analytic accounts' args: 'hr_timesheet_sheet.sheet.account', 'sheet_id' -
company_idMany2one → res.companydefault=<expr>string='Company' args: 'res.company' -
date_fromDatedefault=_default_date_fromindex=Truereadonly=Truerequired=Truestates={'new': [('readonly', False)]}string='Date From' -
date_toDatedefault=_default_date_toindex=Truereadonly=Truerequired=Truestates={'new': [('readonly', False)]}string='Date To' -
department_idMany2one → hr.departmentstring='Department' args: 'hr.department' -
employee_idMany2one → hr.employeedefault=_default_employeerequired=Truestring='Employee' args: 'hr.employee' -
nameCharstates={'confirm': [('readonly', True)], 'done': [('readonly', True)]}string='Note' -
stateSelectiondefault='new'help=" * The 'Open' status is used when a user is encoding a new and unconfirmed timesheet. \n* The 'Waiting Approval' status is used to confirm the timesheet by user. \n* The 'Approved' status is used when the users timesheet is accepted by his/her senior."index=Truereadonly=Truerequired=Truestring='Status'track_visibility='onchange' args: [('new', 'New'), ('draft', 'Open'), ('confirm', 'Waiting Approval'), ('done', 'Approved')] -
timesheet_idsOne2many → account.analytic.linereadonly=Truestates={'draft': [('readonly', False)], 'new': [('readonly', False)]}string='Timesheet lines' args: 'account.analytic.line', 'sheet_id' -
user_idMany2one → res.userscompute_sudo=Truereadonly=Truerelated='employee_id.user_id'store=Truestring='User' args: 'res.users'
-
action_timesheet_confirm(self)@api.multi -
action_timesheet_done(self)@api.multi -
action_timesheet_draft(self)@api.multi -
copy(self, *args, **argv) -
create(self, vals)@api.model -
name_get(self)@api.multi -
onchange_employee_id(self)@api.onchange('employee_id') -
unlink(self)@api.multi -
write(self, vals)@api.multi
New fields (3)
-
nameMany2one → account.analytic.accountreadonly=Truestring='Project / Analytic Account' args: 'account.analytic.account' -
sheet_idMany2one → hr_timesheet_sheet.sheetreadonly=Truestring='Sheet' args: 'hr_timesheet_sheet.sheet' -
totalFloatdigits=(16, 2)readonly=True args: 'Total Time'
-
init(self)@api.model_cr
New fields (2)
-
module_project_timesheet_synchroBooleanstring='Timesheet app for Chrome/Android/iOS' -
timesheet_rangeSelectionrelated='company_id.timesheet_range'string='Timesheet range *'
No public methods.
New fields (1)
-
timesheet_rangeSelectiondefault='week'help='Periodicity on which you validate your timesheets.'string='Timesheet range' args: [('week', 'Week'), ('month', 'Month')]
No public methods.
Loading…
Loading…
Loading…
Loading…