From 491034ed0af1e6784a122f9cbf15e44696f675c7 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 19 Oct 2012 15:13:58 +0200 Subject: [PATCH] [FIX] mail: to_read value of _message_get_dict bzr revid: chm@openerp.com-20121019131358-xn3b8yyepscsrad7 --- addons/mail/mail_message.py | 7 +++---- addons/mail/static/src/js/mail.js | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index 153598e57e2..490f11b0e33 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -77,8 +77,7 @@ class mail_message(osv.Model): notif_obj = self.pool.get('mail.notification') notif_ids = notif_obj.search(cr, uid, [ ('partner_id', 'in', [partner_id]), - ('message_id', 'in', ids), - ('read', '=', True) + ('message_id', 'in', ids) ], context=context) for notif in notif_obj.browse(cr, uid, notif_ids, context=context): res[notif.message_id.id] = not notif.read @@ -342,7 +341,6 @@ class mail_message(osv.Model): further parents :return list: list of trees of messages """ - print '>>> executing message_read' if message_loaded_ids: domain += [('id', 'not in', message_loaded_ids)] limit = limit or self._message_read_limit @@ -375,8 +373,9 @@ class mail_message(osv.Model): message_list.append(self._message_get_dict(cr, uid, parent, context=context)) parent = self._get_parent(cr, uid, parent, context=context) - # get the child expandable messages for the tree message_list = sorted(message_list, key=lambda k: k['id']) + + # get the child expandable messages for the tree message_list = self._message_read_expandable(cr, uid, message_list, read_messages, message_loaded_ids=message_loaded_ids, domain=domain, context=context, parent_id=parent_id, limit=limit) diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index bc59bd3c35b..8d5c1aabf87 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -934,6 +934,8 @@ openerp.mail = function(session) { */ on_scroll: function(event){ if(event)event.stopPropagation(); + this.$('.oe_msg_expandable:last'); + var message = this.messages[this.messages.length-1]; if(message && message.datasets.type=="expandable" && message.datasets.max_limit){ var pos = message.$el.position(); @@ -944,7 +946,6 @@ openerp.mail = function(session) { message.on_expandable(); } } - } }, @@ -1099,15 +1100,22 @@ openerp.mail = function(session) { }); } + // insert the message on dom + self.insert_message( message ); + // check if the message is already create for(var i in self.messages){ if(self.messages[i].datasets.id == message.datasets.id){ self.messages[i].destroy(); - self.messages[i] = self.insert_message(message); - return true; + if(message.datasets.id>0){ + self.messages[i] = message; + return true; + } else { + delete self.messages[i]; + } } } - self.messages.push( self.insert_message(message) ); + self.messages.push( message ); }, /** Displays a message or an expandable message */