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
Odoo dependencies
OCA/reporting-engine:
odoo/odoo:
- hr
- web
- bus
- uom
Python dependencies
None
System dependencies
None
Required by
None
Description

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
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_from Date
    required=True string='Start Date'
  • date_to Date
    required=True string='End Date'
  • department_ids Many2many → hr.department
    comodel_name='hr.department' string='Departments'
  • employee_category_ids Many2many → hr.employee.category
    comodel_name='hr.employee.category' string='Employee Tags'
  • employee_ids Many2many → hr.employee
    comodel_name='hr.employee' string='Employees'
  • entry_field_ids One2many → hr.utilization.report.field.entry
    comodel_name='hr.utilization.report.field.entry' inverse_name='report_id' string='Entry Fields'
  • group_ids One2many → hr.utilization.report.group
    comodel_name='hr.utilization.report.group' compute='_compute_group_ids' inverse_name='report_id' store=True string='Groups'
  • groupby_field_ids One2many → hr.utilization.report.field.groupby
    comodel_name='hr.utilization.report.field.groupby' inverse_name='report_id' string='Group-By Fields'
  • has_multientry_blocks Boolean
    compute='_compute_has_multientry_blocks' store=True string='Has Multi-Entry Blocks'
  • only_active_employees Boolean
    default=True string='Only Active Employees'
  • split_by_field_name Selection
    selection=<expr> string='Split-By Field'
  • split_by_field_title Char
    compute='_compute_split_by_field_title' string='Split-By Field Title'
  • time_format Selection
    required=True selection=<expr> string='Time format'
  • total_capacity Float
    compute='_compute_total_capacity' store=True string='Total Capacity'
  • total_unit_amount_a Float
    compute='_compute_total_unit_amount' store=True string='Total Quantity (A)'
  • total_unit_amount_b Float
    compute='_compute_total_unit_amount' store=True string='Total Quantity (B)'
  • total_utilization_a Float
    compute='_compute_total_utilization' store=True string='Total Utilization (A)'
  • total_utilization_b Float
    compute='_compute_total_utilization' store=True string='Total Utilization (B)'
  • utilization_format Selection
    required=True selection=<expr> string='Utilization format'
Public methods (1)
  • get_action(self, report_type='qweb-html')

New fields (10)
  • capacity Float
    compute='_compute_capacity' store=True string='Capacity'
  • employee_id Many2one → hr.employee
    comodel_name='hr.employee' required=True string='Employee'
  • entry_ids One2many → hr.utilization.report.entry
    comodel_name='hr.utilization.report.entry' compute='_compute_entry_ids' inverse_name='block_id' store=True string='Entries'
  • group_id Many2one → hr.utilization.report.group
    comodel_name='hr.utilization.report.group' ondelete='cascade' required=True string='Group'
  • is_multientry Boolean
    compute='_compute_is_multientry' store=True string='Is Multi-Entry'
  • sequence Integer
    required=True string='Sequence'
  • total_unit_amount_a Float
    compute='_compute_total_unit_amount' store=True string='Total Quantity (A)'
  • total_unit_amount_b Float
    compute='_compute_total_unit_amount' store=True string='Total Quantity (B)'
  • total_utilization_a Float
    compute='_compute_total_utilization' store=True string='Total Utilization (A)'
  • total_utilization_b Float
    compute='_compute_total_utilization' store=True string='Total Utilization (B)'
Public methods (0)

No public methods.

New fields (8)
  • any_line_id Many2one → account.analytic.line
    comodel_name='account.analytic.line' compute='_compute_any_line_id' string='Account Analytics Lines'
  • block_id Many2one → hr.utilization.report.block
    comodel_name='hr.utilization.report.block' ondelete='cascade' required=True string='Block'
  • scope Char
    required=True string='Scope'
  • sequence Integer
    required=True string='Sequence'
  • total_unit_amount_a Float
    compute='_compute_total_unit_amount' store=True string='Total Quantity (A)'
  • total_unit_amount_b Float
    compute='_compute_total_unit_amount' store=True string='Total Quantity (B)'
  • total_utilization_a Float
    compute='_compute_total_utilization' store=True string='Total Utilization (A)'
  • total_utilization_b Float
    compute='_compute_total_utilization' store=True string='Total Utilization (B)'
