From 49383b7bf9cb82a90df836f47c5b0076186342df Mon Sep 17 00:00:00 2001 From: Stanley Kao Date: Thu, 13 Jul 2023 16:57:29 +0800 Subject: [PATCH 1/4] multi_livechat: change mail.channel.partner to mail.channel.member --- multi_livechat/models/demo/mail_channel.py | 1 + multi_livechat/models/mail_channel.py | 17 ++++++++++++----- multi_livechat/views/mail_channel_views.xml | 1 + 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/multi_livechat/models/demo/mail_channel.py b/multi_livechat/models/demo/mail_channel.py index a6acb8f4..cc6d9f1a 100644 --- a/multi_livechat/models/demo/mail_channel.py +++ b/multi_livechat/models/demo/mail_channel.py @@ -9,4 +9,5 @@ class MailChannel(models.Model): channel_type = fields.Selection( selection_add=[("multi_livechat_echo_demo", "ECHO (Demo)")], ondelete={"multi_livechat_echo_demo": "cascade"}, + readonly=False, ) diff --git a/multi_livechat/models/mail_channel.py b/multi_livechat/models/mail_channel.py index b718786d..30de6f1c 100644 --- a/multi_livechat/models/mail_channel.py +++ b/multi_livechat/models/mail_channel.py @@ -1,6 +1,11 @@ # Copyright 2021 Ivan Yelizariev # License MIT (https://opensource.org/licenses/MIT). -from odoo import api, fields, models +from odoo import api, fields, models, _ +from odoo.exceptions import UserError, ValidationError + +import logging + +_logger = logging.getLogger(__name__) ODOO_CHANNEL_TYPES = ["chat", "channel", "livechat", "group"] @@ -21,8 +26,8 @@ def _prepare_multi_livechat_channel_vals( ): return { "channel_partner_ids": [(4, pid) for pid in partner_ids], - "public": "groups", - "group_public_id": self.env.ref("base.group_user").id, + # "public": "groups", # V16 dropout public field + "group_public_id": False, # V16 checks contrains with group_public_id self.env.ref("base.group_user").id, "channel_type": channel_type, "name": channel_name, } @@ -30,7 +35,8 @@ def _prepare_multi_livechat_channel_vals( def _compute_is_pinned(self): # TODO: make batch search via read_group for r in self: - r.is_pinned = self.env["mail.channel.partner"].search_count( + # V16 change mail.channel.partner to mail.channel.member + r.is_pinned = self.env["mail.channel.member"].search_count( [ ("partner_id", "=", self.env.user.partner_id.id), ("channel_id", "=", r.id), @@ -41,7 +47,8 @@ def _compute_is_pinned(self): def _inverse_is_pinned(self): # TODO: make batch search via read_group for r in self: - channel_partner = self.env["mail.channel.partner"].search( + # V16 change mail.channel.partner to mail.channel.member + channel_partner = self.env["mail.channel.member"].search( [ ("partner_id", "=", self.env.user.partner_id.id), ("channel_id", "=", r.id), diff --git a/multi_livechat/views/mail_channel_views.xml b/multi_livechat/views/mail_channel_views.xml index 8121e01a..412036fb 100644 --- a/multi_livechat/views/mail_channel_views.xml +++ b/multi_livechat/views/mail_channel_views.xml @@ -9,6 +9,7 @@ + From ceeaefd43c958f240061ce0bad32d398ec39091c Mon Sep 17 00:00:00 2001 From: Stanley Kao Date: Fri, 14 Jul 2023 11:57:52 +0800 Subject: [PATCH 2/4] multi_livechat: remove comments and channel_type as original readonly setting --- multi_livechat/models/demo/mail_channel.py | 1 - multi_livechat/models/mail_channel.py | 4 ---- multi_livechat/views/mail_channel_views.xml | 1 - 3 files changed, 6 deletions(-) diff --git a/multi_livechat/models/demo/mail_channel.py b/multi_livechat/models/demo/mail_channel.py index cc6d9f1a..a6acb8f4 100644 --- a/multi_livechat/models/demo/mail_channel.py +++ b/multi_livechat/models/demo/mail_channel.py @@ -9,5 +9,4 @@ class MailChannel(models.Model): channel_type = fields.Selection( selection_add=[("multi_livechat_echo_demo", "ECHO (Demo)")], ondelete={"multi_livechat_echo_demo": "cascade"}, - readonly=False, ) diff --git a/multi_livechat/models/mail_channel.py b/multi_livechat/models/mail_channel.py index 30de6f1c..469dc8d2 100644 --- a/multi_livechat/models/mail_channel.py +++ b/multi_livechat/models/mail_channel.py @@ -26,8 +26,6 @@ def _prepare_multi_livechat_channel_vals( ): return { "channel_partner_ids": [(4, pid) for pid in partner_ids], - # "public": "groups", # V16 dropout public field - "group_public_id": False, # V16 checks contrains with group_public_id self.env.ref("base.group_user").id, "channel_type": channel_type, "name": channel_name, } @@ -35,7 +33,6 @@ def _prepare_multi_livechat_channel_vals( def _compute_is_pinned(self): # TODO: make batch search via read_group for r in self: - # V16 change mail.channel.partner to mail.channel.member r.is_pinned = self.env["mail.channel.member"].search_count( [ ("partner_id", "=", self.env.user.partner_id.id), @@ -47,7 +44,6 @@ def _compute_is_pinned(self): def _inverse_is_pinned(self): # TODO: make batch search via read_group for r in self: - # V16 change mail.channel.partner to mail.channel.member channel_partner = self.env["mail.channel.member"].search( [ ("partner_id", "=", self.env.user.partner_id.id), diff --git a/multi_livechat/views/mail_channel_views.xml b/multi_livechat/views/mail_channel_views.xml index 412036fb..8121e01a 100644 --- a/multi_livechat/views/mail_channel_views.xml +++ b/multi_livechat/views/mail_channel_views.xml @@ -9,7 +9,6 @@ - From 5b3df8fffdb7bc6e194257d09addcd2697dbadeb Mon Sep 17 00:00:00 2001 From: Stanley Kao Date: Sat, 15 Jul 2023 08:56:49 +0800 Subject: [PATCH 3/4] multi_livechat: remove not used import --- multi_livechat/models/mail_channel.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/multi_livechat/models/mail_channel.py b/multi_livechat/models/mail_channel.py index 469dc8d2..ae27e04e 100644 --- a/multi_livechat/models/mail_channel.py +++ b/multi_livechat/models/mail_channel.py @@ -1,11 +1,6 @@ # Copyright 2021 Ivan Yelizariev # License MIT (https://opensource.org/licenses/MIT). -from odoo import api, fields, models, _ -from odoo.exceptions import UserError, ValidationError - -import logging - -_logger = logging.getLogger(__name__) +from odoo import api, fields, models ODOO_CHANNEL_TYPES = ["chat", "channel", "livechat", "group"] From 9e01763c1f1c883b489e60fa16bfd6b529fab0aa Mon Sep 17 00:00:00 2001 From: Stanley Kao Date: Wed, 20 Sep 2023 10:06:03 +0800 Subject: [PATCH 4/4] multi_livechat: add res_users_settings.js for getting warning message when open the channel --- multi_livechat/__manifest__.py | 1 + .../static/src/demo/models/res_users_settings.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 multi_livechat/static/src/demo/models/res_users_settings.js diff --git a/multi_livechat/__manifest__.py b/multi_livechat/__manifest__.py index 997d7f9c..cec5ab32 100644 --- a/multi_livechat/__manifest__.py +++ b/multi_livechat/__manifest__.py @@ -25,6 +25,7 @@ # demo "multi_livechat/static/src/demo/models/discuss.js", "multi_livechat/static/src/demo/models/discuss_sidebar_category.js", + "multi_livechat/static/src/demo/models/res_users_settings.js", "multi_livechat/static/src/components/discuss_sidebar/discuss_sidebar.xml", ], }, diff --git a/multi_livechat/static/src/demo/models/res_users_settings.js b/multi_livechat/static/src/demo/models/res_users_settings.js new file mode 100644 index 00000000..59c60730 --- /dev/null +++ b/multi_livechat/static/src/demo/models/res_users_settings.js @@ -0,0 +1,16 @@ +/** @odoo-module **/ + +import { registerPatch } from "@mail/model/model_core"; +import { attr } from '@mail/model/model_field'; + +/** + * Mirrors the fields of the python model res.users.settings. + */ +registerPatch({ + name: 'res.users.settings', + fields: { + is_discuss_sidebar_category_line_open: attr({ + default: true, + }), + }, +});