Skip to content

Commit ea7604a

Browse files
committed
[IMP] mail: remove fallback on getCurrentLocalStorageVersion
1 parent a186b9e commit ea7604a

File tree

5 files changed

+30
-16
lines changed

5 files changed

+30
-16
lines changed

addons/im_livechat/models/im_livechat_channel.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import re
77
from urllib.parse import urlparse
88

9+
import odoo
910
from odoo import api, Command, fields, models, _
1011
from odoo.exceptions import AccessError, ValidationError
1112
from odoo.fields import Domain
@@ -577,13 +578,17 @@ def _get_channel_infos(self):
577578

578579
def get_livechat_info(self, username=None):
579580
self.ensure_one()
580-
581+
version_info = odoo.service.common.exp_version()
581582
if username is None:
582583
username = _('Visitor')
583584
info = {}
584585
info['available'] = self._is_livechat_available()
585586
info['server_url'] = self.get_base_url()
586-
info["websocket_worker_version"] = WebsocketConnectionHandler._VERSION
587+
info["session_info"] = {
588+
"server_version": version_info.get('server_version'),
589+
"server_version_info": version_info.get('server_version_info'),
590+
"websocket_worker_version": WebsocketConnectionHandler._VERSION,
591+
}
587592
if info['available']:
588593
info['options'] = self._get_channel_infos()
589594
info['options']["default_username"] = username

addons/im_livechat/views/im_livechat_channel_templates.xml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,8 @@
9898
if (!window.odoo) {
9999
window.odoo = {};
100100
}
101-
odoo.__session_info__ = odoo.__session_info__ || {
102-
websocket_worker_version: <t t-out="json.dumps(info.get('websocket_worker_version', ''))"/>
103-
}
104-
odoo.__session_info__ = Object.assign(odoo.__session_info__, {
101+
odoo.__session_info__ = Object.assign(odoo.__session_info__ || {}, {
102+
...<t t-out="json.dumps(info.get('session_info', {}))"/>,
105103
livechatData: {
106104
can_load_livechat: <t t-out="'true' if info['available'] else 'false'"/>,
107105
serverUrl: "<t t-out="info['server_url']"/>",

addons/mail/static/src/utils/common/local_storage.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,15 @@ const LOCAL_STORAGE_SUBVERSION = 0;
1010
*/
1111

1212
export function getCurrentLocalStorageVersion() {
13-
const [major, minor] = session.server_version_info ?? "1.0";
14-
return [major, minor, LOCAL_STORAGE_SUBVERSION].join(".");
13+
try {
14+
const [major, minor] = session.server_version_info;
15+
return [major, minor, LOCAL_STORAGE_SUBVERSION].join(".");
16+
} catch (err) {
17+
console.warn(
18+
"Could not parse server_version_info from session (probably missing). Please provide it!"
19+
);
20+
throw err;
21+
}
1522
}
1623

1724
/**
@@ -61,6 +68,6 @@ export function parseRawValue(rawValue) {
6168
try {
6269
return JSON.parse(rawValue);
6370
} catch {
64-
// noop
71+
return undefined;
6572
}
6673
}

addons/web/controllers/webclient.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,14 @@ def version_info(self):
9191

9292
@http.route('/web/tests', type='http', auth='user', readonly=True)
9393
def unit_tests_suite(self, mod=None, **kwargs):
94-
return request.render('web.unit_tests_suite', {'session_info': {'view_info': request.env['ir.ui.view'].get_view_info()}})
94+
version_info = odoo.service.common.exp_version()
95+
return request.render('web.unit_tests_suite', {
96+
'session_info': {
97+
"server_version": version_info.get('server_version'),
98+
"server_version_info": version_info.get('server_version_info'),
99+
'view_info': request.env['ir.ui.view'].get_view_info()
100+
},
101+
})
95102

96103
@http.route('/web/tests/legacy', type='http', auth='user', readonly=True)
97104
def test_suite(self, mod=None, **kwargs):

addons/web/models/ir_http.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ def session_info(self):
170170
def get_frontend_session_info(self):
171171
user = self.env.user
172172
session_uid = request.session.uid
173+
version_info = odoo.service.common.exp_version()
173174
session_info = {
174175
'is_admin': user._is_admin() if session_uid else False,
175176
'is_system': user._is_system() if session_uid else False,
@@ -188,16 +189,12 @@ def get_frontend_session_info(self):
188189
'bundle_params': {
189190
'lang': request.session.context['lang'],
190191
},
192+
'server_version': version_info.get('server_version'),
193+
'server_version_info': version_info.get('server_version_info'),
191194
'test_mode': config['test_enable'],
192195
}
193196
if request.session.debug:
194197
session_info['bundle_params']['debug'] = request.session.debug
195-
if session_uid:
196-
version_info = odoo.service.common.exp_version()
197-
session_info.update({
198-
'server_version': version_info.get('server_version'),
199-
'server_version_info': version_info.get('server_version_info')
200-
})
201198
return session_info
202199

203200
@api.deprecated("Deprecated since 19.0, use get_all_currencies on 'res.currency'")

0 commit comments

Comments
 (0)