Public methods (1)
  • render_value(self, field_name)

New fields (7)
  • aggregation Char
    string='Aggregation'
  • field_name Char
    required=True string='Field name'
  • field_title Char
    required=True string='Field title'
  • field_type Char
    required=True string='Field type'
  • groupby Char
    compute='_compute_groupby' string='Group-by expression'
  • report_id Many2one → hr.utilization.report
    comodel_name='hr.utilization.report' ondelete='cascade' required=True string='Report'
  • sequence Integer
    required=True string='Sequence'
Public methods (0)

No public methods.

New fields (1)
  • cell_classes Char
    compute='_compute_cell_classes' string='Cell classes'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (11)
  • block_ids One2many → hr.utilization.report.block
    comodel_name='hr.utilization.report.block' compute='_compute_block_ids' inverse_name='group_id' store=True string='Blocks'
  • has_multientry_blocks Boolean
    compute='_compute_has_multientry_blocks' store=True string='Has Multi-Entry Blocks'
  • name Char
  • report_id Many2one → hr.utilization.report
    comodel_name='hr.utilization.report' ondelete='cascade' required=True string='Report'
  • scope Char
    required=True string='Scope'
  • sequence Integer
    required=True string='Sequence'
  • total_capacity Float
    compute='_compute_total_capacity' store=True string='Total Capacity'
  • total_unit_amount_a Float
    compute='_compute_total_unit_amount' store=True string='Total Quantity (A)'
  • total_unit_amount_b Float
    compute='_compute_total_unit_amount' store=True string='Total Quantity (B)'
  • total_utilization_a Float
    compute='_compute_total_utilization' store=True string='Total Utilization (A)'
  • total_utilization_b Float
    compute='_compute_total_utilization' store=True string='Total Utilization (B)'
Public methods (0)

No public methods.

New fields (11)
  • date_from Date
    required=True string='Start Date'
  • date_to Date
    required=True string='End Date'
  • department_ids Many2many → hr.department
    comodel_name='hr.department' string='Departments'
  • employee_category_ids Many2many → hr.employee.category
    comodel_name='hr.employee.category' string='Employee Tags'
  • employee_ids Many2many → hr.employee
    comodel_name='hr.employee' string='Employees'
  • entry_field_ids One2many → hr.utilization.report.wizard.field.details
    comodel_name='hr.utilization.report.wizard.field.details' default=<expr> inverse_name='wizard_id' string='Details Fields'
  • grouping_field_ids One2many → hr.utilization.report.wizard.field.grouping
    comodel_name='hr.utilization.report.wizard.field.grouping' default=<expr> inverse_name='wizard_id' string='Grouping Fields'
  • only_active_employees Boolean
    default=True string='Only Active Employees'
  • split_by_field_name Selection
    selection=<expr> string='Split-By Field'
  • time_format Selection
    default=<expr> required=True selection=<expr> string='Time format'
  • utilization_format Selection
    default=<expr> required=True selection=<expr> string='Utilization format'
Public methods (3)
  • action_export_html(self)
  • action_export_pdf(self)
  • action_export_xlsx(self)

New fields (5)
  • field_name Selection
    required=True selection='_selection_field_name' string='Field'
  • field_title Char
    compute='_compute_field_title' string='Title'
  • field_type Char
    compute='_compute_field_type' string='Type'
  • sequence Integer
    default=10 required=True string='Sequence'
  • wizard_id Many2one → hr.utilization.report.wizard
    comodel_name='hr.utilization.report.wizard' ondelete='cascade' required=True string='Wizard'
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 (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
536 days ago
Last activity
40 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
536 days ago
Last activity
33 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
535 days ago
Last activity
40 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
534 days ago
Last activity
40 days ago
Repository
OCA/timesheet
Pull request
[18.0][MIG] hr_utilization_report: Migration to 18.0 (#748)