[REF] base_jsonify: review code
parent
cc49087441
commit
db3d3843fb
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue