diff options
Diffstat (limited to 'addons/mrp/controller')
| -rw-r--r-- | addons/mrp/controller/__init__.py | 4 | ||||
| -rw-r--r-- | addons/mrp/controller/main.py | 35 |
2 files changed, 39 insertions, 0 deletions
diff --git a/addons/mrp/controller/__init__.py b/addons/mrp/controller/__init__.py new file mode 100644 index 00000000..5d4b25db --- /dev/null +++ b/addons/mrp/controller/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import main diff --git a/addons/mrp/controller/main.py b/addons/mrp/controller/main.py new file mode 100644 index 00000000..9c1a6c0b --- /dev/null +++ b/addons/mrp/controller/main.py @@ -0,0 +1,35 @@ +# -*- 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'].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) |
