summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Delavallée <tde@openerp.com>2013-11-25 17:38:08 +0100
committerThibault Delavallée <tde@openerp.com>2013-11-25 17:38:08 +0100
commit4be6ac800b648cff44d06f1378c2d932afcf7bf2 (patch)
tree91fdef3a8db519a157e9ccd4c4e4f53f2720942b
parentd547acbc4b4e61f5f944c3892c1d7fbbc57ef722 (diff)
[FIX] mail: in some cases tracking is called
without the context (some workflows for example). In that case use the current user lang when generating the automatic message. This is done by adding it in the context if not present. lp bug: https://launchpad.net/bugs/1219163 fixed bzr revid: tde@openerp.com-20131125163808-bbbqwvx22my38zdj
-rw-r--r--addons/mail/mail_thread.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index 5f3ac13d7c7..eac8df8ebbf 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -257,19 +257,28 @@ class mail_thread(osv.AbstractModel):
self.message_auto_subscribe(cr, uid, [thread_id], create_values.keys(), context=context, values=create_values)
# track values
- tracked_fields = self._get_tracked_fields(cr, uid, values.keys(), context=context)
+ track_ctx = dict(context)
+ if 'lang' not in track_ctx:
+ track_ctx['lang'] = self.pool.get('res.users').browse(cr, uid, uid, context=context).lang
+ tracked_fields = self._get_tracked_fields(cr, uid, values.keys(), context=track_ctx)
if tracked_fields:
initial_values = {thread_id: dict((item, False) for item in tracked_fields)}
- self.message_track(cr, uid, [thread_id], tracked_fields, initial_values, context=context)
+ self.message_track(cr, uid, [thread_id], tracked_fields, initial_values, context=track_ctx)
return thread_id
def write(self, cr, uid, ids, values, context=None):
+ if context is None:
+ context = {}
if isinstance(ids, (int, long)):
ids = [ids]
+
# Track initial values of tracked fields
- tracked_fields = self._get_tracked_fields(cr, uid, values.keys(), context=context)
+ track_ctx = dict(context)
+ if 'lang' not in track_ctx:
+ track_ctx['lang'] = self.pool.get('res.users').browse(cr, uid, uid, context=context).lang
+ tracked_fields = self._get_tracked_fields(cr, uid, values.keys(), context=track_ctx)
if tracked_fields:
- initial = self.read(cr, uid, ids, tracked_fields.keys(), context=context)
+ initial = self.read(cr, uid, ids, tracked_fields.keys(), context=track_ctx)
initial_values = dict((item['id'], item) for item in initial)
# Perform write, update followers
@@ -278,7 +287,7 @@ class mail_thread(osv.AbstractModel):
# Perform the tracking
if tracked_fields:
- self.message_track(cr, uid, ids, tracked_fields, initial_values, context=context)
+ self.message_track(cr, uid, ids, tracked_fields, initial_values, context=track_ctx)
return result
def unlink(self, cr, uid, ids, context=None):