[FIX] web: allow to use content_disposable without registry

When a user connect to /web/database/manager directly without the
login page before, the request don't have registry.
When the user click to backup a db, a traceback was raised:
    return request.registry['ir.http'].content_disposition(filename)
    TypeError: 'NoneType' object has no attribute 'getitem'
Because it was impossible to call content_diposable from ir_http
without registry.

Now content disposable has been moved in http.py and is callable from
anywhere.

This commit closes #13192
This commit closes #11583
This commit is contained in:
Jeremy Kersten
2016-08-19 18:31:01 +02:00
parent d7939282e9
commit 54e4f3f96b
3 changed files with 16 additions and 16 deletions
+1 -5
View File
@@ -34,7 +34,7 @@ from openerp.tools.translate import _
from openerp.tools import ustr
from openerp.tools.misc import str2bool, xlwt
from openerp import http
from openerp.http import request, serialize_exception as _serialize_exception
from openerp.http import request, serialize_exception as _serialize_exception, content_disposition
from openerp.exceptions import AccessError
_logger = logging.getLogger(__name__)
@@ -415,10 +415,6 @@ def xml2json_from_elementtree(el, preserve_whitespaces=False):
res["children"] = kids
return res
def content_disposition(filename):
return request.registry['ir.http'].content_disposition(filename)
def binary_content(xmlid=None, model='ir.attachment', id=None, field='datas', unique=False, filename=None, filename_field='datas_fname', download=False, mimetype=None, default_mimetype='application/octet-stream', env=None):
return request.registry['ir.http'].binary_content(
xmlid=xmlid, model=model, id=id, field=field, unique=unique, filename=filename, filename_field=filename_field,