summaryrefslogtreecommitdiff
path: root/addons/project_issue/project_issue.py
diff options
context:
space:
mode:
authorGaurav Panchal <gan@openerp.com>2015-06-17 16:08:36 +0530
committerDavid Monjoie <dmo@odoo.com>2015-09-01 08:13:53 +0200
commitbb1200adc781efc1318e502a84cc1e77315aabc4 (patch)
tree1aa1d6801691bd5f4f3edef21fd711b724ca812e /addons/project_issue/project_issue.py
parentf41595f15b9cffad04816a3354942c44a8c33733 (diff)
[IMP] project, project_issue : email cc set follower
Partner is created on the fly if it didn't exist yet.
Diffstat (limited to 'addons/project_issue/project_issue.py')
-rw-r--r--addons/project_issue/project_issue.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 09f24792656..92eb06c7b66 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -368,6 +368,13 @@ class project_issue(osv.Model):
pass
return recipients
+ def email_split(self, cr, uid, ids, msg, context=None):
+ email_list = tools.email_split((msg.get('to') or '') + ',' + (msg.get('cc') or ''))
+ # check left-part is not already an alias
+ issue_ids = self.browse(cr, uid, ids, context=context)
+ aliases = [issue.project_id.alias_name for issue in issue_ids if issue.project_id]
+ return filter(lambda x: x.split('@')[0] not in aliases, email_list)
+
def message_new(self, cr, uid, msg, custom_values=None, context=None):
""" Overrides mail_thread message_new that is called by the mailgateway
through message_process.
@@ -384,9 +391,21 @@ class project_issue(osv.Model):
'user_id': False,
}
defaults.update(custom_values)
+
res_id = super(project_issue, self).message_new(cr, uid, msg, custom_values=defaults, context=context)
+ email_list = self.email_split(cr, uid, [res_id], msg, context=context)
+ partner_ids = self._find_partner_from_emails(cr, uid, [res_id], email_list, force_create=True, context=context)
+ self.message_subscribe(cr, uid, [res_id], partner_ids, context=context)
return res_id
+ def message_update(self, cr, uid, ids, msg, update_vals=None, context=None):
+ """ Override to update the issue according to the email. """
+
+ email_list = self.email_split(cr, uid, ids, msg, context=context)
+ partner_ids = self._find_partner_from_emails(cr, uid, ids, email_list, force_create=True, context=context)
+ self.message_subscribe(cr, uid, ids, partner_ids, context=context)
+ return super(project_issue, self).message_update(cr, uid, ids, msg, update_vals=update_vals, context=context)
+
@api.cr_uid_ids_context
@api.returns('mail.message', lambda value: value.id)
def message_post(self, cr, uid, thread_id, subtype=None, context=None, **kwargs):