From 3c0d39baea14561b37a266bffa477c6ea2a781fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 24 Oct 2017 17:11:34 +0200 Subject: [PATCH] [REV] base: revert "[IMP] base: no image (and kanban use default values" This reverts commit cfd5f47493ec9ea9c4229736506b7e1be0297471. It is not clear why it has been done. Original author thinks it can be reverted as it makes Odoo have people without image which is not good when starting with Odoo. We don't know what we want but what is certain is that we need images instead of ugly void placeholder. --- odoo/addons/base/res/res_partner.py | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/odoo/addons/base/res/res_partner.py b/odoo/addons/base/res/res_partner.py index 48cf0656631..4fc963e589d 100644 --- a/odoo/addons/base/res/res_partner.py +++ b/odoo/addons/base/res/res_partner.py @@ -276,6 +276,35 @@ class Partner(models.Model): p = partner.commercial_partner_id partner.commercial_company_name = p.is_company and p.name or partner.company_name + @api.model + def _get_default_image(self, partner_type, is_company, parent_id): + if getattr(threading.currentThread(), 'testing', False) or self._context.get('install_mode'): + return False + + colorize, img_path, image = False, False, False + + if partner_type in ['other'] and parent_id: + parent_image = self.browse(parent_id).image + image = parent_image and parent_image.decode('base64') or None + + if not image and partner_type == 'invoice': + img_path = get_module_resource('base', 'static/src/img', 'money.png') + elif not image and partner_type == 'delivery': + img_path = get_module_resource('base', 'static/src/img', 'truck.png') + elif not image and is_company: + img_path = get_module_resource('base', 'static/src/img', 'company_image.png') + elif not image: + img_path = get_module_resource('base', 'static/src/img', 'avatar.png') + colorize = True + + if img_path: + with open(img_path, 'rb') as f: + image = f.read() + if image and colorize: + image = tools.image_colorize(image) + + return tools.image_resize_image_big(base64.b64encode(image)) + @api.model def _fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False): if (not view_id) and (view_type == 'form') and self._context.get('force_email'): @@ -491,6 +520,10 @@ class Partner(models.Model): vals['website'] = self._clean_website(vals['website']) if vals.get('parent_id'): vals['company_name'] = False + # compute default image in create, because computing gravatar in the onchange + # cannot be easily performed if default images are in the way + if not vals.get('image'): + vals['image'] = self._get_default_image(vals.get('type'), vals.get('is_company'), vals.get('parent_id')) tools.image_resize_images(vals) partner = super(Partner, self).create(vals) partner._fields_sync(vals)