TIP: You can type at any time to perform a new search.

Security findings

Repository
odoo/odoo · module folder
Module version
0.1.0
Category
Human Resources/Employees
Folder size
8.82 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
None
Last tracking update
2026-10-05 00:19:49
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier Morel, Raphael Collet, Odoo Translation Bot, Géry Debongnie, Yannick Tivisse, Pierre Masereel, Xavier-Do, Victor Feyens, Julien Mougenot, Tiffany Chang (tic), Mathieu Duckerts-Antoine, william-andre, Victor Piryns (pivi), amdi-odoo, Dylan Kiss (dyki), Chong Wang (cwg), Xavier Bol (xbo), Nicolas Viseur (vin), ravb-odoo, Gabriel (gdpf), Tanguy Quéguineur, rmun-odoo, Mathieu Coutant, Yassin Abdelkarim, Khumam Alzagim, rame-odoo, Abdelrahman Mahmoud (amah), Mohammed Basioni, nikj-odoo, Michaël Mattiello, Krzysztof Magusiak (krma), pajo, KAEI, kareem, Bertrand Dossogne, romc-odoo, Julien Launois (jula), dhka-odoo, Einar Andersen (eian), oumaima-aarabe, Hashem Elmaleeh, Ziri, renol-odoo, jand-odoo, lebm-odoo, Dilya Anvarbekova, Jurgen Gjini, Mahmoudk3m, erle, Martin Lefèvre (mlef), Madhav Pancholi, karygauss03, tshe-odoo, chpa-odoo, Faruk Avcı, Amr Yasser (amry), SaraBriki, 3amo-magdy, adak(ahmed), amga-odoo, niyp-odoo, abshe, Tatiana Skvortsova (taskv), Mohammed Farouk, FedericoBraidi, Priyanshu Goyal (prgo), Sara Briki, Ahmed Naem (Ahnae), Mohamed (moaln), Mohamed-moali, satp-odoo, ivgm-odoo, mohammed84farouk, Dhananjay Brahmane, yogietama, aski97, amgom-odoo, Ramez Ibrahim, Benoît Lambert (belam), Aaryan (aarp)
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
hr_attendance, hr_holidays
Description

Code Analysis info_outline

Views touched (17)
XML IDNameModelTypeStatus
hr_employee_view_form hr.employee.view.form.inherit.hr.work.entry hr.employee form Inherits hr.view_employee_form
hr_export_work_entries_wizard hr.export.work.entries.wizard hr.export.work.entries form New
hr_time_rule_view_form hr.time.rule.form hr.time.rule form New
hr_time_rule_view_list hr.time.rule.list hr.time.rule list New
hr_time_rule_view_search hr.time.rule.search hr.time.rule search New
hr_work_entry_type_view_form hr.work.entry.type.form hr.work.entry.type form New
hr_work_entry_type_view_kanban hr.work.entry.type.kanban.view hr.work.entry.type kanban New
hr_work_entry_type_view_search hr.work.entry.type.view.search hr.work.entry.type search New
hr_work_entry_type_view_tree hr.work.entry.type.list hr.work.entry.type list New
res_company_view_form_inherit_hr_work_entry res.company.view.form.inherit.hr.work.entry res.company form Inherits base.view_company_form
resource_calendar_attendance_view_form resource.calendar.attendance.form.inherit.hr.work.entry resource.calendar.attendance form Inherits resource.view_resource_calendar_attendance_form
resource_calendar_attendance_view_tree resource.calendar.attendance.list.inherit.hr.work.entry resource.calendar.attendance list Inherits resource.view_resource_calendar_attendance_tree
resource_calendar_leave_view_form resource.calendar.leaves.form.inherit.hr.work.entry resource.calendar.leaves form Inherits resource.resource_calendar_leave_form
resource_calendar_leave_view_tree resource.calendar.leaves.list.inherit.hr.work.entry resource.calendar.leaves list Inherits resource.resource_calendar_leave_tree
resource_calendar_leaves_view_search_inherit resource.calendar.leaves.search.inherit resource.calendar.leaves search Inherits resource.view_resource_calendar_leaves_search
view_resource_calendar_attendance_calendar resource.calendar.attendance.calendar.inherit.hr.work.entry resource.calendar.attendance calendar Inherits resource.view_resource_calendar_attendance_calendar
view_resource_calendar_multi_create_form resource.calendar.multi.create.form.inherit.hr.work.entry resource.calendar.attendance form Inherits resource.view_resource_calendar_multi_create_form
HTTP endpoints (1)
Route(s)HandlerAuthTypeMethodsFlags
/hr_work_entry/download/<int:company_id>/<int:work_entry_export_id> HrWorkEntry.download_document user http ALL
Models touched (13)

