31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
| # Copyright 2017 Jairo Llopis <jairo.llopis@tecnativa.com>
 | |
| # Copyright 2018 Ivan Yelizariev <https://it-projects.info/team/yelizariev>
 | |
| # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
 | |
| 
 | |
| from odoo import models
 | |
| from .website import ASSETS_KEY
 | |
| 
 | |
| 
 | |
| class IrQweb(models.AbstractModel):
 | |
|     _inherit = 'ir.qweb'
 | |
| 
 | |
|     def _get_asset(self, xmlid, *args, **kwargs):
 | |
|         """Mock the ``web.assets_frontend`` for multi-themed websites.
 | |
| 
 | |
|         This is required for the ``/website/theme_customize`` controller, which
 | |
|         may redownload this view to provide a live preview of current theme
 | |
|         options.
 | |
|         """
 | |
|         website_id = self.env.context.get("website_id")
 | |
|         if xmlid == "web.assets_frontend" and website_id:
 | |
|             alt_xmlid = ASSETS_KEY % website_id
 | |
|             if self.env.ref(alt_xmlid, False):
 | |
|                 xmlid = alt_xmlid
 | |
|         return super(IrQweb, self)._get_asset(xmlid, *args, **kwargs)
 | |
| 
 | |
|     # Workaround for https://github.com/odoo/odoo/pull/24429
 | |
|     def _compile_directive_snippet(self, el, options):
 | |
|         return super(IrQweb, self.with_context(
 | |
|             search_multi_website_snippet=options.get('website_id')
 | |
|         ))._compile_directive_snippet(el, options)
 |