66 lines
1.9 KiB
Python
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],
|
|
)
|