diff --git a/extra-addons b/extra-addons index dc9809260..b8e46f871 160000 --- a/extra-addons +++ b/extra-addons @@ -1 +1 @@ -Subproject commit dc9809260e6e5b61dd2b3ec0eb65747df4bd656a +Subproject commit b8e46f87160050564165c7c10207a9164c2e9641 diff --git a/odoo/upgrade_code/17.5-01-tree-to-list.py b/odoo/upgrade_code/17.5-01-tree-to-list.py index 988b609c0..649d53edd 100644 --- a/odoo/upgrade_code/17.5-01-tree-to-list.py +++ b/odoo/upgrade_code/17.5-01-tree-to-list.py @@ -1,13 +1,14 @@ import re - def upgrade(file_manager): files = [file for file in file_manager if file.path.suffix in ('.xml', '.js', '.py')] if not files: return reg_tree_to_list_xml_mode = re.compile(r"""(]* name=["'](view_mode|name|binding_view_types)["'][^>]*>([^<>]+,)?\s*)tree(\s*(,[^<>]+)?)""") - reg_tree_to_list_tag = re.compile(r'\n([^:\n]|:(?!//))+([<,/])tree([ \n\r,>/])') + # Fixed pattern to properly handle attributes + reg_tree_to_list_tag = re.compile(r']*)?>', re.DOTALL) # Capture attributes correctly + reg_tree_to_list_closing_tag = re.compile(r'') reg_tree_to_list_xpath = re.compile(r"""(]* expr=['"])([^<>]*/)?tree(/|[\['"])""") reg_tree_to_list_ref = re.compile(r'tree_view_ref') reg_tree_to_list_mode = re.compile(r"""(mode=['"][^'"]*)tree([^'"]*['"])""") @@ -21,7 +22,8 @@ def upgrade(file_manager): content = file.content content = content.replace(' tree view ', ' list view ') content = reg_tree_to_list_xml_mode.sub(r'\1list\4', content) - content = reg_tree_to_list_tag.sub(r'\1list\2', content) + content = reg_tree_to_list_tag.sub(r'', content) # Use captured attributes + content = reg_tree_to_list_closing_tag.sub(r'', content) content = reg_tree_to_list_xpath.sub(r'\1\2list\3', content) content = reg_tree_to_list_ref.sub('list_view_ref', content) content = reg_tree_to_list_mode.sub(r'\1list\2', content) @@ -32,4 +34,4 @@ def upgrade(file_manager): content = reg_tree_to_list_env_ref.sub(r'\1list\2', content) file.content = content - file_manager.print_progress(fileno, len(files)) + file_manager.print_progress(fileno, len(files)) \ No newline at end of file