TIP: You can type at any time to perform a new search.
Task Logs Timesheet Report
hr_timesheet_report · OCA/timesheet
- Repository
- OCA/timesheet · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Human Resources
- Folder size
- 0.2 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/timesheet
- Last tracking update
- 2026-08-07 08:43:00
- Authors
- Odoo Community Association (OCA), CorporateHub
- Maintainers
- Odoo Community Association (OCA), CorporateHub
- Committers
- OCA-git-bot, oca-ci, tendil
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
This module allows to generate configurable Timesheet Report from Task Logs. Features: > - Select reported fields > - Select and reorder report line grouping > - Configure time format (HH:MM, HH:MM:SS, or decimal) > - View in browser, export in PDF and XLSX formats
Code Analysis ⓘ
Views touched (2)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_timesheet_report_wizard_form |
hr.timesheet.report.wizard.form | hr.timesheet.report.wizard | form | New |
report |
report | ir.ui.view | qweb | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (12)
New fields (0)
No new fields.
Public methods (1)-
action_timesheet_report_wizard(self)
New fields (13)
-
date_fromDatestring='Start Date' -
date_toDatestring='End Date' -
department_idsMany2many → hr.departmentcomodel_name='hr.department'string='Departments' -
employee_category_idsMany2many → hr.employee.categorycomodel_name='hr.employee.category'string='Employee Tags' -
employee_idsMany2many → hr.employeecomodel_name='hr.employee'string='Employees' -
entry_field_idsOne2many → hr.timesheet.report.field.entrycomodel_name='hr.timesheet.report.field.entry'inverse_name='report_id'string='Entry Fields' -
group_idsOne2many → hr.timesheet.report.groupcomodel_name='hr.timesheet.report.group'compute='_compute_group_ids'inverse_name='report_id'store=Truestring='Groups' -
groupby_field_idsOne2many → hr.timesheet.report.field.groupbycomodel_name='hr.timesheet.report.field.groupby'inverse_name='report_id'string='Group-By Fields' -
line_idsMany2many → account.analytic.linecomodel_name='account.analytic.line'string='Account Analytics Lines' -
project_idsMany2many → project.projectcomodel_name='project.project'string='Projects' -
task_idsMany2many → project.taskcomodel_name='project.task'string='Tasks' -
time_formatSelectionrequired=Trueselection=<expr>string='Time format' -
total_unit_amountFloatcompute='_compute_total_unit_amount'store=Truestring='Total Quantity'
-
get_action(self, report_type='qweb-html')
New fields (5)
-
any_line_idMany2one → account.analytic.linecomodel_name='account.analytic.line'compute='_compute_any_line_id'string='Account Analytics Lines' -
group_idMany2one → hr.timesheet.report.groupcomodel_name='hr.timesheet.report.group'ondelete='cascade'required=Truestring='Group' -
scopeChar -
sequenceIntegerrequired=True -
total_unit_amountFloatcompute='_compute_total_unit_amount'store=Truestring='Total Quantity'
-
render_value(self, field_name)
New fields (7)
-
aggregationChar -
field_nameCharrequired=Truestring='Field name' -
field_titleCharrequired=Truestring='Field title' -
field_typeCharrequired=Truestring='Field type' -
groupbyCharcompute='_compute_groupby'string='Group-by expression' -
report_idMany2one → hr.timesheet.reportcomodel_name='hr.timesheet.report'ondelete='cascade'required=Truestring='Report' -
sequenceIntegerrequired=True
No public methods.
New fields (1)
-
cell_classesCharcompute='_compute_cell_classes'string='Cell classes'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (6)
-
entry_idsOne2many → hr.timesheet.report.entrycomodel_name='hr.timesheet.report.entry'compute='_compute_entry_ids'inverse_name='group_id'store=Truestring='Entries' -
nameChar -
report_idMany2one → hr.timesheet.reportcomodel_name='hr.timesheet.report'ondelete='cascade'required=Truestring='Report' -
scopeChar -
sequenceIntegerrequired=True -
total_unit_amountFloatcompute='_compute_total_unit_amount'store=Truestring='Total Quantity'
No public methods.
New fields (12)
-
date_fromDatestring='Start Date' -
date_toDatestring='End Date' -
department_idsMany2many → hr.departmentcomodel_name='hr.department'string='Departments' -
employee_category_idsMany2many → hr.employee.categorycomodel_name='hr.employee.category'string='Employee Tags' -
employee_idsMany2many → hr.employeecomodel_name='hr.employee'string='Employees' -
entry_field_idsOne2many → hr.timesheet.report.wizard.field.detailscomodel_name='hr.timesheet.report.wizard.field.details'default=<expr>inverse_name='wizard_id'string='Details Fields' -
grouping_field_idsOne2many → hr.timesheet.report.wizard.field.groupingcomodel_name='hr.timesheet.report.wizard.field.grouping'default=<expr>inverse_name='wizard_id'string='Grouping Fields' -
has_line_idsBooleancompute='_compute_has_line_ids'string='Has lines (technical)' -
line_idsMany2many → account.analytic.linecomodel_name='account.analytic.line'string='Account Analytics Lines' -
project_idsMany2many → project.projectcomodel_name='project.project'string='Projects' -
task_idsMany2many → project.taskcomodel_name='project.task'string='Tasks' -
time_formatSelectiondefault=<expr>required=Trueselection=<expr>string='Time format'
-
action_export_html(self) -
action_export_pdf(self) -
action_export_xlsx(self) -
create(self, vals_list)@api.model_create_multi
New fields (5)
-
field_nameSelectionrequired=Trueselection='_selection_field_name'string='Field' -
field_titleCharcompute='_compute_field_title'string='Title' -
field_typeCharcompute='_compute_field_type'string='Type' -
sequenceIntegerdefault=10required=True -
wizard_idMany2one → hr.timesheet.report.wizardcomodel_name='hr.timesheet.report.wizard'ondelete='cascade'required=Truestring='Wizard'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (1)-
generate_xlsx_report(self, workbook, data, docs)@api.model
Loading…
Loading…
Loading…
Loading…
- Status
- Open migration PR — not merged yet for this version
- CI status
- checks failing
- Open since
- 93 days ago
- Last activity
- 93 days ago
- Repository
- OCA/timesheet
- Pull request
- [19.0][MIG] hr_timesheet_report: Migration to 19.0 (#919)