import openerp
import openerp.modules.registry
from openerp.addons.base.ir.ir_qweb import AssetsBundle, QWebTemplateNotFound
+from openerp.modules import get_module_resource
from openerp.tools import topological_sort
from openerp.tools.translate import _
from openerp import http
'/logo.png',
], type='http', auth="none")
def company_logo(self, dbname=None, **kw):
- # TODO add etag, refactor to use /image code for etag
+ imgname = 'logo.png'
+ placeholder = functools.partial(get_module_resource, 'web', 'static', 'src', 'img')
uid = None
if request.session.db:
dbname = request.session.db
uid = openerp.SUPERUSER_ID
if not dbname:
- image_data = self.placeholder('logo.png')
+ response = http.send_file(placeholder(imgname))
else:
try:
# create an empty registry
registry = openerp.modules.registry.Registry(dbname)
with registry.cursor() as cr:
- cr.execute("""SELECT c.logo_web
+ cr.execute("""SELECT c.logo_web, c.write_date
FROM res_users u
LEFT JOIN res_company c
ON c.id = u.company_id
""", (uid,))
row = cr.fetchone()
if row and row[0]:
- image_data = str(row[0]).decode('base64')
+ image_data = StringIO(str(row[0]).decode('base64'))
+ response = http.send_file(image_data, filename=imgname, mtime=row[1])
else:
- image_data = self.placeholder('nologo.png')
+ response = http.send_file(placeholder('nologo.png'))
except Exception:
- image_data = self.placeholder('logo.png')
+ response = http.send_file(placeholder(imgname))
- headers = [
- ('Content-Type', 'image/png'),
- ('Content-Length', len(image_data)),
- ]
- return request.make_response(image_data, headers)
+ return response
class Action(http.Controller):