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):