summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGoffin Simon <sig@odoo.com>2020-05-04 10:00:46 +0000
committerGoffin Simon <sig@odoo.com>2020-05-06 08:34:59 +0000
commit57abcab99b3b33596beb912f5bded0d4b3c28429 (patch)
tree59c7089abb65a41eec658bb421c5a7b83efcb9b7
parentaa0444e3de8870df5d536517e6a5f870aba2390f (diff)
[FIX] im_livechat: Traceback on Safari and Chrome mobile
Steps to reproduce the bug: - Install website_livechat - Go to login page on mobile with Safari - Click on "Have a Question?" - Close the chat by clicking on the arrow Bug: A traceback was raised Ref:https://stackoverflow.com/questions/19359326/json-parse-fails-in-safari-when-a-string-value-contains-a-comma opw:2243871 closes odoo/odoo#50715 X-original-commit: 99a5e7c2159f8db3e1ce65f9225f0ce18cc28d70 Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
-rw-r--r--addons/im_livechat/models/im_livechat_channel.py2
-rw-r--r--addons/im_livechat/models/mail_channel.py3
-rw-r--r--addons/website_livechat/tests/test_livechat_basic_flow.py6
3 files changed, 6 insertions, 5 deletions
diff --git a/addons/im_livechat/models/im_livechat_channel.py b/addons/im_livechat/models/im_livechat_channel.py
index f97c26bd6a8..3bfcc6f0836 100644
--- a/addons/im_livechat/models/im_livechat_channel.py
+++ b/addons/im_livechat/models/im_livechat_channel.py
@@ -129,7 +129,7 @@ class ImLivechatChannel(models.Model):
'anonymous_name': False if user_id else anonymous_name,
'country_id': country_id,
'channel_type': 'livechat',
- 'name': ', '.join([visitor_user.display_name if visitor_user else anonymous_name, operator.livechat_username if operator.livechat_username else operator.name]),
+ 'name': ' '.join([visitor_user.display_name if visitor_user else anonymous_name, operator.livechat_username if operator.livechat_username else operator.name]),
'public': 'private',
'email_send': False,
}
diff --git a/addons/im_livechat/models/mail_channel.py b/addons/im_livechat/models/mail_channel.py
index 2a6f5548d66..38ee150bb00 100644
--- a/addons/im_livechat/models/mail_channel.py
+++ b/addons/im_livechat/models/mail_channel.py
@@ -83,7 +83,8 @@ class MailChannel(models.Model):
if channel.channel_type == 'livechat':
# add the operator id
if channel.livechat_operator_id:
- channel_infos_dict[channel.id]['operator_pid'] = channel.livechat_operator_id.with_context(im_livechat_use_username=True).name_get()[0]
+ res = channel.livechat_operator_id.with_context(im_livechat_use_username=True).name_get()[0]
+ channel_infos_dict[channel.id]['operator_pid'] = (res[0], res[1].replace(',', ''))
# add the anonymous or partner name
channel_infos_dict[channel.id]['correspondent_name'] = channel._channel_get_livechat_partner_name()
last_msg = self.env['mail.message'].search([("channel_ids", "in", [channel.id])], limit=1)
diff --git a/addons/website_livechat/tests/test_livechat_basic_flow.py b/addons/website_livechat/tests/test_livechat_basic_flow.py
index 3a03e5db817..ea99c7fff21 100644
--- a/addons/website_livechat/tests/test_livechat_basic_flow.py
+++ b/addons/website_livechat/tests/test_livechat_basic_flow.py
@@ -41,7 +41,7 @@ class TestLivechatBasicFlowHttpCase(tests.HttpCase, TestLivechatCommon):
channel_1 = self.env['mail.channel'].search([('livechat_visitor_id', '=', self.visitor.id), ('livechat_active', '=', True)], limit=1)
# Check Channel naming
- self.assertEqual(channel_1.name, "%s, %s" % (self.visitor.display_name, self.operator.livechat_username))
+ self.assertEqual(channel_1.name, "%s %s" % (self.visitor.display_name, self.operator.livechat_username))
channel_1.unlink()
# Remove livechat_username
@@ -53,7 +53,7 @@ class TestLivechatBasicFlowHttpCase(tests.HttpCase, TestLivechatCommon):
channel_2 = self.env['mail.channel'].search([('livechat_visitor_id', '=', self.visitor.id), ('livechat_active', '=', True)], limit=1)
# Check Channel naming
- self.assertEqual(channel_2.name, "%s, %s" % (self.visitor.display_name, self.operator.name))
+ self.assertEqual(channel_2.name, "%s %s" % (self.visitor.display_name, self.operator.name))
def test_basic_flow_with_rating(self):
channel = self._common_basic_flow()
@@ -86,7 +86,7 @@ class TestLivechatBasicFlowHttpCase(tests.HttpCase, TestLivechatCommon):
# Check Channel and Visitor naming
self.assertEqual(self.visitor.display_name, "%s #%s" % (_("Website Visitor"), self.visitor.id))
- self.assertEqual(channel.name, "%s, %s" % (self.visitor.display_name, self.operator.livechat_username))
+ self.assertEqual(channel.name, "%s %s" % (self.visitor.display_name, self.operator.livechat_username))
# Post Message from visitor
self._send_message(channel, self.visitor.display_name, "Message from Visitor")