From a8c73f285fda992c434f03f6ee82267b17100714 Mon Sep 17 00:00:00 2001 From: "Louis Wicket (wil)" Date: Thu, 18 Aug 2022 08:03:24 +0000 Subject: [PATCH] [IMP] mail, rating: turn computes and relateds readonly by default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatically add readonly on computed and related fields. This commit required to rewrite some preexisting fields to make them readonly. Task-2955927. closes odoo/odoo#98541 Related: odoo/enterprise#30625 Signed-off-by: Sébastien Theys (seb) --- addons/mail/models/mail_channel.py | 16 +++-- .../static/src/components/discuss/discuss.xml | 2 +- .../discuss_container/discuss_container.js | 2 +- .../discuss_mobile_mailbox_selection_item.xml | 2 +- .../discuss_sidebar_mailbox.xml | 4 +- addons/mail/static/src/model/model_field.js | 10 +++ addons/mail/static/src/model/model_manager.js | 24 ++++--- ...activity_mark_done_popover_content_view.js | 1 - addons/mail/static/src/models/attachment.js | 1 - .../static/src/models/attachment_box_view.js | 1 - .../models/attachment_delete_confirm_view.js | 1 - .../src/models/call_participant_video_view.js | 1 - addons/mail/static/src/models/call_view.js | 1 - addons/mail/static/src/models/channel.js | 8 +-- .../src/models/channel_invitation_form.js | 1 - ...invitation_form_selectable_partner_view.js | 1 - .../src/models/channel_member_list_view.js | 1 - .../static/src/models/channel_member_view.js | 1 - addons/mail/static/src/models/chat_window.js | 1 - .../static/src/models/chat_window_manager.js | 36 ++++------ addons/mail/static/src/models/chatter.js | 3 +- addons/mail/static/src/models/clock.js | 21 ++---- addons/mail/static/src/models/composer.js | 39 ++++++----- .../models/composer_suggestion_list_view.js | 14 ++-- .../src/models/composer_suggestion_view.js | 4 +- .../mail/static/src/models/composer_view.js | 61 +++++++--------- .../src/models/delete_message_confirm_view.js | 2 - addons/mail/static/src/models/dialog.js | 2 - addons/mail/static/src/models/discuss.js | 69 ++++++++----------- .../static/src/models/discuss_public_view.js | 1 - .../src/models/discuss_sidebar_category.js | 4 +- .../models/discuss_sidebar_category_item.js | 4 +- .../models/discuss_sidebar_mailbox_view.js | 1 - addons/mail/static/src/models/discuss_view.js | 6 +- addons/mail/static/src/models/emoji.js | 1 - .../mail/static/src/models/emoji_grid_view.js | 1 - .../mail/static/src/models/file_uploader.js | 1 - .../mail/static/src/models/message_action.js | 3 - .../static/src/models/message_action_list.js | 3 - addons/mail/static/src/models/message_view.js | 7 +- addons/mail/static/src/models/messaging.js | 21 ++---- .../models/messaging_notification_handler.js | 2 +- .../models/mobile_messaging_navbar_view.js | 2 +- .../src/models/notification_request_view.js | 1 - addons/mail/static/src/models/partner.js | 16 +++-- addons/mail/static/src/models/persona.js | 2 - .../src/models/persona_im_status_icon_view.js | 1 - addons/mail/static/src/models/popover_view.js | 4 -- addons/mail/static/src/models/thread.js | 28 +++----- addons/mail/static/src/models/thread_cache.js | 18 ++--- .../models/thread_needaction_preview_view.js | 4 -- .../static/src/models/thread_preview_view.js | 4 -- addons/mail/static/src/models/thread_view.js | 7 +- .../static/src/models/thread_view_topbar.js | 2 - addons/mail/static/src/models/throttle.js | 1 - addons/mail/static/src/models/timer.js | 1 - addons/mail/static/src/models/user.js | 14 +++- addons/mail/static/src/models/welcome_view.js | 3 - .../mail/static/tests/helpers/mock_server.js | 1 + .../qunit_suite_tests/models/message_tests.js | 2 +- .../models/thread_needaction_preview_view.js | 1 - .../static/src/models/thread_preview_view.js | 1 - .../tests/test_performance.py | 28 ++++---- 63 files changed, 217 insertions(+), 309 deletions(-) diff --git a/addons/mail/models/mail_channel.py b/addons/mail/models/mail_channel.py index cfc9ca88e61..c8a4891a3df 100644 --- a/addons/mail/models/mail_channel.py +++ b/addons/mail/models/mail_channel.py @@ -67,7 +67,7 @@ class Channel(models.Model): groups='base.group_user') rtc_session_ids = fields.One2many('mail.channel.rtc.session', 'channel_id', groups="base.group_system") is_member = fields.Boolean('Is Member', compute='_compute_is_member', search='_search_is_member') - member_count = fields.Integer(string="Member Count", compute='_compute_member_count', compute_sudo=True, help="Excluding guests from count.") + member_count = fields.Integer(string="Member Count", compute='_compute_member_count', compute_sudo=True) group_ids = fields.Many2many( 'res.groups', string='Auto Subscription', help="Members of those groups will automatically added as followers. " @@ -192,7 +192,7 @@ class Channel(models.Model): self.env['mail.channel.member'].sudo()._search(user_domain) )] - @api.depends('channel_partner_ids') + @api.depends('channel_member_ids') def _compute_member_count(self): read_group_res = self.env['mail.channel.member']._read_group(domain=[('channel_id', 'in', self.ids)], fields=['channel_id'], groupby=['channel_id']) member_count_by_channel_id = {item['channel_id'][0]: item['channel_id_count'] for item in read_group_res} @@ -332,8 +332,11 @@ class Channel(models.Model): # post 'channel left' message as root since the partner just unsubscribed from the channel self.sudo().message_post(body=notification, subtype_xmlid="mail.mt_comment", author_id=partner.id) self.env['bus.bus']._sendone(self, 'mail.channel/insert', { + 'channel': [('insert-and-replace', { + 'id': self.id, + 'memberCount': self.member_count, + })], 'id': self.id, - 'memberCount': self.member_count, 'members': [('insert-and-unlink', {'id': partner.id})], }) return result @@ -414,9 +417,12 @@ class Channel(models.Model): 'channel': member.channel_id.sudo().channel_info()[0], })) notifications.append((channel, 'mail.channel/insert', { + 'channel': [('insert-and-replace', { + 'id': channel.id, + 'memberCount': channel.member_count, + })], 'id': channel.id, 'guestMembers': [('insert', guest_members_data)], - 'memberCount': channel.member_count, 'members': [('insert', members_data)], })) if invite_to_rtc_call: @@ -768,6 +774,7 @@ class Channel(models.Model): channel_data = { 'channel_type': channel.channel_type, 'id': channel.id, + 'memberCount': channel.member_count, } info = { 'avatarCacheKey': channel._get_avatar_cache_key(), @@ -785,7 +792,6 @@ class Channel(models.Model): } # add last message preview (only used in mobile) info['last_message_id'] = channel_last_message_ids.get(channel.id, False) - info['memberCount'] = channel.member_count # find the channel member state, if logged user if self.env.user and self.env.user.partner_id: info['message_needaction_counter'] = channel.message_needaction_counter diff --git a/addons/mail/static/src/components/discuss/discuss.xml b/addons/mail/static/src/components/discuss/discuss.xml index 31736330085..2f623439799 100644 --- a/addons/mail/static/src/components/discuss/discuss.xml +++ b/addons/mail/static/src/components/discuss/discuss.xml @@ -43,7 +43,7 @@ record="discussView.discuss.threadView" /> - +

