2022-01-16 18:41:00 +01:00
|
|
|
from __future__ import print_function
|
2022-01-16 19:13:27 +01:00
|
|
|
import json as JSON
|
2022-01-16 19:11:03 +01:00
|
|
|
|
|
|
|
# TABLE VIEW COLUMNS
|
|
|
|
cols = {
|
2022-01-16 19:40:14 +01:00
|
|
|
'': [ 'id', 'name', 'create_uid' ], # default
|
2022-01-16 19:11:03 +01:00
|
|
|
'ir.model': [ 'id', 'model' ],
|
|
|
|
'ir.model.fields': [ 'id', 'name', 'ttype', 'create_uid', 'relation', 'display_name', 'complete_name' ],
|
|
|
|
}
|
|
|
|
|
2022-01-16 19:52:53 +01:00
|
|
|
import os
|
|
|
|
# import locale
|
|
|
|
os.environ["PYTHONIOENCODING"] = "utf-8"
|
2022-01-16 19:11:03 +01:00
|
|
|
|
2022-01-16 17:31:20 +01:00
|
|
|
def tsv( *fields ):
|
2022-01-16 19:40:14 +01:00
|
|
|
# fields = [ '"' + str(f).replace('"','\\"') + '"' for f in fields ]
|
2022-01-16 19:52:53 +01:00
|
|
|
# fields = [ str(s).encode('utf-8') for s in fields ]
|
2022-01-16 17:31:20 +01:00
|
|
|
print( *fields, sep='\t' )
|
|
|
|
|
|
|
|
def csv( *fields ):
|
2022-01-16 19:58:53 +01:00
|
|
|
print( fields )
|
|
|
|
fields = [ str(s) for s in fields ]
|
2022-01-16 19:57:21 +01:00
|
|
|
print( fields )
|
|
|
|
fields = [ str(s).encode('utf-8') for s in fields ]
|
2022-01-16 19:40:14 +01:00
|
|
|
fields = [ '"' + str(f).replace('"','\\"') + '"' for f in fields ]
|
|
|
|
print( *fields, sep=',' )
|
2022-01-16 17:31:20 +01:00
|
|
|
|
2022-01-16 19:13:27 +01:00
|
|
|
def json( obj ):
|
|
|
|
print( JSON.dumps(obj, indent=4) ) #"\t") )
|
|
|
|
|
|
|
|
|
2022-01-16 17:31:20 +01:00
|
|
|
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 ):
|
2022-01-16 19:22:38 +01:00
|
|
|
json( list.read() )
|
2022-01-16 17:31:20 +01:00
|
|
|
|
|
|
|
#def render_json( model, obj ):
|
2022-01-16 18:45:33 +01:00
|
|
|
def render( opts, model, list ): # +format=json,xml,csv +json +tsv
|
2022-01-16 19:09:33 +01:00
|
|
|
if ( 'json' in opts and opts['json'] ) or ( 'format' in opts and 'json' in opts['format'] ):
|
2022-01-16 17:31:20 +01:00
|
|
|
render_json( model, list )
|
2022-01-16 19:21:02 +01:00
|
|
|
elif ( 'tsv' in opts and opts['tsv'] ) or ( 'format' in opts and 'tsv' in opts['format'] ):
|
2022-01-16 17:31:20 +01:00
|
|
|
render_tsv( model, list )
|
2022-01-16 19:21:02 +01:00
|
|
|
elif ( 'csv' in opts and opts['csv'] ) or ( 'format' in opts and 'csv' in opts['format'] ):
|
2022-01-16 17:31:20 +01:00
|
|
|
render_csv( model, list )
|
2022-01-16 19:21:02 +01:00
|
|
|
# elif ( 'xml' in opts and opts['xml'] ) or ( 'format' in opts and 'xml' in opts['format'] ):
|
2022-01-16 17:31:20 +01:00
|
|
|
# render_xml( model, list )
|
2022-01-16 19:30:24 +01:00
|
|
|
else:
|
|
|
|
render_tsv( model, list )
|