From c5fd18e0cccb84404c2ff26f7e776a0c62d844e6 Mon Sep 17 00:00:00 2001 From: DiG Date: Mon, 17 Jan 2022 15:53:38 +0100 Subject: [PATCH] Added save command --- odoo-rpc.py | 66 ++++++++++++++++++----------------------------------- 1 file changed, 22 insertions(+), 44 deletions(-) diff --git a/odoo-rpc.py b/odoo-rpc.py index 27998f0..455bff5 100755 --- a/odoo-rpc.py +++ b/odoo-rpc.py @@ -338,58 +338,32 @@ def flatten_stack( data ): def flatten( obj ): if type(obj) == dict: - eprint( 'is a dict') + # eprint( 'is a dict') key = obj.keys()[0] if obj.keys()[0] != 'file' else obj.keys()[1] flat.append( key ) for field in obj[key].keys(): - eprint( 'go flat key', field ) + # eprint( 'go flat key', field ) flatten( obj[key][field] ) if type(obj) == list: - eprint( 'is a list') + # eprint( 'is a list') for item in obj: print( 'item: ', item, type(item)) if type(item) in (str,unicode): - eprint( 'sub item is a str') + # eprint( 'sub item is a str') flat.append( item ) if type(item) == dict: - eprint( 'sub item is a dict') + # eprint( 'sub item is a dict') flatten( item ) if type(obj) == str: - eprint( 'is a str') + # eprint( 'is a str') flat.append( item ) for obj in data: flatten( obj ) return flat - # if type(data) == str: - # return [ data ] - - # if type(data) == list: - # res = [ flatten_stack( sub ) for sub in data ] - # flat_list = [item for sublist in res for item in sublist] - # for item in flat_list: - # flat += item - # return flat - - # if type(data) == dict: - # for key in data.keys(): - # if '/' in key: - # flat.append(key) - # # if type(data[key]) != dict: - # # flat.append(key) - # # else: - # if type(data[key]) in [list,dict]: - # res = flatten_stack(data[key]) - # for item in res: - # flat += item - # return flat - - # jlog( flat ) - # return flat - # # return list(flatten(flat)) @@ -496,7 +470,8 @@ def export_json( model, domains ): print('Already exists %s' % (_filename) ) - +def save( model, domains ): + return 'save' # AUTO EXEC @@ -533,6 +508,18 @@ if MODEL in odoo.env: for inst in Model.browse( ids ): jlog( inst.read()[0] ) + if METHOD == 'fields_get': + jlog( Model.fields_get() ) + + if METHOD == 'fields': + res = fields( MODEL, args2domains(PARAMS[2:]) ) + render( OPTS, 'ir.model.fields', res ) + # Model = odoo.env['ir.model.fields'] + # ids = Model.search([( 'model_id.model', '=', MODEL )]) + # render( OPTS, 'ir.model.fields', Model.browse(ids) ) + #for inst in Field.browse( ids ): + # render_tsv( 'ir.model.fields', inst ) + if METHOD == 'lookup': jlog( lookup( MODEL, args2domains(PARAMS[2:]) ) ) @@ -545,17 +532,8 @@ if MODEL in odoo.env: if METHOD == 'export-json': export_json( MODEL, args2domains(PARAMS[2:]) ) - if METHOD == 'fields_get': - jlog( Model.fields_get() ) - - if METHOD == 'fields': - res = fields( MODEL, args2domains(PARAMS[2:]) ) - render( OPTS, 'ir.model.fields', res ) - # Model = odoo.env['ir.model.fields'] - # ids = Model.search([( 'model_id.model', '=', MODEL )]) - # render( OPTS, 'ir.model.fields', Model.browse(ids) ) - #for inst in Field.browse( ids ): - # render_tsv( 'ir.model.fields', inst ) + if METHOD == 'save': + save( MODEL, args2domains(PARAMS[2:]) ) elif MODEL == 'db': if METHOD == 'list':