25 lines
1.0 KiB
Python
25 lines
1.0 KiB
Python
import base64
|
|
import openerp.addons.web.http as oeweb
|
|
from openerp.addons.web.controllers.main import content_disposition
|
|
import mimetypes
|
|
|
|
#----------------------------------------------------------
|
|
# 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')
|
|
content_type = mimetypes.guess_type(filename)
|
|
if filecontent and filename:
|
|
return req.make_response(filecontent,
|
|
headers=[('Content-Type', content_type[0] or 'application/octet-stream'),
|
|
('Content-Disposition', content_disposition(filename, req))])
|
|
return req.not_found()
|