[IMP] mail: allow to change 'alias_domain_id' in alias mixin
PURPOSE Allow alias domains to be multiple, notably to be used in a multi company environment where each company has its own alias domain. SPECIFICATIONS As 'alias_domain' is now dynamic and not based on a configuration parameter it makes sense to be able to change it when having several alias domain. We now allow writing on 'alias_domain_id' in 'mail.alias.mixin(.optional)'. Users may now change the alias domain of the alias coming with the mixin when they have write access on the record. Task-36879 (Mail: Support Multi Domains Aliases) Part-of: odoo/odoo#76734
This commit is contained in:
@@ -16,7 +16,7 @@ class AliasMixinOptional(models.AbstractModel):
|
||||
"""
|
||||
_name = 'mail.alias.mixin.optional'
|
||||
_description = 'Email Aliases Mixin (light)'
|
||||
ALIAS_WRITEABLE_FIELDS = ['alias_name', 'alias_contact', 'alias_defaults', 'alias_bounced_content']
|
||||
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_name = fields.Char(related='alias_id.alias_name', readonly=False)
|
||||
|
||||
@@ -600,17 +600,14 @@ class TestMailAliasMixin(TestMailAliasCommon):
|
||||
self.assertEqual(record.alias_id.alias_contact, 'followers')
|
||||
|
||||
record.write({
|
||||
'alias_domain_id': self.mail_alias_domain_c2.id,
|
||||
'alias_name': 'better.alias.test',
|
||||
'alias_defaults': "{'default_name': 'defaults'}"
|
||||
})
|
||||
self.assertEqual(record.alias_domain, self.mail_alias_domain_c2.name)
|
||||
self.assertEqual(record.alias_id.alias_name, 'better.alias.test')
|
||||
self.assertEqual(record.alias_id.alias_defaults, "{'default_name': 'defaults'}")
|
||||
|
||||
with self.assertRaises(exceptions.AccessError):
|
||||
record.write({
|
||||
'alias_domain_id': self.mail_alias_domain_c2.id,
|
||||
})
|
||||
|
||||
with self.assertRaises(exceptions.AccessError):
|
||||
record.write({
|
||||
'alias_force_thread_id': 0,
|
||||
|
||||
Reference in New Issue
Block a user