Files
Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py
gsinghpal e56974d46f update
2026-03-16 08:14:56 -04:00

66 lines
1.9 KiB
Python

# -*- coding: utf-8 -*-
"""Clean up schedule-related views moved to fusion_schedule module.
The portal_schedule_page, portal_schedule_book templates and
appointment_invite_data have been moved to the standalone
fusion_schedule module. This migration removes stale ir.model.data
references so Odoo doesn't complain about orphaned records.
Also reactivates any views that Odoo silently deactivated.
"""
import logging
_logger = logging.getLogger(__name__)
MODULE = 'fusion_authorizer_portal'
MOVED_XMLIDS = [
'portal_schedule_page',
'portal_schedule_book',
'default_appointment_invite',
]
def migrate(cr, version):
if not version:
return
cr.execute("""
SELECT d.res_id FROM ir_model_data d
WHERE d.module = %s AND d.name = 'default_appointment_invite'
AND d.model = 'appointment.invite'
""", [MODULE])
row = cr.fetchone()
if row:
cr.execute("DELETE FROM appointment_invite WHERE id = %s", [row[0]])
_logger.info("Deleted old appointment.invite id=%d (moving to fusion_schedule)", row[0])
for xmlid in MOVED_XMLIDS:
cr.execute("""
DELETE FROM ir_model_data
WHERE module = %s AND name = %s
""", [MODULE, xmlid])
if cr.rowcount:
_logger.info(
"Removed stale ir.model.data %s.%s (moved to fusion_schedule)",
MODULE, xmlid,
)
cr.execute("""
UPDATE ir_ui_view v
SET active = true
FROM ir_model_data d
WHERE d.res_id = v.id
AND d.model = 'ir.ui.view'
AND d.module = %s
AND v.active = false
RETURNING v.id, v.name, v.key
""", [MODULE])
rows = cr.fetchall()
if rows:
_logger.warning(
"Reactivated %d deactivated views for %s: %s",
len(rows), MODULE, [r[2] or r[1] for r in rows],
)