[IMP] hr: Keep employee name on user change
Purpose ======= Managing people's names is hard. The full name is stored in a single field. But is it first name first? Last name first? How many names? We don't want an onchange to automatically change names for which we might have spent a lot of energy correctly formatting in the database. Specification ============= Remove the automatic sync between the user's name and the employee's name when a user is linked to the employee. TaskID: 1953003 closes odoo/odoo#32521 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This commit is contained in:
committed by
Yannick Tivisse
parent
c498d35890
commit
ca2c0b583f
@@ -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'})
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user