diff --git a/addons/hr/models/hr_employee.py b/addons/hr/models/hr_employee.py index dc20f57822e22..b470d2d7f557e 100644 --- a/addons/hr/models/hr_employee.py +++ b/addons/hr/models/hr_employee.py @@ -495,7 +495,8 @@ def _compute_legal_name(self): @api.depends('current_version_id') @api.depends_context('version_id') def _compute_version_id(self): - context_version = self.env['hr.version'].browse(self.env.context.get('version_id', False)) + context_version_id = self.env.context.get('version_id', False) + context_version = self.env['hr.version'].browse(context_version_id).exists() if context_version_id else self.env['hr.version'] for employee in self: if context_version.employee_id == self: diff --git a/addons/hr/tests/test_hr_version.py b/addons/hr/tests/test_hr_version.py index ab585bc77163f..241f7632a7926 100644 --- a/addons/hr/tests/test_hr_version.py +++ b/addons/hr/tests/test_hr_version.py @@ -676,3 +676,20 @@ def test_hr_version_fields_tracking(self): fields_without_tracking, f"The following hr.version fields should have tracking=True: {fields_without_tracking}", ) + + def test_delete_hr_version(self): + employee = self.env['hr.employee'].create( + { + 'name': 'John Doe', + 'date_version': '2024-01-01', + } + ) + + version1 = employee.version_id + version2 = employee.create_version({ + 'date_version': '2025-01-01', + }) + + version1.unlink() + with self.assertRaises(ValidationError): + version2.unlink() diff --git a/addons/hr/views/hr_employee_views.xml b/addons/hr/views/hr_employee_views.xml index 3a733cf199e42..08dd2b395ff16 100644 --- a/addons/hr/views/hr_employee_views.xml +++ b/addons/hr/views/hr_employee_views.xml @@ -370,7 +370,7 @@ to - +