From f27ffa11f59c427d12eccdf6f2ea0661b87429b8 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 10 Jun 2016 18:36:35 +0500 Subject: [PATCH] [ADD] Added "mail_move_message.delete_message" --- mail_move_message/controllers/main.py | 1 + mail_move_message/mail_move_message_models.py | 6 ++++++ .../static/src/js/mail_move_message.js | 13 ++++++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/mail_move_message/controllers/main.py b/mail_move_message/controllers/main.py index 24307ea..531b397 100644 --- a/mail_move_message/controllers/main.py +++ b/mail_move_message/controllers/main.py @@ -13,6 +13,7 @@ class MailChatController(openerp.addons.bus.controllers.main.BusController): if request.session.uid: registry, cr, uid, context = request.registry, request.cr, request.session.uid, request.context channels.append((request.db, 'mail_move_message')) + channels.append((request.db, 'mail_move_message.delete_message')) return super(MailChatController, self)._poll(dbname, channels, last, options) diff --git a/mail_move_message/mail_move_message_models.py b/mail_move_message/mail_move_message_models.py index 1762dec..ad4c54d 100644 --- a/mail_move_message/mail_move_message_models.py +++ b/mail_move_message/mail_move_message_models.py @@ -195,7 +195,13 @@ class wizard(models.TransientModel): @api.one def delete(self): + msg_id = self.message_id.id self.message_id.unlink() + + # Send notification + notification = {'message_ids': [msg_id]} + self.env['bus.bus'].sendone((self._cr.dbname, 'mail_move_message.delete_message'), notification) + return {} @api.model diff --git a/mail_move_message/static/src/js/mail_move_message.js b/mail_move_message/static/src/js/mail_move_message.js index 37fb655..458d6f9 100644 --- a/mail_move_message/static/src/js/mail_move_message.js +++ b/mail_move_message/static/src/js/mail_move_message.js @@ -62,8 +62,8 @@ odoo.define('mail_move_message.relocate', function (require) { this._super(notifications); _.each(notifications, function (notification) { var model = notification[0][1]; + var message_id = notification[1].message_ids[0]; if (model === 'mail_move_message') { - var message_id = notification[1].message_ids[0]; var message = base_obj.chat_manager.get_message(message_id); // Mark message as moved after move and for update cache @@ -72,6 +72,17 @@ odoo.define('mail_move_message.relocate', function (require) { chat_manager.mail_tools.add_to_cache(message, []); // Call ChatAction.on_update_message(message) chat_manager.bus.trigger('update_message', message); + } else if (model === 'mail_move_message.delete_message') { + chat_manager.get_messages( + // TODO: получить channel.id и this.domain + {channel_id: this.channel.id, domain: this.domain} + ).then(function (messages) { + var options = self.get_thread_rendering_options(messages); + thread.remove_message_and_render(message_id, messages, options) + .then(function () { + self.update_button_status(messages.length === 0); + }); + }); } }); }