diff --git a/odoo-rpc.py b/odoo-rpc.py index 9d8d79b..6df4675 100755 --- a/odoo-rpc.py +++ b/odoo-rpc.py @@ -468,18 +468,24 @@ def export_json( model, domains ): else: print('Already exists %s' % (_filename) ) +def uniq( arr ): + return list(set(arr)) + +def groupby_model( arr ): + res = {} + for muid in arr: + model, id = muid.split('/') + if not model in res: + res[model] = [] + res[model].append( int(id) ) + return res def save( model, domains ): force = OPTS['force'] if 'force' in OPTS else False models = flatten_stack( lookup( model, domains ) ) - unique_models = list(set(models)) + unique_models = uniq( models ) jlog( unique_models ) - to_browse = {} - for muid in unique_models: - model, id = muid.split('/') - if not model in to_browse: - to_browse[model] = [] - to_browse[model].append( id ) + to_browse = groupby_model( unique_models ) return to_browse