# -*- 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], )