diff --git a/addons/mail/models/mail_alias_mixin_optional.py b/addons/mail/models/mail_alias_mixin_optional.py index fd8e383dd0e..00b9371961f 100644 --- a/addons/mail/models/mail_alias_mixin_optional.py +++ b/addons/mail/models/mail_alias_mixin_optional.py @@ -18,7 +18,7 @@ class AliasMixinOptional(models.AbstractModel): _description = 'Email Aliases Mixin (light)' ALIAS_WRITEABLE_FIELDS = ['alias_domain_id', 'alias_name', 'alias_contact', 'alias_defaults', 'alias_bounced_content'] - alias_id = fields.Many2one('mail.alias', string='Alias', ondelete="restrict", required=False) + alias_id = fields.Many2one('mail.alias', string='Alias', ondelete="restrict", required=False, copy=False) alias_name = fields.Char(related='alias_id.alias_name', readonly=False) alias_domain_id = fields.Many2one( 'mail.alias.domain', string='Alias Domain', diff --git a/addons/test_mail/tests/test_mail_alias.py b/addons/test_mail/tests/test_mail_alias.py index af639075c6a..f6cfad8cc60 100644 --- a/addons/test_mail/tests/test_mail_alias.py +++ b/addons/test_mail/tests/test_mail_alias.py @@ -807,6 +807,18 @@ class TestMailAliasMixin(TestMailAliasCommon): record_copy2 = record_copy.copy() self.assertEqual(record_copy2.alias_bounced_content, new_content) + @users('employee') + def test_copy_optional_alias_model(self): + """ Do not propagate alias_id to duplicate record as it could lead to + overwriting alias_name of old record. """ + record = self.env['mail.test.alias.optional'].create({ + 'name': 'Test Optional Alias Record', + 'alias_name': 'test.optional.alias.record', + }) + self.assertTrue(record.alias_id) + record_copy = record.copy() + self.assertFalse(record_copy.alias_id) + @users('erp_manager') def test_multi_company_setup(self): """ Test company impact on alias domains when creating or updating