# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. import base64 import json import logging from odoo import http from odoo.http import request from odoo.tools.translate import _ logger = logging.getLogger(__name__) class MrpDocumentRoute(http.Controller): @http.route('/mrp/upload_attachment', type='http', methods=['POST'], auth="user") def upload_document(self, ufile, **kwargs): files = request.httprequest.files.getlist('ufile') result = {'success': _("All files uploaded")} for ufile in files: try: mimetype = ufile.content_type request.env['mrp.document'].with_context( disable_product_documents_creation=True ).create({ 'name': ufile.filename, 'res_model': kwargs.get('res_model'), 'res_id': int(kwargs.get('res_id')), 'mimetype': mimetype, 'datas': base64.encodebytes(ufile.read()), }) except Exception as e: logger.exception("Fail to upload document %s" % ufile.filename) result = {'error': str(e)} return json.dumps(result)