49 lines
1.7 KiB
Python
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
|
|
)
|