From 3e368593252925158f35af5eaffad56d94d270fb Mon Sep 17 00:00:00 2001
From: Benjamin <benjamin@le-filament.com>
Date: Tue, 8 Jun 2021 15:36:02 +0200
Subject: [PATCH] [fix] OCB error on folder creation

---
 controllers/main.py | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/controllers/main.py b/controllers/main.py
index 74c9bd9..aafe908 100644
--- a/controllers/main.py
+++ b/controllers/main.py
@@ -6,7 +6,26 @@ from odoo import http
 
 class AlfrescoController(http.Controller):
 
-    @http.route(['/web/alfresco/session'], type="json", auth="user", method=['POST'])
+    @http.route(
+        ['/web/alfresco/session'],
+        type="json", auth="user", method=['POST'])
     def get_alf_ticket(self, username):
         data = http.request.env['cgscop.alfresco'].alfresco_get_ticket(username)
         return data
+
+    # ------------------------------------------------------
+    # Override parent
+    # ------------------------------------------------------
+    @http.route(
+        '/web/cmis/field/create_value',
+        type='json', methods=['POST'], auth="user")
+    def create_field_value(self, model_name, res_id, field_name):
+        """
+        Override parent to return dict with res_id key to avoid error on OCB
+        form_widget rendering
+        :return: { object_id: nodeRef }
+        """
+        model_inst = http.request.env[model_name].browse(int(res_id))
+        model_inst._fields[field_name].create_value(model_inst)
+        value = getattr(model_inst, field_name)
+        return {res_id: value}
-- 
GitLab