12
12
from psycopg2 .extras import Json , execute_values
13
13
14
14
try :
15
- from odoo import modules , release
15
+ from odoo import modules
16
16
from odoo .tools .convert import xml_import
17
17
from odoo .tools .misc import file_open
18
18
from odoo .tools .translate import xml_translate
19
19
except ImportError :
20
- from openerp import modules , release
20
+ from openerp import modules
21
21
from openerp .tools .convert import xml_import
22
22
from openerp .tools .misc import file_open
23
23
34
34
from .inconsistencies import break_recursive_loops
35
35
from .indirect_references import indirect_references
36
36
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
38
38
from .orm import env , flush
39
39
from .pg import (
40
40
PGRegexp ,
@@ -1133,6 +1133,7 @@ def __update_record_from_xml(
1133
1133
template = False
1134
1134
found = False
1135
1135
extra_references = []
1136
+ xml_filename = None
1136
1137
1137
1138
def add_ref (ref ):
1138
1139
if "." not in ref :
@@ -1147,6 +1148,8 @@ def add_ref(ref):
1147
1148
doc = lxml .etree .parse (fp )
1148
1149
for node in doc .xpath (xpath ):
1149
1150
found = True
1151
+ if xml_filename is None :
1152
+ xml_filename = "{}/{}" .format (from_module , f )
1150
1153
parent = node .getparent ()
1151
1154
if node .tag == "record" and fields is not None :
1152
1155
for fn in node .xpath ("./field[@name]" ):
@@ -1200,8 +1203,9 @@ def add_ref(ref):
1200
1203
)
1201
1204
1202
1205
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 {}
1205
1209
importer .parse (new_root , ** kw )
1206
1210
if version_gte ("13.0" ):
1207
1211
flush (env (cr )["base" ])
0 commit comments