From df76cf96cf5a7d1a042bb6a6e10e061bd5eab8f6 Mon Sep 17 00:00:00 2001 From: Mostafa Date: Wed, 3 Dec 2025 12:28:13 -0800 Subject: [PATCH] fix some bugs --- .../models/employees_appraisal.py | 2 +- hr_holidays_community/models/hr.py | 2 + .../views/hr_holidays_views.xml | 1380 +++++++++-------- .../models/hr_loan_salary_advance.py | 2 +- .../views/attendance_device_views.xml | 5 - .../views/device_user_views.xml | 3 +- 6 files changed, 727 insertions(+), 667 deletions(-) diff --git a/exp_hr_appraisal/models/employees_appraisal.py b/exp_hr_appraisal/models/employees_appraisal.py index 955f162..b28114d 100644 --- a/exp_hr_appraisal/models/employees_appraisal.py +++ b/exp_hr_appraisal/models/employees_appraisal.py @@ -265,7 +265,7 @@ class EmployeesAppraisal(models.Model): item.totals_great_level = 0 item.totals_level_achieved = 0 item.totals_level_achieved_percentage = 0 - item.totals_appraisal_result = 0 + item.totals_appraisal_result = False for element in item.appraisal_id: count_elment = 0 appraisal_result_list = [] diff --git a/hr_holidays_community/models/hr.py b/hr_holidays_community/models/hr.py index 90d8c46..91a708c 100644 --- a/hr_holidays_community/models/hr.py +++ b/hr_holidays_community/models/hr.py @@ -162,6 +162,8 @@ class Employee(models.Model): employee.leave_date_to = leave_data.get(employee.id, {}).get('leave_date_to') employee.current_leave_state = leave_data.get(employee.id, {}).get('current_leave_state') employee.current_leave_id = leave_data.get(employee.id, {}).get('current_leave_id') + # Assign is_absent for compatibility with standard hr_holidays module + employee.is_absent = leave_data.get(employee.id) and leave_data.get(employee.id).get('current_leave_state') == 'validate' def _compute_leaves_count(self): leaves = self.env['hr.holidays'].read_group([ diff --git a/hr_holidays_community/views/hr_holidays_views.xml b/hr_holidays_community/views/hr_holidays_views.xml index 9e93cd5..f7b0671 100644 --- a/hr_holidays_community/views/hr_holidays_views.xml +++ b/hr_holidays_community/views/hr_holidays_views.xml @@ -1,98 +1,107 @@ - - - hr.holidays.graph - hr.holidays - - - - - - - - - + + + hr.holidays.graph + hr.holidays + + + + + + + + + - - hr.holidays.filter - hr.holidays - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - - Leave Request - hr.holidays - - - - - - + + Leave Request + hr.holidays + + + + + + - - - Leave Request - hr.holidays - -
+ + + Leave Request + hr.holidays + +
-
-

+

+ +

@@ -102,22 +111,33 @@
-
- days + + days
- - - - - + + + + + - +
@@ -125,190 +145,213 @@ - - - + + + - - hr.holidays.allocation.tree - hr.holidays - - - - - - - - - - - - - - - - - - - + + hr.holidays.allocation.tree + hr.holidays + + + + + + + + + + + + + + + + + + + - - hr.holidays.allocation.tree.customize - hr.holidays - - - - - - - - - - - - - - - + + hr.holidays.allocation.tree.customize + hr.holidays + + + + + + + + + + + + + + + - - hr.holidays.report_tree - hr.holidays - 20 - - - - - - - - - - - - - - - - - + + hr.holidays.report_tree + hr.holidays + 20 + + + + + + + + + + + + + + + + + - - hr.holidays.kanban - hr.holidays - - - - - - - - - -
-
- - - - -
- - - - -
-
- -
-
+ + hr.holidays.kanban + hr.holidays + + + + + + + + + +
+
+ + + + +
+ + + + + + +
+
+ +
+
+
+
+
+
+ + + + + + + + + +
+ from + + +
+ to + + +
-
-
-
- - - - - - - - - -
from
to
-
-
- days -
+
+ + + days +
- - - - - +
+ + + + + - - hr.holidays.report_employee_tree - hr.holidays - 21 - - - - - - - - - - - - - - - + + hr.holidays.report_employee_tree + hr.holidays + 21 + + + + + + + + + + + + + + + - - hr.holidays.tree - hr.holidays - - - - - - - - - - - - - - - - - - - + + hr.holidays.tree + hr.holidays + + + + + + + + + + + + + + + + + + + - - All Leaves - hr.holidays - calendar - {'search_default_year': 1, 'search_default_group_employee': 1} - [('holiday_type','=','employee'), ('type', '=', 'remove'), ('state', '!=', 'refuse')] - - + + All Leaves + hr.holidays + calendar + {'search_default_year': 1, 'search_default_group_employee': 1} + [('holiday_type','=','employee'), ('type', '=', 'remove'), ('state', '!=', 'refuse')] + + + - - - - - - - Leaves Request - hr.holidays - - { - 'default_type': 'remove', - 'search_default_my_leaves': 1, - 'needaction_menu_ref': - [ - 'hr_holidays_community.menu_open_company_allocation', - ] - } - [('type','=','remove')] - - -

