From 3c7efc0de5543564d0ad685f83a644d878ded4d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 17 Oct 2012 16:33:35 +0200 Subject: [PATCH] [FIX] Mailboxes: now post on res.users, with correct uid. Posts on res.users usign message_post_api are redirected to the related partner. bzr revid: tde@openerp.com-20121017143335-xxgfe1fsqqwz2gon --- addons/mail/mail_message.py | 2 +- addons/mail/mail_message_view.xml | 6 +++--- addons/mail/res_users.py | 13 ++++++++++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index 6e8429d6d8c..ad3b4f76e7b 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -324,7 +324,7 @@ class mail_message(osv.Model): # TDE note: should not receive [None] !! if ids and ids != [None]: for message in self.read(cr, uid, ids, self._message_read_fields, context=context): - message_list.append(self._message_dict_get(cr, uid, message, context=context)) + message_list.append(self._message_get_dict(cr, uid, message, context=context)) return message_list # key: ID, value: record diff --git a/addons/mail/mail_message_view.xml b/addons/mail/mail_message_view.xml index 0c572384bb4..cc0419352af 100644 --- a/addons/mail/mail_message_view.xml +++ b/addons/mail/mail_message_view.xml @@ -88,21 +88,21 @@ Inbox mail.wall + 'context': {'default_model': 'res.users', 'default_res_id': uid} }""/> Archives mail.wall + 'context': {'default_model': 'res.users', 'default_res_id': uid} }""/> Sent mail.wall + 'context': {'default_model': 'res.users', 'default_res_id': uid} }""/> diff --git a/addons/mail/res_users.py b/addons/mail/res_users.py index 51d5e92c3ab..c318538541f 100644 --- a/addons/mail/res_users.py +++ b/addons/mail/res_users.py @@ -99,7 +99,8 @@ class res_users(osv.Model): def write(self, cr, uid, ids, vals, context=None): # User alias is sync'ed with login - if vals.get('login'): vals['alias_name'] = vals['login'] + if vals.get('login'): + vals['alias_name'] = vals['login'] return super(res_users, self).write(cr, uid, ids, vals, context=context) def unlink(self, cr, uid, ids, context=None): @@ -110,14 +111,20 @@ class res_users(osv.Model): alias_pool.unlink(cr, uid, alias_ids, context=context) return res - def message_post(self, cr, uid, thread_id, context=None, **kwargs): + def message_post_api(self, cr, uid, thread_id, body='', subject=False, type='notification', + subtype=None, parent_id=False, attachments=None, context=None, **kwargs): + """ Redirect the posting of message on res.users to the related partner. + This is done because when giving the context of Chatter on the + various mailboxes, we do not have access to the current partner_id. + We therefore post on the user and redirect on its partner. """ assert thread_id, "res.users does not support posting global messages" if context and 'thread_model' in context: context['thread_model'] = 'res.partner' if isinstance(thread_id, (list, tuple)): thread_id = thread_id[0] partner_id = self.pool.get('res.users').read(cr, uid, thread_id, ['partner_id'], context=context)['partner_id'][0] - return self.pool.get('res.partner').message_post(cr, uid, partner_id, context=context, **kwargs) + return self.pool.get('res.partner').message_post_api(cr, uid, partner_id, body=body, subject=subject, + type=type, subtype=subtype, parent_id=parent_id, attachments=attachments, context=context, **kwargs) def message_update(self, cr, uid, ids, msg_dict, update_vals=None, context=None): partner_id = self.pool.get('res.users').browse(cr, uid, ids)[0].partner_id.id