theme_m22tc.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import logging
  2. from odoo import api, models
  3. _logger = logging.getLogger(__name__)
  4. class ThemeM22Tc(models.AbstractModel):
  5. _inherit = "theme.utils"
  6. def _theme_m22tc_post_copy(self, mod):
  7. # Enable Ripple effects
  8. self.enable_asset("website.ripple_effect_scss")
  9. self.enable_asset("website.ripple_effect_js")
  10. # Configure Header
  11. self.enable_view("website.template_header_boxed")
  12. # Configure Footer
  13. self.enable_view("website.template_footer_centered")
  14. # Disable default font options to force ours
  15. # self.disable_view("website.option_font_title_01")
  16. # self.disable_view("website.option_font_title_02")
  17. # Odoo generates SCSS files based on these inputs.
  18. # Ideally, we want to reset specific user choices to null so defaults take over
  19. # but simpler is just ensuring our assets are loaded last.
  20. @api.model
  21. def cleanup_m22tc_portal_sidebar_views(self):
  22. """Remove legacy portal layout overrides that duplicated the sidebar."""
  23. legacy_keys = [
  24. "theme_m22tc.m22_portal_custom_layout",
  25. "theme_m22tc.m22_portal_hide_default_container",
  26. "theme_m22tc.m22_portal_hide_original_wrap",
  27. ]
  28. theme_views = (
  29. self.env["theme.ir.ui.view"]
  30. .with_context(active_test=False)
  31. .sudo()
  32. .search([("key", "in", legacy_keys)])
  33. )
  34. if theme_views:
  35. _logger.info(
  36. "Removing legacy theme.ir.ui.view portal overrides: %s", theme_views.ids
  37. )
  38. theme_views.unlink()
  39. ir_views = (
  40. self.env["ir.ui.view"]
  41. .with_context(active_test=False)
  42. .sudo()
  43. .search([("key", "in", legacy_keys)])
  44. )
  45. if ir_views:
  46. _logger.info(
  47. "Removing legacy ir.ui.view portal overrides: %s", ir_views.ids
  48. )
  49. ir_views.unlink()