From fc17283f9027fb427bba4126e9d48c042dfc2b23 Mon Sep 17 00:00:00 2001 From: Abdurrahman Saber Date: Fri, 7 Nov 2025 13:52:23 +0200 Subject: [PATCH] [IMP][FIX] attendances, hr_base, *: adjust access rights for accounting manager --- .../attendances/security/ir.model.access.csv | 5 ++++- .../security/ir.model.access.csv | 1 + .../models/hr_official_mission.py | 13 +++++++----- .../security/ir.model.access.csv | 3 ++- .../security/official_mission_security.xml | 9 ++++++++- .../views/hr_official_mission.xml | 2 +- .../exp_ticket_request/models/hr_ticketing.py | 2 ++ .../security/exp_ticket_request_security.xml | 7 +++++++ .../views/hr_ticketing_view.xml | 20 +++++++++++++++---- .../hr_base/security/ir.model.access.csv | 3 +++ .../security/ir.model.access.csv | 1 + .../models/exit_and_return.py | 8 +++++++- .../models/request_visa.py | 12 ++++++++--- .../hr_government_relations_security.xml | 14 +++++++++++++ .../views/exit_and_return.xml | 8 ++++---- .../views/request_visa.xml | 4 ++-- .../hr_government_exit_return_custom.py | 11 +++++----- .../security/ir.model.access.csv | 2 ++ 18 files changed, 97 insertions(+), 28 deletions(-) diff --git a/odex25_hr/attendances/security/ir.model.access.csv b/odex25_hr/attendances/security/ir.model.access.csv index b4dbbef0e..edf887e34 100644 --- a/odex25_hr/attendances/security/ir.model.access.csv +++ b/odex25_hr/attendances/security/ir.model.access.csv @@ -20,4 +20,7 @@ access_hr_attendance_wizard_hr,hr_attendance_wizard_hr,model_hr_attendance_wizar access_employee_attendance_report_hr,employee_attendance_report_hr,model_employee_attendance_report,hr.group_hr_user,1,1,1,0 access_attendance_attendance_admin,attendance_attendance_admin,model_attendance_attendance,base.group_system,1,1,1,1 access_hr_attendance_transaction_admin,hr.attendance.transaction.admin,model_hr_attendance_transaction,base.group_system,1,1,1,1 -access_attendance_special_days_accounting_manager,attendance.special.days.accounting.manager,model_attendance_special_days,hr_base.group_account_manager,1,1,1,1 +access_attendance_special_days_accounting_manager,attendance.special.days.accounting.manager,model_attendance_special_days,hr_base.group_account_manager,1,1,0,0 +access_hr_attendance_transaction_accounting_manager,hr.attendance.transaction.accounting.manager,model_hr_attendance_transaction,hr_base.group_account_manager,1,1,0,0 +access_attendance_attendance_accounting_manager,attendance_attendance_accounting.manager,model_attendance_attendance,hr_base.group_account_manager,1,1,0,0 +access_days_off_accounting_manager,days_off.accounting.manager,model_days_off,hr_base.group_account_manager,1,1,0,0 \ No newline at end of file diff --git a/odex25_hr/employee_requests/security/ir.model.access.csv b/odex25_hr/employee_requests/security/ir.model.access.csv index 31dab8c9d..332f94966 100644 --- a/odex25_hr/employee_requests/security/ir.model.access.csv +++ b/odex25_hr/employee_requests/security/ir.model.access.csv @@ -21,3 +21,4 @@ access_salary_destination_hr,salary_destination_hr,model_salary_destination,hr.g access_salary_destination_emp,salary_destination_emp,model_salary_destination,base.group_user,1,0,0,0 access_hr_classification,hr_classification,model_hr_classification,base.group_user,1,1,1,1 +access_hr_personal_permission_accounting_manager,hr.personal.permission.accounting.manager,model_hr_personal_permission,hr_base.group_account_manager,1,1,0,0 diff --git a/odex25_hr/exp_official_mission/models/hr_official_mission.py b/odex25_hr/exp_official_mission/models/hr_official_mission.py index bd9ffd281..0726da3ad 100644 --- a/odex25_hr/exp_official_mission/models/hr_official_mission.py +++ b/odex25_hr/exp_official_mission/models/hr_official_mission.py @@ -569,11 +569,8 @@ class HrOfficialMission(models.Model): self.employee_ids.write({'status': 'approved'}) self.state = 'depart_manager' if self.mission_type.approve_by == 'direct_manager': - self.approve() - - def accounting_manager_refused(self): - for rec in self: - rec.refused() + return self.approve() + return self._reset_to_action() # Refuse For The Direct Manager Only def direct_manager_refused(self): @@ -767,6 +764,12 @@ class HrOfficialMission(models.Model): def refused(self): self.state = 'refused' self.reset_emp_work_state() + + def _reset_to_action(self): + if self.env.context.get('default_process_type') == 'mission': + return self.env.ref('exp_official_mission.employee_official_mission_action').sudo().read()[0] + else: + return self.env.ref('exp_official_mission.employee_training_action').sudo().read()[0] def reset_emp_work_state(self): if self.mission_type.work_state and self.mission_type.duration_type == 'days': diff --git a/odex25_hr/exp_official_mission/security/ir.model.access.csv b/odex25_hr/exp_official_mission/security/ir.model.access.csv index 1d7d5ed16..3310bce9e 100644 --- a/odex25_hr/exp_official_mission/security/ir.model.access.csv +++ b/odex25_hr/exp_official_mission/security/ir.model.access.csv @@ -16,4 +16,5 @@ access_hr_mission_type_account_hr_user,access_hr_mission_type_account,model_hr_m access_hr_mission_type_account_emp,access_hr_mission_type_account,model_hr_mission_type_account,base.group_user,1,0,0,0 access_mission_table,access_mission_table,model_mission_table,base.group_user,1,1,1,1 -access_hr_employee_accounting_manager,hr.employee.accounting.manager,hr.model_hr_employee,hr_base.group_account_manager,1,1,0,0 \ No newline at end of file +access_hr_employee_accounting_manager,hr.employee.accounting.manager,hr.model_hr_employee,hr_base.group_account_manager,1,1,0,0 +access_hr_official_mission_accounting_manager,hr.official.mission.accounting.manager,model_hr_official_mission,hr_base.group_account_manager,1,1,0,0 \ No newline at end of file diff --git a/odex25_hr/exp_official_mission/security/official_mission_security.xml b/odex25_hr/exp_official_mission/security/official_mission_security.xml index 8f0eb3c18..1f07d523e 100644 --- a/odex25_hr/exp_official_mission/security/official_mission_security.xml +++ b/odex25_hr/exp_official_mission/security/official_mission_security.xml @@ -24,11 +24,18 @@ eval="[(4, ref('hr_base.group_department_manager')),(4, ref('hr_base.group_division_manager')),]"/> + + Accounting Manager: views missions that needs approval + + ['|',('state','in',['accounting_manager','accounting_manager_final', 'approve', 'refused']),('employee_ids.employee_id.user_id','in',user.ids)] + + + Allow HR : views missions of all employees [(1 ,'=', 1)] -