From 6c73d8dff8cb3a794a2c35e75da6b85974cc34ff Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 11 Dec 2012 15:53:43 +0100 Subject: [PATCH] [IMP] web: move controler download_attachment into mail. bzr revid: chm@openerp.com-20121211145343-jhjj9sohn2shkbt9 --- addons/mail/__init__.py | 1 + addons/mail/controllers/__init__.py | 3 +++ addons/mail/controllers/main.py | 22 ++++++++++++++++++++++ addons/mail/static/src/js/mail.js | 2 +- 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 addons/mail/controllers/__init__.py create mode 100644 addons/mail/controllers/main.py diff --git a/addons/mail/__init__.py b/addons/mail/__init__.py index b34993ffd32..b759a08d778 100644 --- a/addons/mail/__init__.py +++ b/addons/mail/__init__.py @@ -35,5 +35,6 @@ import wizard import res_config import mail_group_menu import update +import controllers # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail/controllers/__init__.py b/addons/mail/controllers/__init__.py new file mode 100644 index 00000000000..e11f9ba81bb --- /dev/null +++ b/addons/mail/controllers/__init__.py @@ -0,0 +1,3 @@ +import main + +# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail/controllers/main.py b/addons/mail/controllers/main.py new file mode 100644 index 00000000000..4c6f6e56064 --- /dev/null +++ b/addons/mail/controllers/main.py @@ -0,0 +1,22 @@ +import base64 +import openerp.addons.web.http as oeweb +from openerp.addons.web.controllers.main import content_disposition + +#---------------------------------------------------------- +# Controller +#---------------------------------------------------------- +class MailController(oeweb.Controller): + _cp_path = '/mail' + + @oeweb.httprequest + def download_attachment(self, req, model, id, method, attachment_id, **kw): + Model = req.session.model(model) + res = getattr(Model, method)(int(id), int(attachment_id)) + if res: + filecontent = base64.b64decode(res.get('base64')) + filename = res.get('filename') + if filecontent and filename: + return req.make_response(filecontent, + headers=[('Content-Type', 'application/octet-stream'), + ('Content-Disposition', content_disposition(filename, req))]) + return req.not_found() diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index a0b39830ae3..f76e04cf540 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -30,7 +30,7 @@ openerp.mail = function (session) { /* Get the url of an attachment {'id': id} */ get_attachment_url: function (session, message_id, attachment_id) { - return session.url('/web/binary/download_attachment', { + return session.url('/mail/download_attachment', { 'model': 'mail.message', 'id': message_id, 'method': 'download_attachment',