+ + Leaves Request + hr.holidays + + { + 'default_type': 'remove', + 'search_default_my_leaves': 1, + 'needaction_menu_ref': + [ + 'hr_holidays_community.menu_open_company_allocation', + ] + } + + [('type','=','remove')] + + +

Click to create a new leave request. -

+

+

Once you have recorded your leave request, it will be sent to a manager for validation. Be sure to set the right leave type (recuperation, legal leaves, sickness) and the exact number of open days related to your leave. -

-
-
+

+ + - - - list - - - + + + list + + + - - - form - - - + + + form + + + - - - calendar - - - + + + calendar + + + - - - Requests to Approve - hr.holidays - { - 'default_type': 'remove', - 'search_default_approve':1, - 'needaction_menu_ref': - [ - 'hr_holidays_community.menu_open_ask_holidays_new', - 'hr_holidays_community.menu_open_company_allocation', - 'hr_holidays_community.menu_open_employee_leave', - ] - } - [('type','=','remove')] - - - + + Requests to Approve + hr.holidays + { + 'default_type': 'remove', + 'search_default_approve':1, + 'needaction_menu_ref': + [ + 'hr_holidays_community.menu_open_ask_holidays_new', + 'hr_holidays_community.menu_open_company_allocation', + 'hr_holidays_community.menu_open_employee_leave', + ] + } + + [('type','=','remove')] + + + - - - list - - - + + + list + + + - - - form - - - + + + form + + + - - Allocation Request - hr.holidays - list,kanban,form - { - 'default_type':'add', - 'search_default_my_leaves': 1, - 'needaction_menu_ref': - [ - 'hr_holidays_community.menu_open_company_allocation', - ] - } - -

- Click here to create a new leave allocation request. -

-
- [('type','=','add')] - - -
+ + Allocation Request + hr.holidays + list,kanban,form + { + 'default_type':'add', + 'search_default_my_leaves': 1, + 'needaction_menu_ref': + [ + 'hr_holidays_community.menu_open_company_allocation', + ] + } + + +

+ Click here to create a new leave allocation request. +

+
+ [('type','=','add')] + + +
- - - list - - - + + + list + + + - - - form - - - + + + form + + + - - - Allocation Request - hr.holidays - { - 'default_type': 'add', - 'search_default_approve':1, - 'needaction_menu_ref': - [ - 'hr_holidays_community.menu_open_allocation_holidays', - 'hr_holidays_community.menu_open_company_allocation' - ] - } - [('type','=','add')] - - - + + Allocation Request + hr.holidays + { + 'default_type': 'add', + 'search_default_approve':1, + 'needaction_menu_ref': + [ + 'hr_holidays_community.menu_open_allocation_holidays', + 'hr_holidays_community.menu_open_company_allocation' + ] + } + + [('type','=','add')] + + + - - - list - - - + + + list + + + - - - form - - - + + + form + + + - - Leaves Summary - hr.holidays - list,kanban,form - - { - 'search_default_group_type': 1, - 'search_default_year': 1 , - 'search_default_my_leaves': 1, - 'needaction_menu_ref': - [ - 'hr_holidays_community.menu_open_ask_holidays_new', - 'hr_holidays_community.menu_open_allocation_holidays', - 'hr_holidays_community.menu_request_approve_allocation', - 'hr_holidays_community.menu_open_employee_leave', - ] - } - -

