1212from psycopg2 .extras import Json , execute_values
1313
1414try :
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
1919except 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
3434from .inconsistencies import break_recursive_loops
3535from .indirect_references import indirect_references
3636from .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
3838from .orm import env , flush
3939from .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 and module == from_module :
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