[REM] base, website: remove deprecated code from qweb and bundle
The _get_asset method was deprecated sincedf4072b0b4Last use of this deprecated method was removed withd7da1d648cAlso, remains and to_html were deprecated since9cd982bcc8test_assetsbundle was still using the deprecated method to test.. Closes #33432 Signed-off-by: Romain Derie (rde) <rde@odoo.com>
This commit is contained in:
@@ -34,8 +34,8 @@ class QWeb(models.AbstractModel):
|
||||
'img': 'src',
|
||||
}
|
||||
|
||||
def get_asset_bundle(self, xmlid, files, remains=None, env=None):
|
||||
return AssetsBundleMultiWebsite(xmlid, files, remains=remains, env=env)
|
||||
def get_asset_bundle(self, xmlid, files, env=None):
|
||||
return AssetsBundleMultiWebsite(xmlid, files, env=env)
|
||||
|
||||
def _post_processing_att(self, tagName, atts, options):
|
||||
if atts.get('data-no-post-process'):
|
||||
|
||||
@@ -86,8 +86,7 @@ class AssetsBundle(object):
|
||||
rx_preprocess_imports = re.compile("""(@import\s?['"]([^'"]+)['"](;?))""")
|
||||
rx_css_split = re.compile("\/\*\! ([a-f0-9-]+) \*\/")
|
||||
|
||||
# remains attribute is depreciated and will remove after v11
|
||||
def __init__(self, name, files, remains=None, env=None):
|
||||
def __init__(self, name, files, env=None):
|
||||
self.name = name
|
||||
self.env = request.env if env is None else env
|
||||
self.javascripts = []
|
||||
@@ -110,26 +109,6 @@ class AssetsBundle(object):
|
||||
elif f['atype'] == 'text/javascript':
|
||||
self.javascripts.append(JavascriptAsset(self, url=f['url'], filename=f['filename'], inline=f['content']))
|
||||
|
||||
# depreciated and will remove after v11
|
||||
def to_html(self, sep=None, css=True, js=True, debug=False, async_load=False, defer_load=False, lazy_load=False, url_for=(lambda url: url)):
|
||||
nodes = self.to_node(css=css, js=js, debug=debug, async_load=async_load, defer_load=defer_load, lazy_load=lazy_load)
|
||||
|
||||
if sep is None:
|
||||
sep = u'\n '
|
||||
response = []
|
||||
for tagName, attributes, content in nodes:
|
||||
html = u"<%s " % tagName
|
||||
for name, value in attributes.items():
|
||||
if value or isinstance(value, str):
|
||||
html += u' %s="%s"' % (name, escape(to_text(value)))
|
||||
if content is None:
|
||||
html += u'/>'
|
||||
else:
|
||||
html += u'>%s</%s>' % (escape(to_text(content)), tagName)
|
||||
response.append(html)
|
||||
|
||||
return sep + sep.join(response)
|
||||
|
||||
def to_node(self, css=True, js=True, debug=False, async_load=False, defer_load=False, lazy_load=False):
|
||||
"""
|
||||
:returns [(tagName, attributes, content)] if the tag is auto close
|
||||
@@ -599,19 +578,6 @@ class WebAsset(object):
|
||||
except Exception:
|
||||
raise AssetNotFound("Could not find %s" % self.name)
|
||||
|
||||
# depreciated and will remove after v11
|
||||
def to_html(self):
|
||||
tagName, attributes, content = self.to_node()
|
||||
html = u"<%s " % tagName
|
||||
for name, value in attributes.items():
|
||||
if value or isinstance(value, str):
|
||||
html += u' %s="%s"' % (name, escape(to_text(value)))
|
||||
if content is None:
|
||||
html += u'/>'
|
||||
else:
|
||||
html += u'>%s</%s>' % (escape(to_text(content)), tagName)
|
||||
return html
|
||||
|
||||
def to_node(self):
|
||||
raise NotImplementedError()
|
||||
|
||||
|
||||
@@ -160,7 +160,7 @@ class IrQWeb(models.AbstractModel, QWeb):
|
||||
if len(el):
|
||||
raise SyntaxError("t-call-assets cannot contain children nodes")
|
||||
|
||||
# nodes = self._get_asset(xmlid, options, css=css, js=js, debug=values.get('debug'), async=async, values=values)
|
||||
# nodes = self._get_asset_nodes(xmlid, options, css=css, js=js, debug=values.get('debug'), async=async, values=values)
|
||||
#
|
||||
# for index, (tagName, t_attrs, content) in enumerate(nodes):
|
||||
# if index:
|
||||
@@ -282,18 +282,8 @@ class IrQWeb(models.AbstractModel, QWeb):
|
||||
|
||||
# method called by computing code
|
||||
|
||||
def get_asset_bundle(self, xmlid, files, remains=None, env=None):
|
||||
return AssetsBundle(xmlid, files, remains=remains, env=env)
|
||||
|
||||
# compatibility to remove after v11 - DEPRECATED
|
||||
@tools.conditional(
|
||||
'xml' not in tools.config['dev_mode'],
|
||||
tools.ormcache_context('xmlid', 'options.get("lang", "en_US")', 'css', 'js', 'debug', 'async_load', 'defer_load', 'lazy_load', keys=("website_id",)),
|
||||
)
|
||||
def _get_asset(self, xmlid, options, css=True, js=True, debug=False, async_load=False, defer_load=False, lazy_load=False, values=None):
|
||||
files, remains = self._get_asset_content(xmlid, options)
|
||||
asset = self.get_asset_bundle(xmlid, files, remains, env=self.env)
|
||||
return asset.to_html(css=css, js=js, debug=debug, async_load=async_load, defer_load=defer_load, lazy_load=lazy_load, url_for=(values or {}).get('url_for', lambda url: url))
|
||||
def get_asset_bundle(self, xmlid, files, env=None):
|
||||
return AssetsBundle(xmlid, files, env=env)
|
||||
|
||||
@tools.conditional(
|
||||
# in non-xml-debug mode we want assets to be cached forever, and the admin can force a cache clear
|
||||
|
||||
@@ -50,6 +50,13 @@ class TestJavascriptAssetsBundle(TransactionCase):
|
||||
domain = [('url', '=like', url)]
|
||||
return self.env['ir.attachment'].search(domain)
|
||||
|
||||
def _node_to_list(self, nodes):
|
||||
res = []
|
||||
for index, (tagName, t_attrs, content) in enumerate(nodes):
|
||||
for name, value in t_attrs.items():
|
||||
res.append(value)
|
||||
return res
|
||||
|
||||
def test_01_generation(self):
|
||||
""" Checks that a bundle creates an ir.attachment record when its `js` method is called
|
||||
for the first time.
|
||||
@@ -154,7 +161,8 @@ class TestJavascriptAssetsBundle(TransactionCase):
|
||||
""" Checks that a bundle rendered in debug mode outputs non-minified assets.
|
||||
"""
|
||||
debug_bundle = self._get_asset(self.jsbundle_xmlid)
|
||||
content = debug_bundle.to_html(debug='assets')
|
||||
nodes = debug_bundle.to_node(debug='assets')
|
||||
content = self._node_to_list(nodes)
|
||||
# find back one of the original asset file
|
||||
self.assertIn('/test_assetsbundle/static/src/js/test_jsfile1.js', content)
|
||||
|
||||
@@ -234,7 +242,8 @@ class TestJavascriptAssetsBundle(TransactionCase):
|
||||
""" Check that a bundle in debug mode outputs non-minified assets.
|
||||
"""
|
||||
debug_bundle = self._get_asset(self.cssbundle_xmlid)
|
||||
content = debug_bundle.to_html(debug='assets')
|
||||
nodes = debug_bundle.to_node(debug='assets')
|
||||
content = self._node_to_list(nodes)
|
||||
# find back one of the original asset file
|
||||
self.assertIn('/test_assetsbundle/static/src/css/test_cssfile1.css', content)
|
||||
|
||||
@@ -256,8 +265,9 @@ class TestJavascriptAssetsBundle(TransactionCase):
|
||||
self.assertEquals(ira0.store_fname, ira1.store_fname)
|
||||
|
||||
# the ir.attachment records should be deduplicated in the bundle's content
|
||||
content = bundle0.to_html()
|
||||
self.assertEqual(content.count('test_assetsbundle.bundle2.css'), 1)
|
||||
nodes = bundle0.to_node()
|
||||
content = self._node_to_list(nodes)
|
||||
self.assertEqual(content[2].count('test_assetsbundle.bundle2.css'), 1)
|
||||
|
||||
# Language direction specific tests
|
||||
|
||||
@@ -448,7 +458,8 @@ class TestJavascriptAssetsBundle(TransactionCase):
|
||||
""" Checks that a bundle rendered in debug mode(assets) with right to left language direction stores css files in assets bundle.
|
||||
"""
|
||||
debug_bundle = self._get_asset(self.cssbundle_xmlid, env=self.env(context={'lang': 'ar_SY'}))
|
||||
content = debug_bundle.to_html(debug='assets')
|
||||
nodes = debug_bundle.to_node(debug='assets')
|
||||
content = self._node_to_list(nodes)
|
||||
|
||||
# css file should be available in assets bundle as user's lang direction is rtl
|
||||
self.assertIn('/test_assetsbundle/static/src/css/test_cssfile1/rtl/{0}.css'.format(self.cssbundle_xmlid), content)
|
||||
@@ -562,11 +573,11 @@ class TestAssetsBundleWithIRAMock(TransactionCase):
|
||||
|
||||
def _get_asset(self):
|
||||
files, remains = self.env['ir.qweb']._get_asset_content(self.stylebundle_xmlid, {})
|
||||
return AssetsBundle(self.stylebundle_xmlid, files, remains, env=self.env)
|
||||
return AssetsBundle(self.stylebundle_xmlid, files, env=self.env)
|
||||
|
||||
def _bundle(self, asset, should_create, should_unlink):
|
||||
self.counter.clear()
|
||||
asset.to_html(debug='assets')
|
||||
asset.to_node(debug='assets')
|
||||
self.assertEquals(self.counter['create'], int(should_create))
|
||||
self.assertEquals(self.counter['unlink'], int(should_unlink))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user