diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index 34838401607..03a6b74877f 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -354,9 +354,9 @@ class Website(Home): if get_bundle: context = dict(request.context) return { - 'web.assets_common': request.env["ir.qweb"]._get_asset('web.assets_common', options=context), - 'web.assets_frontend': request.env["ir.qweb"]._get_asset('web.assets_frontend', options=context), - 'website.assets_editor': request.env["ir.qweb"]._get_asset('website.assets_editor', options=context), + 'web.assets_common': request.env['ir.qweb']._get_asset_link_urls('web.assets_common', options=context), + 'web.assets_frontend': request.env['ir.qweb']._get_asset_link_urls('web.assets_frontend', options=context), + 'website.assets_editor': request.env['ir.qweb']._get_asset_link_urls('website.assets_editor', options=context), } return True diff --git a/addons/website/static/src/js/widgets/theme.js b/addons/website/static/src/js/widgets/theme.js index d5a2997031d..8f6e8d8c8e9 100644 --- a/addons/website/static/src/js/widgets/theme.js +++ b/addons/website/static/src/js/widgets/theme.js @@ -611,11 +611,17 @@ var ThemeCustomizeDialog = Dialog.extend({ }, }).then(function (bundles) { var $allLinks = $(); - var defs = _.map(bundles, function (bundleContent, bundleName) { - var linkSelector = 'link[href*="' + bundleName + '"]'; - var $links = $(linkSelector); + var defs = _.map(bundles, function (bundleURLs, bundleName) { + var $links = $('link[href*="' + bundleName + '"]'); $allLinks = $allLinks.add($links); - var $newLinks = $(bundleContent).filter(linkSelector); + var $newLinks = $(); + _.each(bundleURLs, function (url) { + $newLinks = $newLinks.add($('', { + type: 'text/css', + rel: 'stylesheet', + href: url, + })); + }); var linksLoaded = new Promise(function (resolve, reject) { var nbLoaded = 0; diff --git a/odoo/addons/base/models/ir_qweb.py b/odoo/addons/base/models/ir_qweb.py index fd0abde26cd..43aa67e6805 100644 --- a/odoo/addons/base/models/ir_qweb.py +++ b/odoo/addons/base/models/ir_qweb.py @@ -307,6 +307,10 @@ class IrQWeb(models.AbstractModel, QWeb): remains = [node for node in remains if (css and node[0] == 'link') or (js and node[0] != 'link')] return remains + asset.to_node(css=css, js=js, debug=debug, async_load=async_load, defer_load=defer_load, lazy_load=lazy_load) + def _get_asset_link_urls(self, xmlid, options): + asset_nodes = self._get_asset_nodes(xmlid, options, js=False) + return [node[1]['href'] for node in asset_nodes if node[0] == 'link'] + @tools.ormcache_context('xmlid', 'options.get("lang", "en_US")', keys=("website_id",)) def _get_asset_content(self, xmlid, options): options = dict(options,