41 lines
1.3 KiB
Python
Executable File
41 lines
1.3 KiB
Python
Executable File
#!/opt/odoo/bin/python
|
|
# pylint: disable=print-used
|
|
|
|
import click
|
|
import click_odoo
|
|
import yaml
|
|
|
|
@click.command()
|
|
@click_odoo.env_options(default_log_level="error")
|
|
def main(env):
|
|
def _prepare_fields(field):
|
|
if "sub_pattern_config_id" in field:
|
|
pattern = env["pattern.config"].search(
|
|
[("name", "=", field.pop("sub_pattern_config_id"))]
|
|
)
|
|
field["sub_pattern_config_id"] = pattern.id
|
|
return field
|
|
|
|
with open("pattern.yml") as f:
|
|
for data in yaml.load(f, Loader=yaml.SafeLoader):
|
|
print("Import pattern", data["name"])
|
|
pattern = env["pattern.config"].search([("name", "=", data["name"])])
|
|
vals = {
|
|
"name": data["name"],
|
|
"resource": data["resource"],
|
|
"export_fields": [
|
|
(0, 0, _prepare_fields(field)) for field in data["export_fields"]
|
|
],
|
|
"export_format": "csv",
|
|
"tab_to_import": "match_name",
|
|
"process_multi": data.get("process_multi", True),
|
|
}
|
|
if pattern:
|
|
pattern.export_fields.unlink()
|
|
pattern.write(vals)
|
|
else:
|
|
env["pattern.config"].create(vals)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|