From 43915a872176fd7b8f75fccb73230ea6ad9e1016 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20W=C3=B3jcicki?= Date: Thu, 18 Jun 2015 16:35:32 +0200 Subject: [PATCH] [FIX] mail: notify auto subscribers after message creation. --- addons/mail/mail_thread.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 111058fee2e..8217b18f5ff 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -387,13 +387,6 @@ class mail_thread(osv.AbstractModel): name = ir_model_pool.read(cr, uid, ids, ['name'], context=context)[0]['name'] self.message_post(cr, uid, thread_id, body=_('%s created') % name, context=context) - # auto_subscribe: take values and defaults into account - create_values = dict(values) - for key, val in context.iteritems(): - if key.startswith('default_') and key[8:] not in create_values: - create_values[key[8:]] = val - self.message_auto_subscribe(cr, uid, [thread_id], create_values.keys(), context=context, values=create_values) - # track values track_ctx = dict(context) if 'lang' not in track_ctx: @@ -403,6 +396,14 @@ class mail_thread(osv.AbstractModel): if tracked_fields: initial_values = {thread_id: dict.fromkeys(tracked_fields, False)} self.message_track(cr, uid, [thread_id], tracked_fields, initial_values, context=track_ctx) + + # auto_subscribe: take values and defaults into account + create_values = dict(values) + for key, val in context.iteritems(): + if key.startswith('default_') and key[8:] not in create_values: + create_values[key[8:]] = val + self.message_auto_subscribe(cr, uid, [thread_id], create_values.keys(), context=context, values=create_values) + return thread_id def write(self, cr, uid, ids, values, context=None): @@ -427,14 +428,16 @@ class mail_thread(osv.AbstractModel): initial_values = dict((record.id, dict((key, getattr(record, key)) for key in tracked_fields)) for record in records) - # Perform write, update followers + # Perform write result = super(mail_thread, self).write(cr, uid, ids, values, context=context) - self.message_auto_subscribe(cr, uid, ids, values.keys(), context=context, values=values) # Perform the tracking if tracked_fields: self.message_track(cr, uid, ids, tracked_fields, initial_values, context=track_ctx) + # update followers + self.message_auto_subscribe(cr, uid, ids, values.keys(), context=context, values=values) + return result def unlink(self, cr, uid, ids, context=None):