Added module renderers json tsv csv xml
This commit is contained in:
parent
1b4395c3d6
commit
519b453aee
39
odoo-rpc.py
39
odoo-rpc.py
|
@ -10,6 +10,7 @@ import sys
|
|||
import json
|
||||
import odoorpc # pip install odoorpc
|
||||
|
||||
from renderers import render, tsv
|
||||
|
||||
def eprint(*args, **kwargs):
|
||||
print(*args, file=sys.stderr, **kwargs)
|
||||
|
@ -19,7 +20,7 @@ def eprint(*args, **kwargs):
|
|||
FOLDER = '/home/dig/odoo-export/datas'
|
||||
# PARAMS = sys.argv[1:]
|
||||
PARAMS = []
|
||||
OPTS = {}
|
||||
OPTS = { 'format': 'tsv' }
|
||||
for param in sys.argv[1:]:
|
||||
if param[0] == '-':
|
||||
kv = param[1:].split( '=' )
|
||||
|
@ -156,23 +157,29 @@ def rel_fields( model ):
|
|||
return Model.browse( ids )
|
||||
|
||||
|
||||
def tsv( *fields ):
|
||||
print( *fields, sep='\t' )
|
||||
# def tsv( *fields ):
|
||||
# print( *fields, sep='\t' )
|
||||
|
||||
def render_tsv( model, list ):
|
||||
# def render_tsv( model, list ):
|
||||
|
||||
if model in cols:
|
||||
_cols = cols[model]
|
||||
else:
|
||||
_cols = cols['']
|
||||
# if model in cols:
|
||||
# _cols = cols[model]
|
||||
# else:
|
||||
# _cols = cols['']
|
||||
|
||||
tsv( *_cols )
|
||||
# tsv( *_cols )
|
||||
|
||||
for obj in list:
|
||||
tsv( *[ obj[col] for col in _cols] )
|
||||
|
||||
#def render_json( model, obj ):
|
||||
# for obj in list:
|
||||
# tsv( *[ obj[col] for col in _cols] )
|
||||
|
||||
# #def render_json( model, obj ):
|
||||
# def render( opts ): # +format=json,xml,csv +json +tsv
|
||||
# if opts.json or ( opts.format and 'json' in opts.format ):
|
||||
# render_json( list )
|
||||
# if opts.tsv or ( opts.format and 'tsv' in opts.format ):
|
||||
# render_tsv( model, list )
|
||||
# # if opts.csv or ( opts.format and 'csv' in opts.format ):
|
||||
# # if opts.xml or ( opts.format and 'xml' in opts.format ):
|
||||
|
||||
# COMMANDS
|
||||
|
||||
|
@ -231,7 +238,7 @@ def search( model, domains ):
|
|||
def fields( model, domains ):
|
||||
Model = odoo.env['ir.model.fields']
|
||||
ids = Model.search([( 'model_id.model', '=', model )])
|
||||
render_tsv( model, Model.browse(ids) )
|
||||
render( model, Model.browse(ids) )
|
||||
|
||||
stack = []
|
||||
current_exports = []
|
||||
|
@ -436,7 +443,7 @@ if MODEL in odoo.env:
|
|||
if METHOD == 'search':
|
||||
# render_tsv( odoo.env[MODEL].browse( odoo.env[MODEL].search( args2domains(PARAMS[2:]) ) ) )
|
||||
ids = search( MODEL, args2domains(PARAMS[2:]) )
|
||||
render_tsv( MODEL, Model.browse(ids) )
|
||||
render( MODEL, Model.browse(ids) )
|
||||
#ids = Model.search( args2domains(PARAMS[2:]) )
|
||||
#print( 'id', 'name', sep='\t' )
|
||||
#for inst in Model.browse( ids ):
|
||||
|
@ -467,7 +474,7 @@ if MODEL in odoo.env:
|
|||
if METHOD == 'fields':
|
||||
Model = odoo.env['ir.model.fields']
|
||||
ids = Model.search([( 'model_id.model', '=', MODEL )])
|
||||
render_tsv( MODEL, Model.browse(ids) )
|
||||
render( MODEL, Model.browse(ids) )
|
||||
#for inst in Field.browse( ids ):
|
||||
# render_tsv( 'ir.model.fields', inst )
|
||||
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
|
||||
def tsv( *fields ):
|
||||
print( *fields, sep='\t' )
|
||||
|
||||
def csv( *fields ):
|
||||
print( *[ '"' + f.replace('"','\\"') + '"' for f in fields ], sep=',' )
|
||||
|
||||
def render_tsv( model, list ):
|
||||
|
||||
if model in cols:
|
||||
_cols = cols[model]
|
||||
else:
|
||||
_cols = cols['']
|
||||
|
||||
tsv( *_cols )
|
||||
|
||||
for obj in list:
|
||||
tsv( *[ obj[col] for col in _cols] )
|
||||
|
||||
def render_csv( model, list ):
|
||||
|
||||
if model in cols:
|
||||
_cols = cols[model]
|
||||
else:
|
||||
_cols = cols['']
|
||||
|
||||
csv( *_cols )
|
||||
|
||||
for obj in list:
|
||||
csv( *[ obj[col] for col in _cols] )
|
||||
|
||||
def render_json( model, list ):
|
||||
jlog( list )
|
||||
|
||||
#def render_json( model, obj ):
|
||||
def render( model, list ): # +format=json,xml,csv +json +tsv
|
||||
print( 'OPTS dans module : ', OPTS )
|
||||
if opts.json or ( opts.format and 'json' in opts.format ):
|
||||
render_json( model, list )
|
||||
if opts.tsv or ( opts.format and 'tsv' in opts.format ):
|
||||
render_tsv( model, list )
|
||||
if opts.csv or ( opts.format and 'csv' in opts.format ):
|
||||
render_csv( model, list )
|
||||
# if opts.xml or ( opts.format and 'xml' in opts.format ):
|
||||
# render_xml( model, list )
|
Loading…
Reference in New Issue