From ecdc3b18735465112eda8efb5dc4758fc9b4adc6 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Fri, 5 Apr 2013 15:47:47 +0200 Subject: [PATCH] [FIX] web: company_logo does not try to load the pool + failback correctly if the database does not exists or is not an openerp database bzr revid: chs@openerp.com-20130405134747-7rkmz5d4r0buhhxj --- addons/web/controllers/main.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 9947ff880e9..01126694059 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -1377,13 +1377,24 @@ class Binary(openerpweb.Controller): if not dbname: image_data = self.placeholder(req, 'logo.png') else: - registry = openerp.modules.registry.RegistryManager.get(dbname) - with registry.cursor() as cr: - user = registry.get('res.users').browse(cr, uid, uid) - if user.company_id.logo_web: - image_data = user.company_id.logo_web.decode('base64') - else: - image_data = self.placeholder(req, 'nologo.png') + try: + # create an empty registry + registry = openerp.modules.registry.Registry(dbname.lower()) + with registry.cursor() as cr: + cr.execute("""SELECT c.logo_web + FROM res_users u + LEFT JOIN res_company c + ON c.id = u.company_id + WHERE u.id = %s + """, (uid,)) + row = cr.fetchone() + if row and row[0]: + image_data = str(row[0]).decode('base64') + else: + image_data = self.placeholder(req, 'nologo.png') + except Exception: + image_data = self.placeholder(req, 'logo.png') + headers = [ ('Content-Type', 'image/png'), ('Content-Length', len(image_data)),