Rename module fusion_authorizer_portal -> fusion_portal everywhere: manifest/assets, controllers, models, views, JS (odoo.define + asset URLs), migration MODULE constants; plus cross-module refs in fusion_schedule, fusion_repairs, fusion_quotations (depends + inherit_id) and the pdf_filler import in fusion_claims. Add rename_module.sql for the one-time in-place DB rename (ir_module_module, ir_model_data, ir_ui_view.key, ir_module_module_dependency) required on installed envs before -u fusion_portal. Document the rename gotcha as rule 16 in CLAUDE.md. Redesign the Accessibility Assessment selector: replace Font Awesome icon tiles with photo-banner cards using 7 optimized images (1000x750 PNG -> 800x600 JPEG, ~8MB -> 488KB), per-type colour accent bar + centered pill button, hover lift/zoom. Images ship as module static files so they deploy/sync with the module. Drop the regenerable graphify-out cache from the module. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
31 lines
983 B
Python
31 lines
983 B
Python
# -*- coding: utf-8 -*-
|
|
|
|
from . import models
|
|
from . import controllers
|
|
|
|
|
|
def _reactivate_views(env):
|
|
"""Ensure all module views are active after install/update.
|
|
|
|
Odoo silently deactivates inherited views when an xpath fails
|
|
validation (e.g. parent view structure changed between versions).
|
|
Once deactivated, subsequent -u runs never reactivate them.
|
|
This hook prevents that from silently breaking the portal.
|
|
"""
|
|
views = env['ir.ui.view'].sudo().search([
|
|
('key', 'like', 'fusion_portal.%'),
|
|
('active', '=', False),
|
|
])
|
|
if views:
|
|
views.write({'active': True})
|
|
env.cr.execute("""
|
|
SELECT key FROM ir_ui_view
|
|
WHERE key LIKE 'fusion_portal.%%'
|
|
AND id = ANY(%s)
|
|
""", [views.ids])
|
|
keys = [r[0] for r in env.cr.fetchall()]
|
|
import logging
|
|
logging.getLogger(__name__).warning(
|
|
"Reactivated %d deactivated views: %s", len(keys), keys
|
|
)
|