addons-cm/l10n_es_partner_ccpae/migrations/18.0.1.0.0/pre-migration.py
2026-08-07 16:34:38 +02:00

49 lines
1.7 KiB
Python

# Copyright 2026 Ecocentral, Criptomart
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
"""Renombrar l'xml_id de la vista heretada del formulari de contacte.
A la 17.0 la vista es deia `l10n_es_partner_ccpae.view_partner_form`, un nom
que xoca visualment amb `base.view_partner_form` i que no segueix la convenció
del repo (`<model>_view_form_<mòdul>`). A la 18.0 passa a dir-se
`res_partner_view_form_ccpae`.
Sense aquest script l'actualització continuaria funcionant —Odoo crearia una
vista nova i esborraria l'antiga a `_process_end`— però pel mig hi hauria dues
vistes heretades equivalents injectant la mateixa pàgina al formulari, i es
perdrien les personalitzacions que algú hagués fet sobre el registre existent.
Renombrant a `ir_model_data` es reaprofita la mateixa `ir.ui.view`.
"""
import logging
_logger = logging.getLogger(__name__)
RENAMED_XMLIDS = [
# (model, nom antic, nom nou)
("ir.ui.view", "view_partner_form", "res_partner_view_form_ccpae"),
]
def migrate(cr, version):
if not version:
return
for model, old_name, new_name in RENAMED_XMLIDS:
cr.execute(
"""
UPDATE ir_model_data
SET name = %s
WHERE module = 'l10n_es_partner_ccpae'
AND name = %s
AND model = %s
AND NOT EXISTS (
SELECT 1 FROM ir_model_data
WHERE module = 'l10n_es_partner_ccpae'
AND name = %s
)
""",
(new_name, old_name, model, new_name),
)
if cr.rowcount:
_logger.info(
"l10n_es_partner_ccpae: xml_id %s renombrat a %s", old_name, new_name
)