From afc63c5a3e85305d3f4e9047d76feb4cf6a5c128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 20 Apr 2012 14:42:00 +0200 Subject: [PATCH] [REF] subscribers inheritance: now override message_get_subscribers_ids, so the read is done in another method, or allow to reuse the user_ids in other methods. It allows to cleany separate having the ids from reading them. bzr revid: tde@openerp.com-20120420124200-3ictqpdjw1jtdkeo --- addons/crm/crm_lead.py | 6 +++--- addons/hr_holidays/hr_holidays.py | 6 +++--- addons/hr_recruitment/hr_recruitment.py | 6 +++--- addons/mail/mail_thread.py | 8 ++++++-- addons/mrp/mrp.py | 6 +++--- addons/project/project.py | 12 ++++++------ addons/project_issue/project_issue.py | 6 +++--- 7 files changed, 27 insertions(+), 23 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index f0f867525e7..99bda3ec740 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -829,13 +829,13 @@ class crm_lead(crm_case, osv.osv): # OpenChatter methods and notifications # ---------------------------------------- - def message_get_subscribers(self, cr, uid, ids, context=None): - sub_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context) + def message_get_subscribers_ids(self, cr, uid, ids, context=None): + sub_ids = super(crm_lead, self).message_get_subscribers_ids(cr, uid, ids, context=context) # add salesman to the subscribers for obj in self.browse(cr, uid, ids, context=context): if obj.user_id: sub_ids.append(obj.user_id.id) - return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) + return sub_ids def case_get_note_msg_prefix(self, cr, uid, lead, context=None): if isinstance(lead, (int, long)): diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index e0bab685a4b..61ad93fe5ee 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -372,13 +372,13 @@ class hr_holidays(osv.osv): result[obj.id] = hr_manager_group['users'] return result - def message_get_subscribers(self, cr, uid, ids, context=None): - sub_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context); + def message_get_subscribers_ids(self, cr, uid, ids, context=None): + sub_ids = super(hr_holidays, self).message_get_subscribers_ids(cr, uid, ids, context=context) # add the employee and its manager if specified to the subscribed users for obj in self.browse(cr, uid, ids, context=context): if obj.employee_id.parent_id: sub_ids.append(obj.employee_id.parent_id.user_id.id) - return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) + return sub_ids def create_notificate(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index 17a2d11fd0e..1ad2d92e564 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -484,12 +484,12 @@ class hr_applicant(crm.crm_case, osv.osv): # OpenChatter methods and notifications # ------------------------------------------------------- - def message_get_subscribers(self, cr, uid, ids, context=None): - sub_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context); + def message_get_subscribers_ids(self, cr, uid, ids, context=None): + sub_ids = super(hr_applicant, self).message_get_subscribers_ids(cr, uid, ids, context=context) for obj in self.browse(cr, uid, ids, context=context): if obj.user_id: sub_ids.append(obj.user_id.id) - return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) + return sub_ids def get_needaction_user_ids(self, cr, uid, ids, context=None): result = dict.fromkeys(ids, []) diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 2d09e440af1..34415a28ae1 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -108,7 +108,7 @@ class mail_thread(osv.osv): # delete subscriptions subscr_to_del_ids = subscr_obj.search(cr, uid, [('res_model', '=', self._name), ('res_id', 'in', ids)], context=context) subscr_obj.unlink(cr, uid, subscr_to_del_ids, context=context) - # delete notifications + # delete messages and notifications msg_to_del_ids = msg_obj.search(cr, uid, [('model', '=', self._name), ('res_id', 'in', ids)], context=context) msg_obj.unlink(cr, uid, msg_to_del_ids, context=context) @@ -119,7 +119,7 @@ class mail_thread(osv.osv): #------------------------------------------------------ def message_create(self, cr, uid, thread_id, vals, context=None): - """OpenSocial: wrapper of mail.message create method + """OpenChatter: wrapper of mail.message create method - creates the mail.message - automatically subscribe the message writer - push the message to subscribed users @@ -182,6 +182,10 @@ class mail_thread(osv.osv): for thread_id in thread_ids: # add subscribers notif_user_ids += [user['id'] for user in self.message_get_subscribers(cr, uid, [thread_id], context=context)] + + # get hiden subscriptions + #subscription_hide_obj.search(cr, uid, [('subscription_id', 'in', ids), ('subtype', '=', new_msg_vals.get('subtype'))], context=context) + # add users requested via parsing message (@login) notif_user_ids += self.message_parse_users(cr, uid, [thread_id], body, context=context) # add users requested to perform an action (need_action mechanism) diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index 88908884b26..f5192aa8428 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -1041,12 +1041,12 @@ class mrp_production(osv.osv): result[obj.id] = [obj.user_id.id] return result - def message_get_subscribers(self, cr, uid, ids, context=None): - sub_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context); + def message_get_subscribers_ids(self, cr, uid, ids, context=None): + sub_ids = super(mrp_production, self).message_get_subscribers_ids(cr, uid, ids, context=context) for obj in self.browse(cr, uid, ids, context=context): if obj.user_id: sub_ids.append(obj.user_id.id) - return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) + return sub_ids def create_send_note(self, cr, uid, ids, context=None): self.message_append_note(cr, uid, ids, body=_("Manufacturing order has been created."), context=context) diff --git a/addons/project/project.py b/addons/project/project.py index 0335b7cb540..5f65451ba9f 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -455,12 +455,12 @@ def Project(): result[obj.id] = [obj.user_id.id] return result - def message_get_subscribers(self, cr, uid, ids, context=None): - sub_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context); + def message_get_subscribers_ids(self, cr, uid, ids, context=None): + sub_ids = super(project_project, self).message_get_subscribers_ids(cr, uid, ids, context=context); for obj in self.browse(cr, uid, ids, context=context): if obj.user_id: sub_ids.append(obj.user_id.id) - return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) + return sub_ids def create(self, cr, uid, vals, context=None): obj_id = super(project, self).create(cr, uid, vals, context=context) @@ -1138,14 +1138,14 @@ class task(osv.osv): result[obj.id] = [obj.user_id.id] return result - def message_get_subscribers(self, cr, uid, ids, context=None): - sub_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context); + def message_get_subscribers_ids(self, cr, uid, ids, context=None): + sub_ids = super(project_task, self).message_get_subscribers_ids(cr, uid, ids, context=context) for obj in self.browse(cr, uid, ids, context=context): if obj.user_id: sub_ids.append(obj.user_id.id) if obj.manager_id: sub_ids.append(obj.manager_id.id) - return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) + return sub_ids def create_send_note(self, cr, uid, ids, context=None): return self.message_append_note(cr, uid, ids, body=_("Task has been created."), context=context) diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index e61af235d42..1ad944cea28 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -474,12 +474,12 @@ class project_issue(crm.crm_case, osv.osv): result[obj.id] = [obj.user_id.id] return result - def message_get_subscribers(self, cr, uid, ids, context=None): - sub_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context); + def message_get_subscribers_ids(self, cr, uid, ids, context=None): + sub_ids = super(project_issue, self).message_get_subscribers_ids(cr, uid, ids, context=context) for obj in self.browse(cr, uid, ids, context=context): if obj.user_id: sub_ids.append(obj.user_id.id) - return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) + return sub_ids def case_get_note_msg_prefix(self, cr, uid, id, context=None): return 'Project issue '