[IMP] mail: last_id (js/py)

bzr revid: chm@openerp.com-20121031090931-gloqsggi3j276jpj
This commit is contained in:
Christophe Matthieu 2012-10-31 10:09:31 +01:00
parent 6453930f28
commit fd0b674f5c
2 changed files with 19 additions and 6 deletions

View File

@ -240,6 +240,7 @@ class mail_message(osv.Model):
return {
'id': message['id'],
'last_id': message['id'],
'type': message['type'],
'attachment_ids': attachment_ids,
'body': message['body'],
@ -425,6 +426,17 @@ class mail_message(osv.Model):
# get the child expandable messages for the tree
message_list = sorted(message_list, key=lambda k: k['id'])
for message in message_list:
if message['parent_id']:
for msg in message_list:
if message['parent_id'] == msg['id']:
if message['last_id'] < message['parent_id']:
message['last_id'] = message['parent_id']
break
self._message_read_add_expandables(cr, uid, message_list, read_messages, thread_level=thread_level,
message_loaded_ids=message_unload_ids, domain=domain, parent_id=parent_id, context=context, limit=limit)

View File

@ -596,7 +596,7 @@ openerp.mail = function (session) {
start: function () {
this._super.apply(this, arguments);
this.expender();
this.$el.hide().fadeIn(750, function () {$(this).css('display', '');});
//this.$el.hide().fadeIn(750, function () {$(this).css('display', '');});
this.resize_img();
this.bind_events();
if(this.thread_level < this.options.display_indented_thread) {
@ -895,6 +895,7 @@ openerp.mail = function (session) {
// data of this thread
this.id = datasets.id || false,
this.last_id = datasets.last_id || false,
this.model = datasets.model || false,
this.parent_id = datasets.parent_id || false,
this.is_private = datasets.is_private || false,
@ -941,7 +942,7 @@ openerp.mail = function (session) {
*/
on_scroll: function () {
var expandables =
_.each( _.filter(this.messages, function (val) {return val.id == -1 && !val.loading;}), function (val) {
_.each( _.filter(this.messages, function (val) {return val.id == -1;}), function (val) {
var pos = val.$el.position();
if (pos.top) {
/* bottom of the screen */
@ -1180,12 +1181,12 @@ openerp.mail = function (session) {
if (self.messages[i].no_sorted) {
continue;
}
if (self.messages[i].id > message.id) {
if (!message_newer || message_newer.id > self.messages[i].id) {
if (self.messages[i].last_id > (message.last_id || message.id)) {
if (!message_newer || message_newer.last_id > self.messages[i].last_id) {
message_newer = self.messages[i];
}
} else if (self.messages[i].id > 0 && self.messages[i].id < message.id) {
if (!message_older || message_older.id < self.messages[i].id) {
} else if (self.messages[i].last_id > 0 && self.messages[i].last_id < (message.last_id || message.id)) {
if (!message_older || message_older.last_id < self.messages[i].last_id) {
message_older = self.messages[i];
}
}