[FIX] im_livechat: fix session demo data

This PR fixes some issues present in the livechat demo data:
- anonymous name should be given to the channel, and should be the
name of the visitor not the one of the channel.
- odoobot should not be a member of the channel (done by default
when creating a channel but making those channels that are supposed
to be one-to-one channels a group channel)

At the same time, this PR fixes an issue with the thread model that
contained clear commands instead of null value.

part of task-3332872

closes odoo/odoo#126219

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
This commit is contained in:
tsm-odoo
2023-06-26 20:01:15 +02:00
parent dc77bee17e
commit 18dda9ddb4
15 changed files with 19 additions and 13 deletions
@@ -6,7 +6,7 @@
<field name="livechat_channel_id" ref="im_livechat_channel_data"/>
<field name="livechat_operator_id" ref="base.partner_admin"/>
<field name="name">Visitor #234, Mitchell Admin</field>
<field name="anonymous_name">Visitor #234, Mitchell Admin</field>
<field name="anonymous_name">Visitor #234</field>
</record>
<record id="im_livechat.livechat_channel_session_1_member_admin" model="discuss.channel.member">
<field name="partner_id" ref="base.partner_admin"/>
@@ -7,6 +7,7 @@
<field name="livechat_channel_id" ref="im_livechat.im_livechat_channel_data"/>
<field name="create_date" eval="datetime.now() - timedelta(days=1)"/>
<field name="channel_type">livechat</field>
<field name="anonymous_name">Visitor</field>
<field name="country_id" ref="base.be"/>
</record>
<record id="im_livechat.livechat_channel_session_10_member_admin" model="discuss.channel.member">
@@ -7,6 +7,7 @@
<field name="livechat_channel_id" ref="im_livechat.im_livechat_channel_data"/>
<field name="create_date" eval="datetime.now()"/>
<field name="channel_type">livechat</field>
<field name="anonymous_name">Visitor</field>
<field name="country_id" ref="base.us"/>
</record>
<record id="im_livechat.livechat_channel_session_11_member_admin" model="discuss.channel.member">
@@ -6,7 +6,7 @@
<field name="livechat_channel_id" ref="im_livechat_channel_data"/>
<field name="livechat_operator_id" ref="base.partner_demo"/>
<field name="name">Visitor #323, Marc Demo</field>
<field name="anonymous_name">Visitor #323, Marc Demo</field>
<field name="anonymous_name">Visitor #323</field>
</record>
<record id="im_livechat.livechat_channel_session_2_member_demo" model="discuss.channel.member">
<field name="partner_id" ref="base.partner_demo"/>
@@ -6,7 +6,7 @@
<field name="livechat_channel_id" ref="im_livechat_channel_data"/>
<field name="livechat_operator_id" ref="base.partner_admin"/>
<field name="name">Joel Willis, Mitchell Admin</field>
<field name="anonymous_name">Joel Willis, Mitchell Admin</field>
<field name="anonymous_name">Joel Willis</field>
</record>
<record id="im_livechat.livechat_channel_session_3_member_admin" model="discuss.channel.member">
<field name="partner_id" ref="base.partner_admin"/>
@@ -6,7 +6,7 @@
<field name="livechat_channel_id" ref="im_livechat_channel_data"/>
<field name="livechat_operator_id" ref="base.partner_demo"/>
<field name="name">Joel Willis, Marc Demo</field>
<field name="anonymous_name">Joel Willis, Marc Demo</field>
<field name="anonymous_name">Joel Willis</field>
</record>
<record id="im_livechat.livechat_channel_session_4_member_demo" model="discuss.channel.member">
<field name="partner_id" ref="base.partner_demo"/>
@@ -6,7 +6,7 @@
<field name="livechat_channel_id" ref="im_livechat_channel_data"/>
<field name="livechat_operator_id" ref="base.partner_admin"/>
<field name="name">Visitor #532, Mitchell Admin</field>
<field name="anonymous_name">Visitor #532, Mitchell Admin</field>
<field name="anonymous_name">Visitor #532</field>
</record>
<record id="im_livechat.livechat_channel_session_5_member_admin" model="discuss.channel.member">
<field name="partner_id" ref="base.partner_admin"/>
@@ -6,7 +6,7 @@
<field name="livechat_channel_id" ref="im_livechat_channel_data"/>
<field name="livechat_operator_id" ref="base.partner_admin"/>
<field name="name">Visitor #649, Mitchell Admin</field>
<field name="anonymous_name">Visitor #649, Mitchell Admin</field>
<field name="anonymous_name">Visitor #649</field>
</record>
<record id="im_livechat.livechat_channel_session_6_member_admin" model="discuss.channel.member">
<field name="partner_id" ref="base.partner_admin"/>
@@ -6,7 +6,7 @@
<field name="livechat_channel_id" ref="im_livechat_channel_data"/>
<field name="livechat_operator_id" ref="base.partner_admin"/>
<field name="name">Joel Willis, Mitchell Admin</field>
<field name="anonymous_name">Joel Willis, Mitchell Admin</field>
<field name="anonymous_name">Joel Willis</field>
</record>
<record id="im_livechat.livechat_channel_session_7_member_admin" model="discuss.channel.member">
<field name="partner_id" ref="base.partner_admin"/>
@@ -6,7 +6,7 @@
<field name="livechat_channel_id" ref="im_livechat_channel_data"/>
<field name="livechat_operator_id" ref="base.partner_demo"/>
<field name="name">Visitor #722, Marc Demo</field>
<field name="anonymous_name">Visitor #722, Marc Demo</field>
<field name="anonymous_name">Visitor #722</field>
</record>
<record id="im_livechat.livechat_channel_session_8_member_demo" model="discuss.channel.member">
<field name="partner_id" ref="base.partner_demo"/>
@@ -7,6 +7,7 @@
<field name="livechat_channel_id" ref="im_livechat.im_livechat_channel_data"/>
<field name="create_date" eval="datetime.now() - timedelta(days=1)"/>
<field name="channel_type">livechat</field>
<field name="anonymous_name">Visitor</field>
</record>
<record id="im_livechat.livechat_channel_session_9_member_admin" model="discuss.channel.member">
<field name="partner_id" ref="base.partner_admin"/>
@@ -36,8 +36,8 @@ patch(Thread.prototype, "im_livechat", {
if (!this.correspondent.is_public && this.correspondent.country) {
return `${this.getMemberName(this.correspondent)} (${this.correspondent.country.name})`;
}
if (this.anonymous_country) {
return `${this.getMemberName(this.correspondent)} (${this.anonymous_country.name})`;
if (this.channel?.anonymous_country) {
return `${this.getMemberName(this.correspondent)} (${this.channel.anonymous_country.name})`;
}
return this.getMemberName(this.correspondent);
},
@@ -237,9 +237,11 @@ class Channel(models.Model):
raise ValidationError(_('Invalid value when creating a channel with memberships, only 0 is allowed.'))
membership_pids = [cmd[2]['partner_id'] for cmd in membership_ids_cmd if cmd[0] == 0]
partner_ids_to_add = partner_ids
# always add current user to new channel to have right values for
# is_pinned + ensure they have rights to see channel
partner_ids_to_add = list(set(partner_ids + [self.env.user.partner_id.id]))
if not self.env.context.get('install_mode'):
partner_ids_to_add = list(set(partner_ids + [self.env.user.partner_id.id]))
vals['channel_member_ids'] = membership_ids_cmd + [
(0, 0, {'partner_id': pid})
for pid in partner_ids_to_add if pid not in membership_pids
@@ -10,7 +10,7 @@ import {
replaceArrayWithCompare,
} from "@mail/utils/common/arrays";
import { prettifyMessageContent } from "@mail/utils/common/format";
import { assignDefined, createLocalId, onChange } from "@mail/utils/common/misc";
import { assignDefined, createLocalId, onChange, nullifyClearCommands } from "@mail/utils/common/misc";
import { markup } from "@odoo/owl";
@@ -692,6 +692,7 @@ export class ThreadService {
}
thread.lastServerMessageId = serverData.last_message_id ?? thread.lastServerMessageId;
if (thread.model === "discuss.channel" && serverData.channel) {
nullifyClearCommands(serverData.channel);
thread.channel = assignDefined(thread.channel ?? {}, serverData.channel);
}
@@ -142,7 +142,7 @@ class TestDiscussFullPerformance(TransactionCase):
}], key=lambda member_data: member_data['id']))],
'custom_channel_name': False,
'id': self.channel_general.id,
'memberCount': len(self.group_user.users | self.user_root),
'memberCount': len(self.group_user.users),
'message_unread_counter': 5,
},
'create_uid': self.user_root.id,