diff --git a/addons/bus/static/src/js/services/assets_watchdog_service.js b/addons/bus/static/src/js/services/assets_watchdog_service.js index 2cec026ee20..df11b8de00b 100644 --- a/addons/bus/static/src/js/services/assets_watchdog_service.js +++ b/addons/bus/static/src/js/services/assets_watchdog_service.js @@ -2,24 +2,17 @@ import { browser } from "@web/core/browser/browser"; import { registry } from "@web/core/registry"; +import { session } from "@web/session"; export const assetsWatchdogService = { dependencies: ["notification"], start(env, { notification }) { - const assets = {}; let isNotificationDisplayed = false; let bundleNotifTimerID = null; env.bus.on("WEB_CLIENT_READY", null, async () => { const legacyEnv = owl.Component.env; - - document.querySelectorAll("*[data-asset-bundle]").forEach((el) => { - assets[el.getAttribute("data-asset-bundle")] = el.getAttribute( - "data-asset-version" - ); - }); - legacyEnv.services.bus_service.onNotification(this, onNotification); legacyEnv.services.bus_service.startPolling(); }); @@ -78,7 +71,7 @@ export const assetsWatchdogService = { function onNotification(notifications) { for (const { payload, type } of notifications) { if (type === 'bundle_changed') { - if (payload.name in assets && payload.version !== assets[payload.name]) { + if (payload.server_version !== session.server_version) { displayBundleChangedNotification(); break; } diff --git a/addons/bus/static/tests/assets_watchdog_tests.js b/addons/bus/static/tests/assets_watchdog_tests.js index 82c3c05a66f..4a472cb2342 100644 --- a/addons/bus/static/tests/assets_watchdog_tests.js +++ b/addons/bus/static/tests/assets_watchdog_tests.js @@ -48,10 +48,7 @@ QUnit.module("Bus Assets WatchDog", (hooks) => { return [{ message: { type: 'bundle_changed', - payload: { - name: 'web.assets_backend', - version: 'newHash', - }, + payload: { server_version: "NEW_MAJOR_VERSION" }, }, }]; } diff --git a/addons/bus/tests/test_assetsbundle.py b/addons/bus/tests/test_assetsbundle.py index 12519823264..d520c1b4aff 100644 --- a/addons/bus/tests/test_assetsbundle.py +++ b/addons/bus/tests/test_assetsbundle.py @@ -47,6 +47,5 @@ class BusWebTests(odoo.tests.HttpCase): ) for (channel, message) in sendones: self.assertEqual(channel, 'broadcast') - self.assertEqual(len(message), 2) - self.assertIn(message.get('name'), bundle_xml_ids) - self.assertTrue(isinstance(message.get('name'), str)) + self.assertEqual(len(message), 1) + self.assertTrue(isinstance(message.get('server_version'), str)) diff --git a/odoo/addons/base/models/assetsbundle.py b/odoo/addons/base/models/assetsbundle.py index 28f103854c8..06bdcb911ae 100644 --- a/odoo/addons/base/models/assetsbundle.py +++ b/odoo/addons/base/models/assetsbundle.py @@ -26,6 +26,7 @@ from odoo.modules.module import get_resource_path from odoo.tools import func, misc, transpile_javascript, is_odoo_module, SourceMapGenerator, profiler from odoo.tools.misc import file_open, html_escape as escape from odoo.tools.pycompat import to_text +from odoo.release import version as server_version _logger = logging.getLogger(__name__) @@ -343,8 +344,7 @@ class AssetsBundle(object): # to invite the user to refresh their browser if self.env and 'bus.bus' in self.env and self.name in self.TRACKED_BUNDLES: self.env['bus.bus']._sendone('broadcast', 'bundle_changed', { - 'name': self.name, - 'version': self.version, + 'server_version': server_version }) _logger.debug('Asset Changed: bundle: %s -- version: %s', self.name, self.version)