TIP: You can type at any time to perform a new search.
Task Logs Utilization Report
hr_utilization_report · OCA/timesheet
Security findings
Migration considerations
report_block— Template 'report_block' uses `t-raw`, deprecated since Odoo 15.0. Prefer `t-out` for escaped output. For intentional HTML, verify sanitization at its source before marking it safe; Markup alone does not sanitize untrusted content. migration-template-t-raw · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- OCA/timesheet · module folder · Try on Runboat
- Module version
- 1.0.3
- Category
- Human Resources
- Folder size
- 0.3 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/timesheet
- Last tracking update
- 2026-08-07 07:47:43
- Authors
- Odoo Community Association (OCA), CorporateHub
- Maintainers
- Odoo Community Association (OCA), CorporateHub
- Committers
- Alexey Pelykh, sergiocorato, Weblate, OCA-git-bot, oca-ci, Stefano Consolaro, dsolanki
Code Analysis
Views touched (10)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_utilization_report_wizard_form |
hr.utilization.report.wizard.form | hr.utilization.report.wizard | form | New |
report |
report | ir.ui.view | qweb | New |
report_block |
report_block | ir.ui.view | qweb | New |
report_block_empty |
report_block_empty | ir.ui.view | qweb | New |
report_capacity |
report_capacity | ir.ui.view | qweb | New |
report_group |
report_group | ir.ui.view | qweb | New |
report_group_footer |
report_group_footer | ir.ui.view | qweb | New |
report_group_header |
report_group_header | ir.ui.view | qweb | New |
report_header |
report_header | ir.ui.view | qweb | New |
report_utilization |
report_utilization | ir.ui.view | qweb | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (12)
New fields (19)
-
date_fromDaterequired=Truestring='Start Date' -
date_toDaterequired=Truestring='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.utilization.report.field.entrycomodel_name='hr.utilization.report.field.entry'inverse_name='report_id'string='Entry Fields' -
group_idsOne2many → hr.utilization.report.groupcomodel_name='hr.utilization.report.group'compute='_compute_group_ids'inverse_name='report_id'store=Truestring='Groups' -
groupby_field_idsOne2many → hr.utilization.report.field.groupbycomodel_name='hr.utilization.report.field.groupby'inverse_name='report_id'string='Group-By Fields' -
has_multientry_blocksBooleancompute='_compute_has_multientry_blocks'store=Truestring='Has Multi-Entry Blocks' -
only_active_employeesBooleandefault=Truestring='Only Active Employees' -
split_by_field_nameSelectionselection=<expr>string='Split-By Field' -
split_by_field_titleCharcompute='_compute_split_by_field_title'string='Split-By Field Title' -
time_formatSelectionrequired=Trueselection=<expr>string='Time format' -
total_capacityFloatcompute='_compute_total_capacity'store=Truestring='Total Capacity' -
total_unit_amount_aFloatcompute='_compute_total_unit_amount'store=Truestring='Total Quantity (A)' -
total_unit_amount_bFloatcompute='_compute_total_unit_amount'store=Truestring='Total Quantity (B)' -
total_utilization_aFloatcompute='_compute_total_utilization'store=Truestring='Total Utilization (A)' -
total_utilization_bFloatcompute='_compute_total_utilization'store=Truestring='Total Utilization (B)' -
utilization_formatSelectionrequired=Trueselection=<expr>string='Utilization format'
-
get_action(self, report_type='qweb-html')
New fields (10)
-
capacityFloatcompute='_compute_capacity'store=Truestring='Capacity' -
employee_idMany2one → hr.employeecomodel_name='hr.employee'required=Truestring='Employee' -
entry_idsOne2many → hr.utilization.report.entrycomodel_name='hr.utilization.report.entry'compute='_compute_entry_ids'inverse_name='block_id'store=Truestring='Entries' -
group_idMany2one → hr.utilization.report.groupcomodel_name='hr.utilization.report.group'ondelete='cascade'required=Truestring='Group' -
is_multientryBooleancompute='_compute_is_multientry'store=Truestring='Is Multi-Entry' -
sequenceIntegerrequired=Truestring='Sequence' -
total_unit_amount_aFloatcompute='_compute_total_unit_amount'store=Truestring='Total Quantity (A)' -
total_unit_amount_bFloatcompute='_compute_total_unit_amount'store=Truestring='Total Quantity (B)' -
total_utilization_aFloatcompute='_compute_total_utilization'store=Truestring='Total Utilization (A)' -
total_utilization_bFloatcompute='_compute_total_utilization'store=Truestring='Total Utilization (B)'
No public methods.
New fields (8)
-
any_line_idMany2one → account.analytic.linecomodel_name='account.analytic.line'compute='_compute_any_line_id'string='Account Analytics Lines' -
block_idMany2one → hr.utilization.report.blockcomodel_name='hr.utilization.report.block'ondelete='cascade'required=Truestring='Block' -
scopeCharrequired=Truestring='Scope' -
sequenceIntegerrequired=Truestring='Sequence' -
total_unit_amount_aFloatcompute='_compute_total_unit_amount'store=Truestring='Total Quantity (A)' -
total_unit_amount_bFloatcompute='_compute_total_unit_amount'store=Truestring='Total Quantity (B)' -
total_utilization_aFloatcompute='_compute_total_utilization'store=Truestring='Total Utilization (A)' -
total_utilization_bFloatcompute='_compute_total_utilization'store=Truestring='Total Utilization (B)'
-
render_value(self, field_name)
New fields (7)
-
aggregationCharstring='Aggregation' -
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.utilization.reportcomodel_name='hr.utilization.report'ondelete='cascade'required=Truestring='Report' -
sequenceIntegerrequired=Truestring='Sequence'
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 (11)
-
block_idsOne2many → hr.utilization.report.blockcomodel_name='hr.utilization.report.block'compute='_compute_block_ids'inverse_name='group_id'store=Truestring='Blocks' -
has_multientry_blocksBooleancompute='_compute_has_multientry_blocks'store=Truestring='Has Multi-Entry Blocks' -
nameChar -
report_idMany2one → hr.utilization.reportcomodel_name='hr.utilization.report'ondelete='cascade'required=Truestring='Report' -
scopeCharrequired=Truestring='Scope' -
sequenceIntegerrequired=Truestring='Sequence' -
total_capacityFloatcompute='_compute_total_capacity'store=Truestring='Total Capacity' -
total_unit_amount_aFloatcompute='_compute_total_unit_amount'store=Truestring='Total Quantity (A)' -
total_unit_amount_bFloatcompute='_compute_total_unit_amount'store=Truestring='Total Quantity (B)' -
total_utilization_aFloatcompute='_compute_total_utilization'store=Truestring='Total Utilization (A)' -
total_utilization_bFloatcompute='_compute_total_utilization'store=Truestring='Total Utilization (B)'
No public methods.
New fields (11)
-
date_fromDaterequired=Truestring='Start Date' -
date_toDaterequired=Truestring='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.utilization.report.wizard.field.detailscomodel_name='hr.utilization.report.wizard.field.details'default=<expr>inverse_name='wizard_id'string='Details Fields' -
grouping_field_idsOne2many → hr.utilization.report.wizard.field.groupingcomodel_name='hr.utilization.report.wizard.field.grouping'default=<expr>inverse_name='wizard_id'string='Grouping Fields' -
only_active_employeesBooleandefault=Truestring='Only Active Employees' -
split_by_field_nameSelectionselection=<expr>string='Split-By Field' -
time_formatSelectiondefault=<expr>required=Trueselection=<expr>string='Time format' -
utilization_formatSelectiondefault=<expr>required=Trueselection=<expr>string='Utilization format'
-
action_export_html(self) -
action_export_pdf(self) -
action_export_xlsx(self)
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=Truestring='Sequence' -
wizard_idMany2one → hr.utilization.report.wizardcomodel_name='hr.utilization.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…
- Status
- Open migration PR — not merged yet for this version
- CI status
- checks failing
- Open since
- 581 days ago
- Last activity
- 85 days ago
- Repository
- OCA/timesheet
- Pull request
- [15.0][MIG] hr_utilization_report: Migration to 15.0 (#745)
- Status
- Open migration PR — not merged yet for this version
- CI status
- checks failing
- Open since
- 581 days ago
- Last activity
- 78 days ago
- Repository
- OCA/timesheet
- Pull request
- [16.0][MIG] hr_utilization_report: Migration to 16.0 (#746)
- Status
- Open migration PR — not merged yet for this version
- CI status
- checks failing
- Open since
- 580 days ago
- Last activity
- 85 days ago
- Repository
- OCA/timesheet
- Pull request
- [17.0][MIG] hr_utilization_report: Migration to 17.0 (#747)
- Status
- Open migration PR — not merged yet for this version
- CI status
- checks failing
- Open since
- 579 days ago
- Last activity
- 85 days ago
- Repository
- OCA/timesheet
- Pull request
- [18.0][MIG] hr_utilization_report: Migration to 18.0 (#748)