diff --git a/addons/hr_recruitment/models/hr_applicant.py b/addons/hr_recruitment/models/hr_applicant.py index 0dbf240b6c7..53495b0984d 100644 --- a/addons/hr_recruitment/models/hr_applicant.py +++ b/addons/hr_recruitment/models/hr_applicant.py @@ -328,9 +328,15 @@ class Applicant(models.Model): 'phone': applicant.partner_phone, }) else: - applicant.partner_id.email = applicant.email_from - applicant.partner_id.mobile = applicant.partner_mobile - applicant.partner_id.phone = applicant.partner_phone + if applicant.email_from and \ + tools.email_normalize(applicant.email_from) != tools.email_normalize(applicant.partner_id.email): + # change email on a partner will trigger other heavy code, so avoid to change the email when + # it is the same. E.g. "email@example.com" vs "My Email" "" + applicant.partner_id.email = applicant.email_from + if applicant.partner_mobile: + applicant.partner_id.mobile = applicant.partner_mobile + if applicant.partner_phone: + applicant.partner_id.phone = applicant.partner_phone @api.depends('partner_phone') def _compute_partner_phone_sanitized(self): @@ -612,7 +618,9 @@ class Applicant(models.Model): defaults['stage_id'] = stage.id if custom_values: defaults.update(custom_values) - return super(Applicant, self).message_new(msg, custom_values=defaults) + res = super().message_new(msg, custom_values=defaults) + res._compute_partner_phone_email() + return res def _message_post_after_hook(self, message, msg_vals): if self.email_from and not self.partner_id: