summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Ledoux <dle@odoo.com>2018-06-22 15:23:53 +0200
committerDenis Ledoux <dle@odoo.com>2018-06-22 15:36:28 +0200
commit6edf49e36f09c01c61a1dbdb878c5faabf0aef3f (patch)
tree98a7d9675146455c9fd8744a866d57c04089a02a
parentcb047ae69def37ebc9208454b73ebd0ac77609ef (diff)
[IMP] ir_qweb: provide a clean way to ovverride the AssetsBundle to use
This revision follows revisions - 9cd982bcc811cacb42f5c08db139043d2734b891 - df4072b0b493000ccfa4e453d785bcea27659e5c We noticed modules implementing multi-websites features override `_get_asset` to be able to provide their own overriden `AssetsBunble` class. Private methods are meant for internal usage of the code/module, overriding is never a good idea given the fact their signature can change. As this is the case in commit 9cd982bcc811cacb42f5c08db139043d2734b891. That said, we understand their was no other way to go. We therefore decide to provide one, by adding a method that can be overriden to pass their own AssetsBunble class instance. opw-1860136
-rw-r--r--odoo/addons/base/ir/ir_qweb/ir_qweb.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/odoo/addons/base/ir/ir_qweb/ir_qweb.py b/odoo/addons/base/ir/ir_qweb/ir_qweb.py
index 084ed7e5ae9..105c12f7b08 100644
--- a/odoo/addons/base/ir/ir_qweb/ir_qweb.py
+++ b/odoo/addons/base/ir/ir_qweb/ir_qweb.py
@@ -286,6 +286,9 @@ 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'],
@@ -293,7 +296,7 @@ class IrQWeb(models.AbstractModel, QWeb):
)
def _get_asset(self, xmlid, options, css=True, js=True, debug=False, async=False, values=None):
files, remains = self._get_asset_content(xmlid, options)
- asset = AssetsBundle(xmlid, files, remains, env=self.env)
+ asset = self.get_asset_bundle(xmlid, files, remains, env=self.env)
return asset.to_html(css=css, js=js, debug=debug, async=async, url_for=(values or {}).get('url_for', lambda url: url))
@tools.conditional(
@@ -304,7 +307,7 @@ class IrQWeb(models.AbstractModel, QWeb):
)
def _get_asset_nodes(self, xmlid, options, css=True, js=True, debug=False, async=False, values=None):
files, remains = self._get_asset_content(xmlid, options)
- asset = AssetsBundle(xmlid, files, env=self.env)
+ asset = self.get_asset_bundle(xmlid, files, env=self.env)
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=async)