Skip to content

Commit e6d1bdf

Browse files
committed
[IMP] util.update_record_from_xml
Set the `xml_filename` argument of the `xml_import` records.
1 parent b977faa commit e6d1bdf

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/util/records.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
from psycopg2.extras import Json, execute_values
1313

1414
try:
15-
from odoo import modules, release
15+
from odoo import modules
1616
from odoo.tools.convert import xml_import
1717
from odoo.tools.misc import file_open
1818
from odoo.tools.translate import xml_translate
1919
except ImportError:
20-
from openerp import modules, release
20+
from openerp import modules
2121
from openerp.tools.convert import xml_import
2222
from openerp.tools.misc import file_open
2323

@@ -34,7 +34,7 @@
3434
from .inconsistencies import break_recursive_loops
3535
from .indirect_references import indirect_references
3636
from .inherit import direct_inherit_parents, for_each_inherit
37-
from .misc import Sentinel, chunks, parse_version, version_gte
37+
from .misc import Sentinel, chunks, version_between, version_gte
3838
from .orm import env, flush
3939
from .pg import (
4040
PGRegexp,
@@ -1133,6 +1133,7 @@ def __update_record_from_xml(
11331133
template = False
11341134
found = False
11351135
extra_references = []
1136+
xml_filename = None
11361137

11371138
def add_ref(ref):
11381139
if "." not in ref:
@@ -1147,6 +1148,8 @@ def add_ref(ref):
11471148
doc = lxml.etree.parse(fp)
11481149
for node in doc.xpath(xpath):
11491150
found = True
1151+
if xml_filename is None:
1152+
xml_filename = "{}/{}".format(from_module, f)
11501153
parent = node.getparent()
11511154
if node.tag == "record" and fields is not None:
11521155
for fn in node.xpath("./field[@name]"):
@@ -1200,8 +1203,9 @@ def add_ref(ref):
12001203
)
12011204

12021205
cr_or_env = env(cr) if version_gte("saas~16.2") else cr
1203-
importer = xml_import(cr_or_env, from_module, idref={}, mode="update")
1204-
kw = {"mode": "update"} if parse_version("8.0") <= parse_version(release.series) <= parse_version("12.0") else {}
1206+
kw = {"xml_filename": xml_filename} if version_gte("8.saas~6") else {}
1207+
importer = xml_import(cr_or_env, from_module, idref={}, mode="update", **kw)
1208+
kw = {"mode": "update"} if version_between("8.0", "12.0") else {}
12051209
importer.parse(new_root, **kw)
12061210
if version_gte("13.0"):
12071211
flush(env(cr)["base"])

0 commit comments

Comments
 (0)