- Click here to create a new leave request. -

-
- [('holiday_type','=','employee')] - -
+ + Leaves Summary + hr.holidays + list,kanban,form + + { + 'search_default_group_type': 1, + 'search_default_year': 1 , + 'search_default_my_leaves': 1, + 'needaction_menu_ref': + [ + 'hr_holidays_community.menu_open_ask_holidays_new', + 'hr_holidays_community.menu_open_allocation_holidays', + 'hr_holidays_community.menu_request_approve_allocation', + 'hr_holidays_community.menu_open_employee_leave', + ] + } + + +

+ Click here to create a new leave request. +

+
+ [('holiday_type','=','employee')] + +
- - - Leave Details - hr.holidays - list,kanban,form,calendar - - {'default_type': 'remove', 'search_default_todo': 1} - -

- Click here to create a new leave request. -

-
- [('type','=','remove')] - -
+ + Leave Details + hr.holidays + list,kanban,form,calendar + + {'default_type': 'remove', 'search_default_todo': 1} + +

+ Click here to create a new leave request. +

+
+ [('type','=','remove')] + +
- - Department Leaves - hr.holidays - list,form,calendar - {'search_default_department':1, 'search_default_approve':1} - -

- Click here to create a new leave request. -

-
- [('type','=','remove')] - -
+ + Department Leaves + hr.holidays + list,form,calendar + {'search_default_department':1, 'search_default_approve':1} + +

+ Click here to create a new leave request. +

+
+ [('type','=','remove')] + +
- - - Department Leaves Allocation - hr.holidays - list,form,calendar - {'default_type':'add', 'search_default_department':1, 'search_default_approve':1} - -

- Click here to create a new leave allocation. -

-
- [('type','=','add')] - -
+ + Department Leaves Allocation + hr.holidays + list,form,calendar + {'default_type':'add', 'search_default_department':1, 'search_default_approve':1} + +

+ Click here to create a new leave allocation. +

+
+ [('type','=','add')] + +
- - - - - hr.holidays.status.filter - hr.holidays.status - - - - - - - + + + hr.holidays.status.filter + hr.holidays.status + + + + + + + - - hr.holidays.status.form - hr.holidays.status - -
- -
- -
- - - - - - - - - - - + + hr.holidays.status.form + hr.holidays.status + + + +
+ +
+ + + + + -
- -
-
+ + + + + +
+
+ +
+
- - hr.holidays.status.tree - hr.holidays.status - - - - - - - - - + + hr.holidays.status.tree + hr.holidays.status + + + + + + + + + - - hr.holidays.status.kanban - hr.holidays.status - - - - -
-
- -
-
- Max Leaves: - Leaves Taken: -
+ + hr.holidays.status.kanban + hr.holidays.status + + + + +
+
+ + +
- - - - - +
+ Max Leaves: + + + Leaves Taken: + + +
+
+
+
+
+
+
- - hr.holidays.status.normal.tree - hr.holidays.status - 35 - - - - - - - + + hr.holidays.status.normal.tree + hr.holidays.status + 35 + + + + + + + - - hr.holidays.status.search - hr.holidays.status - - - - - - - + + hr.holidays.status.search + hr.holidays.status + + + + + + + - - Leave Types - ir.actions.act_window - hr.holidays.status - list,kanban,form - - - + + Leave Types + ir.actions.act_window + hr.holidays.status + list,kanban,form + + + - - - - Leaves - ir.actions.act_window - hr.holidays - list,form - {'search_default_employee_id': [active_id], 'default_employee_id': active_id, 'search_default_group_type': 1, - 'search_default_year': 1} - [('holiday_type','=','employee'), ('holiday_status_id.limit', '=', False), ('state','!=', 'refuse')] - - + + + Leaves + ir.actions.act_window + hr.holidays + list,form + {'search_default_employee_id': [active_id], 'default_employee_id': active_id, + 'search_default_group_type': 1, + 'search_default_year': 1} + + [('holiday_type','=','employee'), ('holiday_status_id.limit', '=', False), ('state','!=', + 'refuse')] + + + - - Leaves to be reported in Payslip - ir.actions.act_window - hr.holidays - list,form - {'search_default_employee_id': [active_id], 'search_default_validated': True, 'search_default_gray': True} - [('date_from','>=', context_today().strftime("%Y-%m-1")), ('date_from','<', ((context_today() + relativedelta(months=1)).strftime('%Y-%m-1')) )] - - + + Leaves to be reported in Payslip + ir.actions.act_window + hr.holidays + list,form + {'search_default_employee_id': [active_id], 'search_default_validated': True, + 'search_default_gray': True} + + [('date_from','>=', context_today().strftime("%Y-%m-1")), ('date_from','<', + ((context_today() + relativedelta(months=1)).strftime('%Y-%m-1')) )] + + + - - - hr.employee.leave.tree - hr.employee - - - - - - - - + + + hr.employee.leave.tree + hr.employee + + + + + + + + - - Allocate Leaves for Employees - ir.actions.act_window - hr.employee - list,form - - -

