TIP: You can type at any time to perform a new search.
Work Entries
hr_work_entry · odoo/odoo
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)
Code Analysis
Views touched (17)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/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_codeCharcopy=Falsegroups='hr.group_hr_user'help='Use this code to export your data to a third party' args: 'External Code'
-
generate_work_entries(self, date_start, date_stop)
New fields (6)
-
company_idMany2one → res.companydefault=<expr>required=True args: 'res.company' -
eligible_employee_line_idsOne2many → hr.export.work.entries.employeestring='Eligible Employees' args: 'hr.export.work.entries.employee', 'export_id' -
period_startDatecompute='_compute_period_dates'readonly=Falsestore=True args: 'Period Start' -
period_stopDatecompute='_compute_period_dates'readonly=Falsestore=True args: 'Period Stop' -
reference_monthSelectiondefault=<expr>required=Truestring='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_yearIntegerdefault=<expr>required=Truestring='Year'
-
default_get(self, fields)@api.model -
download_export(self)
New fields (3)
-
employee_idMany2one → hr.employeecheck_company=Trueondelete='cascade'required=True args: 'hr.employee' -
export_idMany2one → hr.export.work.entriesindex=Trueondelete='cascade'required=True args: 'hr.export.work.entries' -
version_idsMany2many → hr.versioncompute='_compute_version_ids'ondelete='cascade'readonly=Falserequired=Truestore=True args: 'hr.version'
No public methods.
New fields (32)
-
activeBooleandefault=True -
amount_rateFloatcompute='_compute_amount_rate'readonly=Falsestore=True args: 'Salary Rate' -
apply_fridayBooleandefault=True -
apply_mondayBooleandefault=Truehelp='Define a condition based on the timing of the time entry.' -
apply_on_public_holidaysBooleandefault=True -
apply_saturdayBooleandefault=True -
apply_sundayBooleandefault=True -
apply_thursdayBooleandefault=True -
apply_tuesdayBooleandefault=True -
apply_wednesdayBooleandefault=True -
calendar_sourceSelectioncompute='_compute_calendar_source'help='Which schedule to use as the expected-hours baseline.'readonly=Falsestore=Truestring='Calendar Source' args: [('employee', 'Employee Schedule'), ('reference', 'Reference Schedule')] -
company_idMany2one → res.companyargs: 'res.company' -
condition_labelCharcompute='_compute_condition_label'string='Condition' -
condition_work_entry_type_idsMany2many → hr.work.entry.typedomain="[('id', 'in', country_work_entry_type_ids)]"help='If set, only the selected types will be considered by this rule.'required=Truestring='Time Type' args: 'hr.work.entry.type', 'hr_time_rule_condition_work_entry_type_rel' -
country_codeCharrelated='country_id.code' -
country_idMany2one → res.countrycompute='_compute_country_id'index='btree_not_null'readonly=Falsestore=True args: 'res.country' -
country_work_entry_type_idsMany2many → hr.work.entry.typecompute='_compute_country_work_entry_type_ids' args: 'hr.work.entry.type', 'hr_time_rule_allowed_work_entry_type_rel' -
descriptionText -
employee_domainChardefault='[]'help='The rule will automatically apply to all time entries for matching employees.'string='Employees' -
employee_toleranceFloat -
employer_toleranceFloat -
expected_hoursFloatcompute='_compute_expected_hours'readonly=Falsestore=Truestring='Usual work hours' -
nameCharrequired=True -
quantity_periodSelectioncompute='_compute_quantity_period'store=True args: [('day', 'Day'), ('week', 'Week')] -
resource_calendar_idMany2one → resource.calendarstring='Schedule' args: 'resource.calendar' -
sequenceIntegerdefault=10 -
threshold_operatorSelectiondefault='exceed'required=True args: [('exceed', 'Exceed'), ('less_than', 'Less than')] -
timing_startFloatdefault=0 args: 'From' -
timing_stopFloatdefault=24 args: 'To' -
week_startSelectiondefault='0'string='Week Starts On' args: [('0', 'Monday'), ('1', 'Tuesday'), ('2', 'Wednesday'), ('3', 'Thursday'), ('4', 'Friday'), ('5', 'Saturday'), ('6', 'Sunday')] -
work_entry_type_idMany2one → hr.work.entry.typedomain="[('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_modeSelectiondefault='schedule_day'help='Define a condition based on the quantity of work made by the employee on a specific period of time.'required=Truestring='Working Hours Mode' args: [('schedule_day', 'the daily schedule'), ('schedule_week', 'the weekly schedule'), ('day', 'per day'), ('week', 'per week')]
-
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)
-
activeBooleandefault=True args: 'Active' -
employee_idMany2one → hr.employeerequired=True args: 'hr.employee', 'Employee' -
is_checkedBooleandefault=True -
user_idMany2one → res.usersdefault=<expr>ondelete='cascade'required=True args: 'res.users', 'Me'
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)
-
activeBooleandefault=Truehelp='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_rateFloatdefault=1.0help='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 -
codeCharhelp='The code is used as a reference in salary rules. Careful, changing an existing code can lead to unwanted behaviors.'required=Truestring='Payroll Code'tracking=True -
colorIntegerdefault=0 -
count_asSelectiondefault='working_time'help='Determines if the entry counts as working time or absence.'required=Truetracking=True args: [('working_time', 'Working Time'), ('absence', 'Absence')] -
country_codeCharrelated='country_id.code' -
country_idMany2one → res.countrydomain=<expr>string='Country'tracking=True args: 'res.country' -
descriptionTexttracking=Truetranslate=True -
display_codeCharhelp='This code can be changed, it is only for a display purpose (3 letters max)'size=3string='Display Code'tracking=Truetranslate=True -
external_codeCharhelp='Use this code to export your data to a third party'tracking=True -
nameCharrequired=Truetracking=Truetranslate=True -
resource_calendar_attendance_idsOne2many → resource.calendar.attendancecopy=Falsereadonly=True args: 'resource.calendar.attendance', 'work_entry_type_id' -
resource_calendar_selectableBooleancompute='_compute_resource_calendar_selectable'readonly=Falsestore=Truestring='Selectable in Working Schedule'tracking=True -
sequenceIntegerdefault=25
-
copy_data(self, default=None)
New fields (2)
-
allowed_work_entry_type_idsMany2many → hr.work.entry.typecompute='_compute_allowed_work_entry_type_ids' args: 'hr.work.entry.type' -
external_codeCharcopy=Falsegroups='hr.group_hr_user'help='Use this code to export your data to a third party' args: 'External Code'
No public methods.
New fields (1)
-
external_codeCharreadonly=Falserelated='company_id.external_code'string='External Code'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (4)
-
allowed_work_entry_type_idsMany2many → hr.work.entry.typecompute='_compute_allowed_work_entry_type_ids' args: 'hr.work.entry.type' -
colorIntegerrelated='work_entry_type_id.color' -
display_codeCharrelated='work_entry_type_id.display_code' -
work_entry_type_idMany2one → hr.work.entry.typedomain="[('id', 'in', allowed_work_entry_type_ids)]"groups='hr.group_hr_user'index='btree_not_null' args: 'hr.work.entry.type', 'Time Type'
No public methods.
New fields (2)
-
allowed_work_entry_type_idsMany2many → hr.work.entry.typecompute='_compute_allowed_work_entry_type_ids' args: 'hr.work.entry.type' -
work_entry_type_idMany2one → hr.work.entry.typecompute='_compute_work_entry_type_id'domain="[('id', 'in', allowed_work_entry_type_ids)]"groups='hr.group_hr_user'readonly=Falsestore=True args: 'hr.work.entry.type', 'Time Type'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…