summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@openerp.com>2012-12-11 15:53:43 +0100
committerChristophe Matthieu <chm@openerp.com>2012-12-11 15:53:43 +0100
commit6c73d8dff8cb3a794a2c35e75da6b85974cc34ff (patch)
tree8d15e059056b538b84667bc508a37cd16507a7d7
parent295c36e66c5755b307caccad7ce19c08202f3814 (diff)
[IMP] web: move controler download_attachment into mail.
bzr revid: chm@openerp.com-20121211145343-jhjj9sohn2shkbt9
-rw-r--r--addons/mail/__init__.py1
-rw-r--r--addons/mail/controllers/__init__.py3
-rw-r--r--addons/mail/controllers/main.py22
-rw-r--r--addons/mail/static/src/js/mail.js2
4 files changed, 27 insertions, 1 deletions
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',