diff --git a/addons/test_mass_mailing/models/__init__.py b/addons/test_mass_mailing/models/__init__.py index fcd1ee0e951..db7ad3a9895 100644 --- a/addons/test_mass_mailing/models/__init__.py +++ b/addons/test_mass_mailing/models/__init__.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import ir_qweb from . import mailing_models from . import mailing_models_cornercase diff --git a/addons/test_mass_mailing/models/ir_qweb.py b/addons/test_mass_mailing/models/ir_qweb.py new file mode 100644 index 00000000000..b70445bd367 --- /dev/null +++ b/addons/test_mass_mailing/models/ir_qweb.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +from odoo import models + +class IrQWeb(models.AbstractModel): + _inherit = "ir.qweb" + + def _get_bundles_to_pregenarate(self): + js_assets, css_assets = super(IrQWeb, self)._get_bundles_to_pregenarate() + assets = {'mass_mailing.iframe_css_assets_edit'} + return (js_assets | assets, css_assets | assets) diff --git a/addons/web_editor/models/__init__.py b/addons/web_editor/models/__init__.py index 393b0721b56..87d483d5169 100644 --- a/addons/web_editor/models/__init__.py +++ b/addons/web_editor/models/__init__.py @@ -2,6 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import ir_attachment +from . import ir_qweb from . import ir_qweb_fields from . import ir_ui_view from . import ir_http diff --git a/addons/web_editor/models/ir_qweb.py b/addons/web_editor/models/ir_qweb.py new file mode 100644 index 00000000000..5696cf85dc0 --- /dev/null +++ b/addons/web_editor/models/ir_qweb.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +from odoo import models + +class IrQWeb(models.AbstractModel): + _inherit = "ir.qweb" + + def _get_bundles_to_pregenarate(self): + js_assets, css_assets = super(IrQWeb, self)._get_bundles_to_pregenarate() + assets = { + 'web_editor.assets_legacy_wysiwyg', + 'web_editor.backend_assets_wysiwyg', + 'web_editor.assets_wysiwyg', + 'web_editor.wysiwyg_iframe_editor_assets', + } + return (js_assets | assets, css_assets | assets) diff --git a/addons/website/models/ir_qweb.py b/addons/website/models/ir_qweb.py index 836d55b3304..4bbc4ad4b70 100644 --- a/addons/website/models/ir_qweb.py +++ b/addons/website/models/ir_qweb.py @@ -136,3 +136,11 @@ class IrQWeb(models.AbstractModel): if isinstance(atts.get('style'), str) and 'background-image' in atts['style']: atts['style'] = re_background_image.sub(lambda m: '%s%s' % (m[1], url_adapter(m[2])), atts['style']) return atts + + def _get_bundles_to_pregenarate(self): + js_assets, css_assets = super(IrQWeb, self)._get_bundles_to_pregenarate() + assets = { + 'website.backend_assets_all_wysiwyg', + 'website.assets_all_wysiwyg', + } + return (js_assets | assets, css_assets | assets) diff --git a/odoo/addons/base/models/ir_qweb.py b/odoo/addons/base/models/ir_qweb.py index f7a3b11e4b8..d67d26bc964 100644 --- a/odoo/addons/base/models/ir_qweb.py +++ b/odoo/addons/base/models/ir_qweb.py @@ -2626,6 +2626,24 @@ class IrQWeb(models.AbstractModel): """ _logger.runbot('Pregenerating assets bundles') + js_bundles, css_bundles = self._get_bundles_to_pregenarate() + + links = [] + start = time.time() + for bundle in sorted(js_bundles): + links += self._generate_asset_links(bundle, css=False, js=True) + _logger.info('JS Assets bundles generated in %s seconds', time.time()-start) + start = time.time() + for bundle in sorted(css_bundles): + links += self._generate_asset_links(bundle, css=True, js=False) + _logger.info('CSS Assets bundles generated in %s seconds', time.time()-start) + return links + + def _get_bundles_to_pregenarate(self): + """ + Returns the list of bundles to pregenerate. + """ + views = self.env['ir.ui.view'].search([('type', '=', 'qweb'), ('arch_db', 'like', 't-call-assets')]) js_bundles = set() css_bundles = set() @@ -2638,16 +2656,8 @@ class IrQWeb(models.AbstractModel): js_bundles.add(asset) if css: css_bundles.add(asset) - links = [] - start = time.time() - for bundle in sorted(js_bundles): - links += self._generate_asset_links(bundle, css=False, js=True) - _logger.info('JS Assets bundles generated in %s seconds', time.time()-start) - start = time.time() - for bundle in sorted(css_bundles): - links += self._generate_asset_links(bundle, css=True, js=False) - _logger.info('CSS Assets bundles generated in %s seconds', time.time()-start) - return links + + return (js_bundles, css_bundles) def render(template_name, values, load, **options):