diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py index 350a5cdd42710e4eb96a5bfd33fa8ccf0659eeef..4fea5a11025842a885e0c3ac99fe6060b181e7ff 100644 --- a/odoo/addons/base/models/res_partner.py +++ b/odoo/addons/base/models/res_partner.py @@ -266,8 +266,13 @@ class Partner(models.Model): def _compute_avatar(self, avatar_field, image_field): partners_with_internal_user = self.filtered(lambda partner: partner.user_ids - partner.user_ids.filtered('share')) super(Partner, partners_with_internal_user)._compute_avatar(avatar_field, image_field) - for partner in self - partners_with_internal_user: - partner[avatar_field] = partner[image_field] or partner._avatar_get_placeholder() + partners_without_image = (self - partners_with_internal_user).filtered(lambda p: not p[image_field]) + for _, group in tools.groupby(partners_without_image, key=lambda p: p._avatar_get_placeholder_path()): + group_partners = self.env['res.partner'].concat(*group) + group_partners[avatar_field] = group_partners[0]._avatar_get_placeholder() + + for partner in self - partners_with_internal_user - partners_without_image: + partner[avatar_field] = partner[image_field] def _avatar_get_placeholder_path(self): if self.is_company: