diff --git a/addons/project_issue/models/project_issue.py b/addons/project_issue/models/project_issue.py index 526225ac096..5e4a8757d68 100644 --- a/addons/project_issue/models/project_issue.py +++ b/addons/project_issue/models/project_issue.py @@ -327,6 +327,19 @@ class ProjectIssue(models.Model): self.sudo().write({'date_action_last': fields.Datetime.now()}) return mail_message + def _message_post_after_hook(self, message): + if self.email_from and not self.partner_id: + # we consider that posting a message with a specified recipient (not a follower, a specific one) + # on a document without customer means that it was created through the chatter using + # suggested recipients. This heuristic allows to avoid ugly hacks in JS. + new_partner = message.partner_ids.filtered(lambda partner: partner.email == self.email_from) + if new_partner: + self.search([ + ('partner_id', '=', False), + ('email_from', '=', new_partner.email), + ('stage_id.fold', '=', False)]).write({'partner_id': new_partner.id}) + return super(ProjectIssue, self)._message_post_after_hook(message) + @api.multi def message_get_email_values(self, notif_mail=None): self.ensure_one() diff --git a/addons/project_issue/views/project_issue_views.xml b/addons/project_issue/views/project_issue_views.xml index b217f68c7b4..383bead65df 100644 --- a/addons/project_issue/views/project_issue_views.xml +++ b/addons/project_issue/views/project_issue_views.xml @@ -61,7 +61,7 @@