- You can assign remaining Legal Leaves for each employee, Odoo - will automatically create and validate allocation requests. -

-
-
+ + Allocate Leaves for Employees + ir.actions.act_window + hr.employee + list,form + + +

+ You can assign remaining Legal Leaves for each employee, Odoo + will automatically create and validate allocation requests. +

+
+
- - Leave Request to Approve - hr.holidays - list,form - { - 'default_type': 'remove', - 'search_default_department_id': [active_id], - 'default_department_id': active_id, - 'search_default_approve':1} - - [('type','=','remove')] - - - + + Leave Request to Approve + hr.holidays + list,form + { + 'default_type': 'remove', + 'search_default_department_id': [active_id], + 'default_department_id': active_id, + 'search_default_approve':1} + + [('type','=','remove')] + + + - - Allocation Requests to Approve - hr.holidays - list,form - { - 'default_type': 'add', - 'search_default_department_id': [active_id], - 'default_department_id': active_id, - 'search_default_approve':1} - - [('type','=','add')] - - + + Allocation Requests to Approve + hr.holidays + list,form + { + 'default_type': 'add', + 'search_default_department_id': [active_id], + 'default_department_id': active_id, + 'search_default_approve':1} + + [('type','=','add')] + + - - Absent Employees - hr.employee - kanban,list,form - { - 'search_default_is_absent_today': 1, - 'search_default_department_id': [active_id], - 'default_department_id': active_id} - - - + + Absent Employees + hr.employee + kanban,list,form + { + 'search_default_is_absent_today': 1, + 'search_default_department_id': [active_id], + 'default_department_id': active_id} + + + - - Leaves Analysis - hr.holidays - graph,pivot - [('holiday_type','=','employee')] - - + + Leaves Analysis + hr.holidays + graph,pivot + [('holiday_type','=','employee')] + + - - Leaves Analysis - hr.holidays - graph,pivot - [('holiday_type','=','employee')] - { - 'search_default_department_id': [active_id], - 'default_department_id': active_id} - - - + + Leaves Analysis + hr.holidays + graph,pivot + [('holiday_type','=','employee')] + { + 'search_default_department_id': [active_id], + 'default_department_id': active_id} + + + diff --git a/hr_loans_salary_advance/models/hr_loan_salary_advance.py b/hr_loans_salary_advance/models/hr_loan_salary_advance.py index f49bfb4..0ab7cda 100644 --- a/hr_loans_salary_advance/models/hr_loan_salary_advance.py +++ b/hr_loans_salary_advance/models/hr_loan_salary_advance.py @@ -9,7 +9,7 @@ from datetime import datetime, date, time class HrSalaryAdvance(models.Model): _name = 'hr.loan.salary.advance' - _rec_name = 'employee_id' + _rec_name = 'code' _description = 'Employee Loan' _inherit = ['mail.thread', 'mail.activity.mixin'] _order = 'date DESC' diff --git a/to_attendance_device/views/attendance_device_views.xml b/to_attendance_device/views/attendance_device_views.xml index 536cd82..e92be9d 100644 --- a/to_attendance_device/views/attendance_device_views.xml +++ b/to_attendance_device/views/attendance_device_views.xml @@ -122,11 +122,6 @@ - - - - - diff --git a/to_attendance_device/views/device_user_views.xml b/to_attendance_device/views/device_user_views.xml index 2587364..f61820a 100644 --- a/to_attendance_device/views/device_user_views.xml +++ b/to_attendance_device/views/device_user_views.xml @@ -54,8 +54,7 @@ - - +