import logging from odoo import api, models _logger = logging.getLogger(__name__) class ThemeM22Tc(models.AbstractModel): _inherit = "theme.utils" def _theme_m22tc_post_copy(self, mod): # Enable Ripple effects self.enable_asset("website.ripple_effect_scss") self.enable_asset("website.ripple_effect_js") # Configure Header self.enable_view("website.template_header_boxed") # Configure Footer self.enable_view("website.template_footer_centered") # Disable default font options to force ours # self.disable_view("website.option_font_title_01") # self.disable_view("website.option_font_title_02") # Odoo generates SCSS files based on these inputs. # Ideally, we want to reset specific user choices to null so defaults take over # but simpler is just ensuring our assets are loaded last. @api.model def cleanup_m22tc_portal_sidebar_views(self): """Remove legacy portal layout overrides that duplicated the sidebar.""" legacy_keys = [ "theme_m22tc.m22_portal_custom_layout", "theme_m22tc.m22_portal_hide_default_container", "theme_m22tc.m22_portal_hide_original_wrap", ] theme_views = ( self.env["theme.ir.ui.view"] .with_context(active_test=False) .sudo() .search([("key", "in", legacy_keys)]) ) if theme_views: _logger.info( "Removing legacy theme.ir.ui.view portal overrides: %s", theme_views.ids ) theme_views.unlink() ir_views = ( self.env["ir.ui.view"] .with_context(active_test=False) .sudo() .search([("key", "in", legacy_keys)]) ) if ir_views: _logger.info( "Removing legacy ir.ui.view portal overrides: %s", ir_views.ids ) ir_views.unlink()