From f2380522e4333b788032b24dae11fb684b17b110 Mon Sep 17 00:00:00 2001 From: DiG Date: Sun, 16 Jan 2022 15:40:40 +0100 Subject: [PATCH] WIP lookup one model --- odoo-rpc.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/odoo-rpc.py b/odoo-rpc.py index 6c7ee19..684af64 100755 --- a/odoo-rpc.py +++ b/odoo-rpc.py @@ -223,9 +223,13 @@ current_exports = [] def lookup_model( muid ): eprint( "> Lookup model: %s" % (muid) ) _stack = [] + _tree = {} + _ctree = _tree model, id = muid.split( '/' ) id = int(id) eprint( model, id ) + _tree[muid] = {} + _ctree = _tree[muid] if model in odoo.env: rfields = rel_fields( model ) @@ -234,9 +238,11 @@ def lookup_model( muid ): # data = inst.read()[0] # size = len( json.dumps(data, indent=4) ) # filename = json_path( model, inst.id ) + # _ctree['size'] = size for field in rfields: # if data[field.name]: + # _ctree[field.name] = {} _value = getattr( inst, field.name ) print( field.name ) print( _value ) @@ -244,16 +250,21 @@ def lookup_model( muid ): print( field.name, field.ttype ) if field.ttype == 'many2one': id = _value.id - _stack.append( Muid(field.relation, id) ) + # _stack.append( Muid(field.relation, id) ) + _ctree[field.name] = [ Muid(field.relation, id) ] if field.ttype == 'one2many': - for id in _value.ids: - _stack.append( Muid(field.relation, id) ) + _ctree[field.name] = [ Muid(field.relation, id) for id in _value.ids ] + # for id in _value.ids: + # _stack.append( Muid(field.relation, id) ) # if field.ttype == 'many2many': # if field.ttype == 'reference': - - return _stack + + else: + _ctree['error'] = 'Model do not exists' + + return _tree def lookup( model, domains ): eprint( "> Lookup: %s %s" % (model,domains) )