diff --git a/addons/hr/models/hr.py b/addons/hr/models/hr.py index 7660c755471..458c4171c15 100644 --- a/addons/hr/models/hr.py +++ b/addons/hr/models/hr.py @@ -254,6 +254,8 @@ class Employee(models.Model): def _onchange_user(self): if self.user_id: self.update(self._sync_user(self.user_id)) + if not self.name: + self.name = self.user_id.name @api.onchange('resource_calendar_id') def _onchange_timezone(self): @@ -262,7 +264,6 @@ class Employee(models.Model): def _sync_user(self, user): vals = dict( - name=user.name, image=user.image, work_email=user.email, ) @@ -273,7 +274,9 @@ class Employee(models.Model): @api.model def create(self, vals): if vals.get('user_id'): - vals.update(self._sync_user(self.env['res.users'].browse(vals['user_id']))) + user = self.env['res.users'].browse(vals['user_id']) + vals.update(self._sync_user(user)) + vals['name'] = vals.get('name', user.name) tools.image_resize_images(vals) employee = super(Employee, self).create(vals) url = '/web#%s' % url_encode({'action': 'hr.plan_wizard_action', 'active_id': employee.id, 'active_model': 'hr.employee'}) diff --git a/addons/hr/tests/test_hr_employee.py b/addons/hr/tests/test_hr_employee.py index 710c13a5c8e..cb3f90206e9 100644 --- a/addons/hr/tests/test_hr_employee.py +++ b/addons/hr/tests/test_hr_employee.py @@ -28,7 +28,7 @@ class TestHrEmployee(TestHrCommon): employee_form.work_email = 'raoul@example.com' employee_form.user_id = self.res_users_hr_officer employee = employee_form.save() - self.assertEqual(employee.name, self.res_users_hr_officer.name) + self.assertEqual(employee.name, 'Raoul Grosbedon') self.assertEqual(employee.work_email, self.res_users_hr_officer.email) self.assertEqual(employee.tz, self.res_users_hr_officer.tz) @@ -42,6 +42,6 @@ class TestHrEmployee(TestHrCommon): employee_form.tz = _tz employee_form.user_id = self.res_users_hr_officer employee = employee_form.save() - self.assertEqual(employee.name, self.res_users_hr_officer.name) + self.assertEqual(employee.name, 'Raoul Grosbedon') self.assertEqual(employee.work_email, self.res_users_hr_officer.email) self.assertEqual(employee.tz, _tz)