[FIX] base: remove options parameters
Regarding previous commit, the option parameter can be removed from _get_asset_content api, followed by a nice snowball effect. Part-of: odoo/odoo#75248
This commit is contained in:
@@ -17,7 +17,7 @@ class LivechatController(http.Controller):
|
||||
def livechat_lib(self, ext, **kwargs):
|
||||
# _get_asset return the bundle html code (script and link list) but we want to use the attachment content
|
||||
bundle = 'im_livechat.external_lib'
|
||||
files, _ = request.env["ir.qweb"]._get_asset_content(bundle, options=request.context)
|
||||
files, _ = request.env["ir.qweb"]._get_asset_content(bundle)
|
||||
asset = AssetsBundle(bundle, files)
|
||||
|
||||
mock_attachment = getattr(asset, ext)()
|
||||
|
||||
@@ -31,7 +31,7 @@ class TestAssetsGenerateTimeCommon(odoo.tests.TransactionCase):
|
||||
start_t = time.time()
|
||||
css = assets_type == 'css'
|
||||
js = assets_type == 'js'
|
||||
self.env['ir.qweb']._generate_asset_nodes(bundle, options={}, css=css, js=js)
|
||||
self.env['ir.qweb']._generate_asset_nodes(bundle, css=css, js=js)
|
||||
yield (f'{bundle}.{assets_type}', time.time() - start_t)
|
||||
except ValueError:
|
||||
_logger.info('Error detected while generating bundle %r %s', bundle, assets_type)
|
||||
|
||||
@@ -24,7 +24,7 @@ class WebSuite(odoo.tests.HttpCase):
|
||||
# redefinied it as a minimal proxy template.
|
||||
self.env.ref('web.layout').write({'arch_db': '<t t-name="web.layout"><head><meta charset="utf-8"/><t t-esc="head"/></head></t>'})
|
||||
|
||||
assets = self.env['ir.qweb']._get_asset_content(suite, options={})[0]
|
||||
assets = self.env['ir.qweb']._get_asset_content(suite)[0]
|
||||
if len(assets) == 0:
|
||||
self.fail("No assets found in the given test suite")
|
||||
|
||||
|
||||
@@ -367,7 +367,7 @@ class Web_Editor(http.Controller):
|
||||
|
||||
# Loop through bundle files to search for file info
|
||||
files_data = []
|
||||
for file_info in request.env["ir.qweb"]._get_asset_content(asset_name, {})[0]:
|
||||
for file_info in request.env["ir.qweb"]._get_asset_content(asset_name)[0]:
|
||||
if file_info["atype"] != resources_type_info['mimetype']:
|
||||
continue
|
||||
url = file_info["url"]
|
||||
@@ -557,7 +557,7 @@ class Web_Editor(http.Controller):
|
||||
if re.match('^o-color-([1-5])$', css_color_value):
|
||||
if not bundle_css:
|
||||
bundle = 'web.assets_frontend'
|
||||
files, _ = request.env["ir.qweb"]._get_asset_content(bundle, options=request.context)
|
||||
files, _ = request.env["ir.qweb"]._get_asset_content(bundle)
|
||||
asset = AssetsBundle(bundle, files)
|
||||
bundle_css = asset.css().index_content
|
||||
color_search = re.search(r'(?i)--%s:\s+(%s|%s)' % (css_color_value, regex_hex, regex_rgba), bundle_css)
|
||||
|
||||
@@ -526,11 +526,10 @@ class Website(Home):
|
||||
"""
|
||||
Reloads asset bundles and returns their unique URLs.
|
||||
"""
|
||||
context = dict(request.context)
|
||||
return {
|
||||
'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),
|
||||
'web.assets_common': request.env['ir.qweb']._get_asset_link_urls('web.assets_common'),
|
||||
'web.assets_frontend': request.env['ir.qweb']._get_asset_link_urls('web.assets_frontend'),
|
||||
'website.assets_editor': request.env['ir.qweb']._get_asset_link_urls('website.assets_editor'),
|
||||
}
|
||||
|
||||
@http.route(['/website/make_scss_custo'], type='json', auth='user', website=True)
|
||||
|
||||
@@ -192,7 +192,7 @@ class IrQWeb(models.AbstractModel, QWeb):
|
||||
|
||||
code = self._flushText(options, indent)
|
||||
code.append(self._indent(dedent("""
|
||||
t_call_assets_nodes = self._get_asset_nodes(%(xmlid)s, compile_options, css=%(css)s, js=%(js)s, debug=values.get("debug"), async_load=%(async_load)s, defer_load=%(defer_load)s, lazy_load=%(lazy_load)s, media=%(media)s)
|
||||
t_call_assets_nodes = self._get_asset_nodes(%(xmlid)s, css=%(css)s, js=%(js)s, debug=values.get("debug"), async_load=%(async_load)s, defer_load=%(defer_load)s, lazy_load=%(lazy_load)s, media=%(media)s)
|
||||
for index, (tagName, attrs, content) in enumerate(t_call_assets_nodes):
|
||||
if index:
|
||||
yield '\\n '
|
||||
@@ -227,42 +227,42 @@ class IrQWeb(models.AbstractModel, QWeb):
|
||||
def get_asset_bundle(self, bundle_name, files, env=None, css=True, js=True):
|
||||
return AssetsBundle(bundle_name, files, env=env, css=css, js=js)
|
||||
|
||||
def _get_asset_nodes(self, bundle, options, css=True, js=True, debug=False, async_load=False, defer_load=False, lazy_load=False, media=None):
|
||||
def _get_asset_nodes(self, bundle, css=True, js=True, debug=False, async_load=False, defer_load=False, lazy_load=False, media=None):
|
||||
"""Generates asset nodes.
|
||||
If debug=assets, the assets will be regenerated when a file which composes them has been modified.
|
||||
Else, the assets will be generated only once and then stored in cache.
|
||||
"""
|
||||
if debug and 'assets' in debug:
|
||||
return self._generate_asset_nodes(bundle, options, css, js, debug, async_load, defer_load, lazy_load, media)
|
||||
return self._generate_asset_nodes(bundle, css, js, debug, async_load, defer_load, lazy_load, media)
|
||||
else:
|
||||
return self._generate_asset_nodes_cache(bundle, options, css, js, debug, async_load, defer_load, lazy_load, media)
|
||||
return self._generate_asset_nodes_cache(bundle, css, js, debug, async_load, defer_load, lazy_load, media)
|
||||
|
||||
@tools.conditional(
|
||||
# in non-xml-debug mode we want assets to be cached forever, and the admin can force a cache clear
|
||||
# by restarting the server after updating the source code (or using the "Clear server cache" in debug tools)
|
||||
'xml' not in tools.config['dev_mode'],
|
||||
tools.ormcache_context('bundle', 'options.get("lang", "en_US")', 'css', 'js', 'debug', 'async_load', 'defer_load', 'lazy_load', keys=("website_id",)),
|
||||
tools.ormcache_context('bundle', 'css', 'js', 'debug', 'async_load', 'defer_load', 'lazy_load', keys=("website_id", "lang")),
|
||||
)
|
||||
def _generate_asset_nodes_cache(self, bundle, options, css=True, js=True, debug=False, async_load=False, defer_load=False, lazy_load=False, media=None):
|
||||
return self._generate_asset_nodes(bundle, options, css, js, debug, async_load, defer_load, lazy_load, media)
|
||||
def _generate_asset_nodes_cache(self, bundle, css=True, js=True, debug=False, async_load=False, defer_load=False, lazy_load=False, media=None):
|
||||
return self._generate_asset_nodes(bundle, css, js, debug, async_load, defer_load, lazy_load, media)
|
||||
|
||||
def _generate_asset_nodes(self, bundle, options, css=True, js=True, debug=False, async_load=False, defer_load=False, lazy_load=False, media=None):
|
||||
def _generate_asset_nodes(self, bundle, css=True, js=True, debug=False, async_load=False, defer_load=False, lazy_load=False, media=None):
|
||||
nodeAttrs = None
|
||||
if css and media:
|
||||
nodeAttrs = {
|
||||
'media': media,
|
||||
}
|
||||
files, remains = self._get_asset_content(bundle, options, nodeAttrs)
|
||||
files, remains = self._get_asset_content(bundle, nodeAttrs)
|
||||
asset = self.get_asset_bundle(bundle, files, env=self.env, css=css, js=js)
|
||||
remains = [node for node in remains if (css and node[0] == 'link') or (js and node[0] == 'script')]
|
||||
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, bundle, options):
|
||||
asset_nodes = self._get_asset_nodes(bundle, options, js=False)
|
||||
def _get_asset_link_urls(self, bundle):
|
||||
asset_nodes = self._get_asset_nodes(bundle, js=False)
|
||||
return [node[1]['href'] for node in asset_nodes if node[0] == 'link']
|
||||
|
||||
@tools.ormcache_context('bundle', 'options.get("lang", "en_US")', keys=("website_id",))
|
||||
def _get_asset_content(self, bundle, options, nodeAttrs=None):
|
||||
@tools.ormcache_context('bundle', keys=("website_id", "lang"))
|
||||
def _get_asset_content(self, bundle, nodeAttrs=None):
|
||||
asset_paths = self.env['ir.asset']._get_asset_paths(bundle=bundle, css=True, js=True)
|
||||
|
||||
files = []
|
||||
|
||||
@@ -127,7 +127,7 @@ class TestJavascriptAssetsBundle(FileTouchable):
|
||||
|
||||
def _get_asset(self, bundle, env=None):
|
||||
env = (env or self.env)
|
||||
files, _ = env['ir.qweb']._get_asset_content(bundle, env.context)
|
||||
files, _ = env['ir.qweb']._get_asset_content(bundle)
|
||||
return AssetsBundle(bundle, files, env=env)
|
||||
|
||||
def _any_ira_for_bundle(self, extension, lang=None):
|
||||
@@ -764,7 +764,7 @@ class TestAssetsBundleWithIRAMock(FileTouchable):
|
||||
self.patch(IrAttachment, 'unlink', unlink)
|
||||
|
||||
def _get_asset(self):
|
||||
files, _ = self.env['ir.qweb']._get_asset_content(self.stylebundle_name, {})
|
||||
files, _ = self.env['ir.qweb']._get_asset_content(self.stylebundle_name)
|
||||
return AssetsBundle(self.stylebundle_name, files, env=self.env)
|
||||
|
||||
def _bundle(self, asset, should_create, should_unlink):
|
||||
|
||||
Reference in New Issue
Block a user