From 35b0b58b3ed3f6b9791f8e2d4770dc682abcc40c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 11 May 2012 14:41:39 +0200 Subject: [PATCH] [REF] mail.thread API: get_subscribers: propagated chances (in crm_lead, hr_holidays, hr_recruitment, mrp, project, project_issue) bzr revid: tde@openerp.com-20120511124139-paj05zp4lw6bvcr6 --- addons/crm/crm_lead.py | 11 +++++------ addons/hr_holidays/hr_holidays.py | 15 ++++++++------- addons/hr_recruitment/hr_recruitment.py | 12 ++++++------ addons/mrp/mrp.py | 10 +++++----- addons/project/project.py | 24 ++++++++++++------------ addons/project_issue/project_issue.py | 14 +++++++------- 6 files changed, 43 insertions(+), 43 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 99bda3ec740..2811703c648 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -829,13 +829,12 @@ class crm_lead(crm_case, osv.osv): # OpenChatter methods and notifications # ---------------------------------------- - 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 + def message_get_subscribers(self, cr, uid, ids, get_ids=False, context=None): + user_ids = super(crm_lead, self).message_get_subscribers(cr, uid, ids, True, context=context) for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id: - sub_ids.append(obj.user_id.id) - return sub_ids + if obj.user_id and not obj.user_id.id in user_ids: + self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context) + return super(crm_lead, self).message_get_subscribers(cr, uid, ids, get_ids, context=context) 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 dd5544789c5..98c71dc731b 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -371,14 +371,15 @@ class hr_holidays(osv.osv): hr_manager_group = self.pool.get('res.groups').read(cr, uid, [obj_id], ['users'], context=context)[0] result[obj.id] = hr_manager_group['users'] return result - - 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 + + def message_get_subscribers(self, cr, uid, ids, get_ids=False, context=None): + user_ids = super(hr_holidays, self).message_get_subscribers(cr, uid, ids, True, context=context) 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 sub_ids + if obj.user_id and not obj.user_id.id in user_ids: + self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context) + if obj.employee_id.parent_id and not obj.employee_id.parent_id.id in user_ids: + self.message_subscribe(cr, uid, [obj.id], [obj.employee_id.parent_id.id], context=context) + return super(hr_holidays, self).message_get_subscribers(cr, uid, ids, get_ids, context=context) 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 1ad2d92e564..507421773ac 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -483,13 +483,13 @@ class hr_applicant(crm.crm_case, osv.osv): # ------------------------------------------------------- # OpenChatter methods and notifications # ------------------------------------------------------- - - 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) + + def message_get_subscribers(self, cr, uid, ids, get_ids=False, context=None): + user_ids = super(hr_applicant, self).message_get_subscribers(cr, uid, ids, True, context=context) for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id: - sub_ids.append(obj.user_id.id) - return sub_ids + if obj.user_id and not obj.user_id.id in user_ids: + self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context) + return super(hr_applicant, self).message_get_subscribers(cr, uid, ids, get_ids, context=context) def get_needaction_user_ids(self, cr, uid, ids, context=None): result = dict.fromkeys(ids, []) diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index f5192aa8428..aaa11a21fc5 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_ids(self, cr, uid, ids, context=None): - sub_ids = super(mrp_production, self).message_get_subscribers_ids(cr, uid, ids, context=context) + def message_get_subscribers(self, cr, uid, ids, get_ids=False, context=None): + user_ids = super(mrp_production, self).message_get_subscribers(cr, uid, ids, True, context=context) for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id: - sub_ids.append(obj.user_id.id) - return sub_ids + if obj.user_id and not obj.user_id.id in user_ids: + self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context) + return super(mrp_production, self).message_get_subscribers(cr, uid, ids, get_ids, context=context) 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 c4313308106..78832276276 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -471,12 +471,12 @@ def Project(): result[obj.id] = [obj.user_id.id] return result - def message_get_subscribers_ids(self, cr, uid, ids, context=None): - sub_ids = super(project, self).message_get_subscribers_ids(cr, uid, ids, context=context); + def message_get_subscribers(self, cr, uid, ids, get_ids=False, context=None): + user_ids = super(project, self).message_get_subscribers(cr, uid, ids, True, context=context) for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id: - sub_ids.append(obj.user_id.id) - return sub_ids + if obj.user_id and not obj.user_id.id in user_ids: + self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context) + return super(project, self).message_get_subscribers(cr, uid, ids, get_ids, context=context) def create(self, cr, uid, vals, context=None): obj_id = super(project, self).create(cr, uid, vals, context=context) @@ -1154,14 +1154,14 @@ class task(osv.osv): result[obj.id] = [obj.user_id.id] return result - def message_get_subscribers_ids(self, cr, uid, ids, context=None): - sub_ids = super(task, self).message_get_subscribers_ids(cr, uid, ids, context=context) + def message_get_subscribers(self, cr, uid, ids, get_ids=False, context=None): + user_ids = super(task, self).message_get_subscribers(cr, uid, ids, True, 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 sub_ids + if obj.user_id and not obj.user_id.id in user_ids: + self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context) + if obj.manager_id and not obj.manager_id.id in user_ids: + self.message_subscribe(cr, uid, [obj.id], [obj.manager_id.id], context=context) + return super(task, self).message_get_subscribers(cr, uid, ids, get_ids, context=context) 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 cc8f8b7d091..5492366df7b 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -475,19 +475,19 @@ class project_issue(crm.crm_case, osv.osv): if obj.state == 'draft' and obj.user_id: result[obj.id] = [obj.user_id.id] return result - - 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) + + def message_get_subscribers(self, cr, uid, ids, get_ids=False, context=None): + user_ids = super(project_issue, self).message_get_subscribers(cr, uid, ids, True, context=context) for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id: - sub_ids.append(obj.user_id.id) - return sub_ids + if obj.user_id and not obj.user_id.id in user_ids: + self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context) + return super(project_issue, self).message_get_subscribers(cr, uid, ids, get_ids, context=context) def case_get_note_msg_prefix(self, cr, uid, id, context=None): return 'Project issue ' def convert_to_task_send_note(self, cr, uid, ids, context=None): - message = _("Project issue has been converted in to task.") + message = _("Project issue has been converted into task.") return self.message_append_note(cr, uid, ids, body=message, context=context) def create_send_note(self, cr, uid, ids, context=None):