From 16ed8d31412e1df6d2b2df14be1c14b1c8d2a47c Mon Sep 17 00:00:00 2001 From: ravb-odoo Date: Mon, 29 May 2023 06:26:40 +0000 Subject: [PATCH] [IMP] hr: add default avatar of employee Before this commit, when the user creates new resource and employee on the fly in many2one field, the default avatar of Initial name should be set instead of placeholder (grey icon). The reason why a grey icon is displayed is because the `_compute_avatar` for employee set that icon when avatar or image is not found. This commit add default avatar of initial name when new resource and employee is created. task-3251689 closes odoo/odoo#123403 Related: odoo/enterprise#41823 Signed-off-by: Xavier Bol (xbo) --- addons/hr/models/hr_employee.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/addons/hr/models/hr_employee.py b/addons/hr/models/hr_employee.py index 87525a21be3..eef55be05e0 100644 --- a/addons/hr/models/hr_employee.py +++ b/addons/hr/models/hr_employee.py @@ -160,14 +160,16 @@ class HrEmployeePrivate(models.Model): super()._compute_avatar_128() def _compute_avatar(self, avatar_field, image_field): + employee_wo_user_or_image_ids = [] for employee in self: + if not (employee.user_id or employee._origin[image_field]): + employee_wo_user_or_image_ids.append(employee.id) + continue avatar = employee._origin[image_field] - if not avatar: - if employee.user_id: - avatar = employee.user_id[avatar_field] - else: - avatar = base64.b64encode(employee._avatar_get_placeholder()) + if not avatar and employee.user_id: + avatar = employee.user_id[avatar_field] employee[avatar_field] = avatar + super(HrEmployeePrivate, self.browse(employee_wo_user_or_image_ids))._compute_avatar(avatar_field, image_field) def action_create_user(self): self.ensure_one()