29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import http, _
|
|
from odoo.http import request, content_disposition
|
|
|
|
|
|
def _get_zip_headers(content, filename):
|
|
return [
|
|
('Content-Type', 'zip'),
|
|
('X-Content-Type-Options', 'nosniff'),
|
|
('Content-Length', len(content)),
|
|
('Content-Disposition', content_disposition(filename)),
|
|
]
|
|
|
|
|
|
class AccountDocumentDownloadController(http.Controller):
|
|
@http.route('/account/export_zip_documents', type='http', auth='user')
|
|
def export_zip_documents(self, **args):
|
|
""" Download zipped attachments. """
|
|
ids = list(map(int, request.httprequest.args.getlist('ids')))
|
|
filename = request.httprequest.args.get('filename')
|
|
attachments = request.env['ir.attachment'].browse(ids)
|
|
attachments.check_access_rights('read')
|
|
attachments.check_access_rule('read')
|
|
content = attachments._build_zip_from_attachments()
|
|
headers = _get_zip_headers(content, filename)
|
|
return request.make_response(content, headers)
|