diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index dee2ae8..dbc5fa2 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -160,9 +160,9 @@ var MailTools = core.Class.extend({ _.each(msg.channel_ids, function (channel_id) { var channel = chat_manager.get_channel(channel_id); if (channel) { - cls.add_to_cache(msg, []); + chat_manager.mail_tools.add_to_cache(msg, []); if (options.domain && options.domain !== []) { - cls.add_to_cache(msg, options.domain); + chat_manager.mail_tools.add_to_cache(msg, options.domain); } if (channel.hidden) { channel.hidden = false; @@ -412,7 +412,7 @@ var MailTools = core.Class.extend({ _.each(message.channel_ids, function (channel_id) { var channel = chat_manager.get_channel(channel_id); if (channel) { - var channel_cache = cls.get_channel_cache(channel, domain); + var channel_cache = chat_manager.mail_tools.get_channel_cache(channel, domain); var index = _.sortedIndex(channel_cache.messages, message, 'id'); if (channel_cache.messages[index] !== message) { channel_cache.messages.splice(index, 0, message); @@ -586,12 +586,12 @@ var MailTools = core.Class.extend({ _.each(data.message_ids, function (msg_id) { var message = _.findWhere(messages, { id: msg_id }); if (message) { - cls.invalidate_caches(message.channel_ids); + chat_manager.mail_tools.invalidate_caches(message.channel_ids); message.is_starred = data.starred; if (!message.is_starred) { - cls.remove_message_from_channel("channel_starred", message); + chat_manager.mail_tools.remove_message_from_channel("channel_starred", message); } else { - cls.add_to_cache(message, []); + chat_manager.mail_tools.add_to_cache(message, []); var channel_starred = chat_manager.get_channel('channel_starred'); channel_starred.cache = _.pick(channel_starred.cache, "[]"); } diff --git a/mail_sent/__init__.py b/mail_sent/__init__.py index cde864b..c7b5ac7 100644 --- a/mail_sent/__init__.py +++ b/mail_sent/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -from . import models +import models diff --git a/mail_sent/models.py b/mail_sent/models.py index 38c82e9..16414ed 100644 --- a/mail_sent/models.py +++ b/mail_sent/models.py @@ -1,28 +1,22 @@ +# -*- coding: utf-8 -*- from openerp import api, models, fields -class mail_message(models.Model): +class MailMessage(models.Model): _inherit = 'mail.message' + sent = fields.Boolean('Sent', compute="_get_sent", help='Was message sent to someone', store=True) + @api.one - @api.depends('author_id', 'notified_partner_ids') + @api.depends('author_id', 'partner_ids') def _get_sent(self): self_sudo = self.sudo() - self_sudo.sent = len(self_sudo.notified_partner_ids) > 1 or len(self_sudo.notified_partner_ids) == 1 and self_sudo.author_id and self_sudo.notified_partner_ids[0].id != self_sudo.author_id.id - - sent = fields.Boolean('Sent', compute=_get_sent, help='Was message sent to someone', store=True) - - -class mail_notification(models.Model): - _inherit = 'mail.notification' + self_sudo.sent = len(self_sudo.partner_ids) > 1 \ + or len(self_sudo.partner_ids) == 1 \ + and self_sudo.author_id \ + and self_sudo.partner_ids[0].id != self_sudo.author_id.id - def _notify(self, cr, uid, message_id, **kwargs): - super(mail_notification, self)._notify(cr, uid, message_id, **kwargs) - self.pool['mail.message'].browse(cr, uid, message_id)._get_sent() - - -class mail_compose_message(models.TransientModel): +class MailComposeMessage(models.TransientModel): _inherit = 'mail.compose.message' sent = fields.Boolean('Sent', help='dummy field to fix inherit error') - diff --git a/mail_sent/models/__init__.py b/mail_sent/models/__init__.py deleted file mode 100644 index 40a96af..0000000 --- a/mail_sent/models/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index 13ddad6..8b1d0d6 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -20,13 +20,15 @@ var _t = core._t; base_obj.MailTools.include({ get_properties: function(msg){ var properties = this._super.apply(this, arguments); - properties.is_archive = this.property_descr("channel_sent", msg, this); + properties.is_sent = this.property_descr("channel_sent", msg, this); return properties; }, set_channel_flags: function(data, msg){ this._super.apply(this, arguments); - msg.is_archive = true; + if (_.contains(data.author_id, session.partner_id) && data.partner_ids.length > 0) { + msg.is_sent = true; + } return msg; }, @@ -36,12 +38,15 @@ base_obj.MailTools.include({ }, get_domain: function(channel){ - return (channel.id === "channel_sent") ? [] : this._super.apply(this, arguments); + return (channel.id === "channel_sent") ? [ + ['sent', '=', true], + ['author_id.user_ids', 'in', [openerp.session.uid]] + ] : this._super.apply(this, arguments); } }); base_obj.chat_manager.is_ready.then(function(){ - // Add archive channel + // Add sent channel base_obj.chat_manager.mail_tools.add_channel({ id: "channel_sent", name: _t("Sent"), diff --git a/mail_sent/static/src/xml/menu.xml b/mail_sent/static/src/xml/menu.xml index 799a379..de92e3a 100644 --- a/mail_sent/static/src/xml/menu.xml +++ b/mail_sent/static/src/xml/menu.xml @@ -2,9 +2,9 @@