[REF] base_jsonify: review code

pull/2418/head
Florent Xicluna 2021-10-22 10:03:18 +02:00 committed by Sébastien BEAU
parent cc49087441
commit db3d3843fb
2 changed files with 13 additions and 13 deletions

View File

@ -62,9 +62,7 @@ class Base(models.AbstractModel):
@api.model @api.model
def _add_json_key(self, values, json_key, value): def _add_json_key(self, values, json_key, value):
"""To manage defaults, you can use a specific resolver.""" """To manage defaults, you can use a specific resolver."""
key_marshaller = json_key.split("=") key, sep, marshaller = json_key.partition("=")
key = key_marshaller[0]
marshaller = key_marshaller[1] if len(key_marshaller) > 1 else None
if marshaller == "list": # sublist field if marshaller == "list": # sublist field
if not values.get(key): if not values.get(key):
values[key] = [] values[key] = []
@ -170,7 +168,8 @@ class Base(models.AbstractModel):
for record, json in zip(records, results): for record, json in zip(records, results):
self._jsonify_record(parsers[lang], record, json) self._jsonify_record(parsers[lang], record, json)
results = resolver.resolve(results, self) if resolver else results if resolver:
results = resolver.resolve(results, self)
return results[0] if one else results return results[0] if one else results
# HELPERS # HELPERS

View File

@ -4,14 +4,14 @@ def convert_simple_to_full_parser(parser):
return {"fields": _convert_parser(parser)} return {"fields": _convert_parser(parser)}
def _f(f, function=None): def _convert_field(fld, function=None):
"""Return a dict from the string encoding a field to export. """Return a dict from the string encoding a field to export.
The : is used as a separator to specify a target, if any. The : is used as a separator to specify a target, if any.
""" """
field_split = f.split(":") name, sep, target = fld.partition(":")
field_dict = {"name": field_split[0]} field_dict = {"name": name}
if len(field_split) > 1: if target:
field_dict["target"] = field_split[1] field_dict["target"] = target
if function: if function:
field_dict["function"] = function field_dict["function"] = function
return field_dict return field_dict
@ -24,11 +24,12 @@ def _convert_parser(parser):
result = [] result = []
for line in parser: for line in parser:
if isinstance(line, str): if isinstance(line, str):
result.append(_f(line)) field_def = _convert_field(line)
else: else:
f, sub = line fld, sub = line
if callable(sub) or isinstance(sub, str): if callable(sub) or isinstance(sub, str):
result.append(_f(f, sub)) field_def = _convert_field(fld, sub)
else: else:
result.append((_f(f), _convert_parser(sub))) field_def = (_convert_field(fld), _convert_parser(sub))
result.append(field_def)
return result return result