diff --git a/openupgrade_scripts/scripts/website/18.0.1.0/post-migration.py b/openupgrade_scripts/scripts/website/18.0.1.0/post-migration.py new file mode 100644 index 000000000000..2864fddea672 --- /dev/null +++ b/openupgrade_scripts/scripts/website/18.0.1.0/post-migration.py @@ -0,0 +1,129 @@ +# Copyright 2026 Tecnativa - Pilar Vargas +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + + +def migrate_s_carousel_snippets(env): + openupgrade.logged_query( + env.cr, + r""" + UPDATE ir_ui_view v + SET arch_db = data.arch_db + FROM ( + SELECT view.id, + jsonb_object_agg( + lang, + regexp_replace( + arch, + $$]*class="[^"]*s_carousel_wrapper[^"]*")(?![^>]*data-vcss=)([^>]*)>$$, + $$$$, + 'g' + ) + ) AS arch_db + FROM ir_ui_view view + CROSS JOIN LATERAL jsonb_each_text(view.arch_db) AS value(lang, arch) + WHERE view.website_id IS NOT NULL + AND view.arch_db::text LIKE '%s_carousel_wrapper%' + GROUP BY view.id + ) data + WHERE v.id = data.id + """, + ) + + +def migrate_s_three_columns_snippets(env): + openupgrade.logged_query( + env.cr, + r""" + UPDATE ir_ui_view v + SET arch_db = data.arch_db + FROM ( + SELECT view.id, + jsonb_object_agg( + lang, + regexp_replace( + arch, + $$]*class="[^"]*s_three_columns[^"]*")(?![^>]*data-vxml=)([^>]*)>$$, + $$$$, + 'g' + ) + ) AS arch_db + FROM ir_ui_view view + CROSS JOIN LATERAL jsonb_each_text(view.arch_db) AS value(lang, arch) + WHERE view.website_id IS NOT NULL + AND view.arch_db::text LIKE '%s_three_columns%' + GROUP BY view.id + ) data + WHERE v.id = data.id + """, + ) + + +def migrate_s_comparisons_snippets(env): + openupgrade.logged_query( + env.cr, + r""" + UPDATE ir_ui_view v + SET arch_db = data.arch_db + FROM ( + SELECT view.id, + jsonb_object_agg( + lang, + regexp_replace( + regexp_replace( + arch, + $$]*class="[^"]*s_comparisons[^"]*")(?![^>]*data-vxml=)([^>]*)>$$, + $$$$, + 'g' + ), + $$]*class="[^"]*s_comparisons[^"]*")(?![^>]*data-vcss=)([^>]*)>$$, + $$$$, + 'g' + ) + ) AS arch_db + FROM ir_ui_view view + CROSS JOIN LATERAL jsonb_each_text(view.arch_db) AS value(lang, arch) + WHERE view.website_id IS NOT NULL + AND view.arch_db::text LIKE '%s_comparisons%' + GROUP BY view.id + ) data + WHERE v.id = data.id + """, + ) + + +def migrate_s_features_grid_snippets(env): + openupgrade.logged_query( + env.cr, + r""" + UPDATE ir_ui_view v + SET arch_db = data.arch_db + FROM ( + SELECT view.id, + jsonb_object_agg( + lang, + regexp_replace( + arch, + $$]*class="[^"]*s_features_grid[^"]*")(?![^>]*data-vcss=)([^>]*)>$$, + $$$$, + 'g' + ) + ) AS arch_db + FROM ir_ui_view view + CROSS JOIN LATERAL jsonb_each_text(view.arch_db) AS value(lang, arch) + WHERE view.website_id IS NOT NULL + AND view.arch_db::text LIKE '%s_features_grid%' + GROUP BY view.id + ) data + WHERE v.id = data.id + """, + ) + + +@openupgrade.migrate() +def migrate(env, version): + migrate_s_carousel_snippets(env) + migrate_s_three_columns_snippets(env) + migrate_s_comparisons_snippets(env) + migrate_s_features_grid_snippets(env)