[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
This commit is contained in:
Christophe Simonis 2013-04-05 15:47:47 +02:00
parent 1ff81f943c
commit ecdc3b1873
1 changed files with 18 additions and 7 deletions

View File

@ -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)),