From 929e060c07bd6dfeb8bcbd6323e70c08f96e9c84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 11 Jan 2016 16:42:26 +0100 Subject: [PATCH] [FIX][IMP] base: partner image Do not compute the partner default image when being in testing or install mode. For example when importing a huge list of contacts there is no need to compute a default image for every contact. Moreover the random colorize is more limited. There is no need to explore the whole space of rgb. It is now limited by steps in the rgb random, leading to less different images being possible. There are currently 512 possible combinaisons. --- openerp/addons/base/res/res_partner.py | 4 ++++ openerp/tools/image.py | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py index 78ce41f7cfd..eaf23347270 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -5,6 +5,7 @@ import datetime from lxml import etree import math import pytz +import threading import urlparse import openerp @@ -303,6 +304,9 @@ class res_partner(osv.Model, format_address): @api.model def _get_default_image(self, is_company, colorize=False): + if getattr(threading.currentThread(), 'testing', False) or self.env.context.get('install_mode'): + return False + img_path = openerp.modules.get_module_resource( 'base', 'static/src/img', 'company_image.png' if is_company else 'avatar.png') with open(img_path, 'rb') as f: diff --git a/openerp/tools/image.py b/openerp/tools/image.py index 5261e9037e4..c6d0ad9aa43 100644 --- a/openerp/tools/image.py +++ b/openerp/tools/image.py @@ -8,7 +8,7 @@ except ImportError: from PIL import Image from PIL import ImageEnhance -from random import randint +from random import randrange # ---------------------------------------- # Image resizing @@ -213,7 +213,7 @@ def image_colorize(original, randomize=True, color=(255, 255, 255)): image = Image.new('RGB', original.size) # generate the background color, past it as background if randomize: - color = (randint(32, 224), randint(32, 224), randint(32, 224)) + color = (randrange(32, 224, 24), randrange(32, 224, 24), randrange(32, 224, 24)) image.paste(color) image.paste(original, mask=original) # return the new image