old_contents: # -*- 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.mimetypes import neuter_mimetype
  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 = neuter_mimetype(ufile.content_type, http.request.env.user)
                  request.env['mrp.document'].create({
                      'name': ufile.filename,
                      'res_model': kwargs.get('res_model'),
                      'res_id': 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)
  
new_contents: # -*- 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.mimetypes import neuter_mimetype
  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 = neuter_mimetype(ufile.content_type, http.request.env.user)
                  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)
  
subject: create mrp.document through mrp.eco