New fields (1)
  • external_code Char
    copy=False groups='hr.group_hr_user' help='Use this code to export your data to a third party' args: 'External Code'
Public methods (1)
  • generate_work_entries(self, date_start, date_stop)

New fields (6)
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company'
  • eligible_employee_line_ids One2many → hr.export.work.entries.employee
    string='Eligible Employees' args: 'hr.export.work.entries.employee', 'export_id'
  • period_start Date
    compute='_compute_period_dates' readonly=False store=True args: 'Period Start'
  • period_stop Date
    compute='_compute_period_dates' readonly=False store=True args: 'Period Stop'
  • reference_month Selection
    default=<expr> required=True string='Month' args: [('1', 'January'), ('2', 'February'), ('3', 'March'), ('4', 'April'), ('5', 'May'), ('6', 'June'), ('7', 'July'), ('8', 'August'), ('9', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December')]
  • reference_year Integer
    default=<expr> required=True string='Year'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • download_export(self)

New fields (3)
  • employee_id Many2one → hr.employee
    check_company=True ondelete='cascade' required=True args: 'hr.employee'
  • export_id Many2one → hr.export.work.entries
    index=True ondelete='cascade' required=True args: 'hr.export.work.entries'
  • version_ids Many2many → hr.version
    compute='_compute_version_ids' ondelete='cascade' readonly=False required=True store=True args: 'hr.version'
Public methods (0)

No public methods.

New fields (32)
  • active Boolean
    default=True
  • amount_rate Float
    compute='_compute_amount_rate' readonly=False store=True args: 'Salary Rate'
  • apply_friday Boolean
    default=True
  • apply_monday Boolean
    default=True help='Define a condition based on the timing of the time entry.'
  • apply_on_public_holidays Boolean
    default=True
  • apply_saturday Boolean
    default=True
  • apply_sunday Boolean
    default=True
  • apply_thursday Boolean
    default=True
  • apply_tuesday Boolean
    default=True
  • apply_wednesday Boolean
    default=True
  • calendar_source Selection
    compute='_compute_calendar_source' help='Which schedule to use as the expected-hours baseline.' readonly=False store=True string='Calendar Source' args: [('employee', 'Employee Schedule'), ('reference', 'Reference Schedule')]
  • company_id Many2one → res.company
    args: 'res.company'
  • condition_label Char
    compute='_compute_condition_label' string='Condition'
  • condition_work_entry_type_ids Many2many → hr.work.entry.type
    domain="[('id', 'in', country_work_entry_type_ids)]" help='If set, only the selected types will be considered by this rule.' required=True string='Time Type' args: 'hr.work.entry.type', 'hr_time_rule_condition_work_entry_type_rel'
  • country_code Char
    related='country_id.code'
  • country_id Many2one → res.country
    compute='_compute_country_id' index='btree_not_null' readonly=False store=True args: 'res.country'
  • country_work_entry_type_ids Many2many → hr.work.entry.type
    compute='_compute_country_work_entry_type_ids' args: 'hr.work.entry.type', 'hr_time_rule_allowed_work_entry_type_rel'
  • description Text
  • employee_domain Char
    default='[]' help='The rule will automatically apply to all time entries for matching employees.' string='Employees'
  • employee_tolerance Float
  • employer_tolerance Float
  • expected_hours Float
    compute='_compute_expected_hours' readonly=False store=True string='Usual work hours'
  • name Char
    required=True
  • quantity_period Selection
    compute='_compute_quantity_period' store=True args: [('day', 'Day'), ('week', 'Week')]
  • resource_calendar_id Many2one → resource.calendar
    string='Schedule' args: 'resource.calendar'
  • sequence Integer
    default=10
  • threshold_operator Selection
    default='exceed' required=True args: [('exceed', 'Exceed'), ('less_than', 'Less than')]
  • timing_start Float
    default=0 args: 'From'
  • timing_stop Float
    default=24 args: 'To'
  • week_start Selection
    default='0' string='Week Starts On' args: [('0', 'Monday'), ('1', 'Tuesday'), ('2', 'Wednesday'), ('3', 'Thursday'), ('4', 'Friday'), ('5', 'Saturday'), ('6', 'Sunday')]
  • work_entry_type_id Many2one → hr.work.entry.type
    domain="[('id', 'in', country_work_entry_type_ids)]" help='Define a time type that will be created to count the amount of time in excess or missing.' index='btree_not_null' string='Set Excess to' args: 'hr.work.entry.type'
  • working_hours_mode Selection
    default='schedule_day' help='Define a condition based on the quantity of work made by the employee on a specific period of time.' required=True string='Working Hours Mode' args: [('schedule_day', 'the daily schedule'), ('schedule_week', 'the weekly schedule'), ('day', 'per day'), ('week', 'per week')]
Public methods (1)
  • copy_data(self, default=None)

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (4)
  • active Boolean
    default=True args: 'Active'
  • employee_id Many2one → hr.employee
    required=True args: 'hr.employee', 'Employee'
  • is_checked Boolean
    default=True
  • user_id Many2one → res.users
    default=<expr> ondelete='cascade' required=True args: 'res.users', 'Me'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • generate_work_entries(self, date_start, date_stop)
  • has_static_work_entries(self)

New fields (14)
  • active Boolean
    default=True help='If the active field is set to false, it will allow you to hide the time type without removing it.' tracking=True args: 'Active'
  • amount_rate Float
    default=1.0 help='The percentage of wages paid. For standard paid leave set to 100%, for unpaid leave to 0%, or for double-pay to 200%.' string='Rate' tracking=True
  • code Char
    help='The code is used as a reference in salary rules. Careful, changing an existing code can lead to unwanted behaviors.' required=True string='Payroll Code' tracking=True
  • color Integer
    default=0
  • count_as Selection
    default='working_time' help='Determines if the entry counts as working time or absence.' required=True tracking=True args: [('working_time', 'Working Time'), ('absence', 'Absence')]
  • country_code Char
    related='country_id.code'
  • country_id Many2one → res.country
    domain=<expr> string='Country' tracking=True args: 'res.country'
  • description Text
    tracking=True translate=True
  • display_code Char
    help='This code can be changed, it is only for a display purpose (3 letters max)' size=3 string='Display Code' tracking=True translate=True
  • external_code Char
    help='Use this code to export your data to a third party' tracking=True
  • name Char
    required=True tracking=True translate=True
  • resource_calendar_attendance_ids One2many → resource.calendar.attendance
    copy=False readonly=True args: 'resource.calendar.attendance', 'work_entry_type_id'
  • resource_calendar_selectable Boolean
    compute='_compute_resource_calendar_selectable' readonly=False store=True string='Selectable in Working Schedule' tracking=True
  • sequence Integer
    default=25
Public methods (1)
  • copy_data(self, default=None)

New fields (2)
  • allowed_work_entry_type_ids Many2many → hr.work.entry.type
    compute='_compute_allowed_work_entry_type_ids' args: 'hr.work.entry.type'
  • external_code Char
    copy=False groups='hr.group_hr_user' help='Use this code to export your data to a third party' args: 'External Code'
Public methods (0)

No public methods.

New fields (1)
  • external_code Char
    readonly=False related='company_id.external_code' string='External Code'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (4)
  • allowed_work_entry_type_ids Many2many → hr.work.entry.type
    compute='_compute_allowed_work_entry_type_ids' args: 'hr.work.entry.type'
  • color Integer
    related='work_entry_type_id.color'
  • display_code Char
    related='work_entry_type_id.display_code'
  • work_entry_type_id Many2one → hr.work.entry.type
    domain="[('id', 'in', allowed_work_entry_type_ids)]" groups='hr.group_hr_user' index='btree_not_null' args: 'hr.work.entry.type', 'Time Type'
Public methods (0)

No public methods.

New fields (2)
  • allowed_work_entry_type_ids Many2many → hr.work.entry.type
    compute='_compute_allowed_work_entry_type_ids' args: 'hr.work.entry.type'
  • work_entry_type_id Many2one → hr.work.entry.type
    compute='_compute_work_entry_type_id' domain="[('id', 'in', allowed_work_entry_type_ids)]" groups='hr.group_hr_user' readonly=False store=True args: 'hr.work.entry.type', 'Time Type'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…