No conversation selected.

diff --git a/addons/mail/static/src/components/discuss_container/discuss_container.js b/addons/mail/static/src/components/discuss_container/discuss_container.js index d05c9b7d6c8..93aa9ebaed8 100644 --- a/addons/mail/static/src/components/discuss_container/discuss_container.js +++ b/addons/mail/static/src/components/discuss_container/discuss_container.js @@ -34,7 +34,7 @@ export class DiscussContainer extends Component { await this.messaging.initializedPromise; if (!this.discuss.isInitThreadHandled) { this.discuss.update({ isInitThreadHandled: true }); - if (!this.discuss.thread) { + if (!this.discuss.activeThread) { this.discuss.openInitThread(); } } diff --git a/addons/mail/static/src/components/discuss_mobile_mailbox_selection_item/discuss_mobile_mailbox_selection_item.xml b/addons/mail/static/src/components/discuss_mobile_mailbox_selection_item/discuss_mobile_mailbox_selection_item.xml index c905ade5d60..e6c20bb1f32 100644 --- a/addons/mail/static/src/components/discuss_mobile_mailbox_selection_item/discuss_mobile_mailbox_selection_item.xml +++ b/addons/mail/static/src/components/discuss_mobile_mailbox_selection_item/discuss_mobile_mailbox_selection_item.xml @@ -4,7 +4,7 @@