4
4
# Codize - https://www.codize.ar
5
5
6
6
# -*- coding: utf-8 -*-
7
+ import logging
8
+
7
9
import odoo
8
10
from odoo import http
9
11
from odoo .http import request
10
12
import re
11
-
13
+ _logger = logging . getLogger ( __name__ )
12
14
CORS = '*'
13
15
14
16
class OdooApiXMLRPC (http .Controller ):
@@ -175,6 +177,7 @@ def odoo_api_write(self, model, id=None, vals={}, db=None, login=None, password=
175
177
# create #
176
178
@http .route ('/odoo-api/object/create' , type = "json" , auth = 'none' , cors = CORS )
177
179
def odoo_api_create (self , model , vals = {}, db = None , login = None , password = None , attributes = None , ** kw ):
180
+ _logger .info (f"odoo_api_create : { vals } " )
178
181
try :
179
182
uid = request .session .authenticate (db , login , password )
180
183
if uid :
@@ -193,3 +196,20 @@ def odoo_api_unlink(self, model, id=None, db=None, login=None, password=None, at
193
196
return model
194
197
except Exception as e :
195
198
return {'status' : False , 'error' : str (e )}
199
+
200
+
201
+ # unlink #
202
+ @http .route ('/odoo-api/object/action' , type = "json" , auth = 'none' , cors = CORS )
203
+ def odoo_api_action (self , model , id = None , action = None , vals = {}, db = None , login = None , password = None , attributes = None , ** kw ):
204
+ try :
205
+ uid = request .session .authenticate (db , login , password )
206
+ if uid :
207
+ model = request .env [model ].browse (uid ).browse (id )
208
+ _logger .info (f"MODEL : { model } - ACTION : { action } - VALS : { vals } - ATTRIBUTES : { attributes } " )
209
+ getattr (model , action )(** vals )
210
+ # import ipdb; ipdb.set_trace()
211
+ # model.action_post()
212
+ # model.action_invoice_paid()
213
+ return model
214
+ except Exception as e :
215
+ return {'status' : False , 'error' : str (e )}
0 commit comments