[FIX] mail: fix alias values given when copying records

Copy calls 'create' on 'self' which means self is not a void recordset. In
mail this causes issues as it may have an impact of values generated for
aliases, which depends on 'self' when calling '_alias_get_creation_values'.

Followup of odoo/odoo#130632

Prepares Task-36879 (Mail: Support MultiCompany Aliases)

closes odoo/odoo#136968

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
Thibault Delavallée
2023-09-28 20:16:54 +00:00
parent 3351e891dc
commit 0b5f8a85a1
@@ -52,7 +52,8 @@ class AliasMixinOptional(models.AbstractModel):
vals['alias_name'] = self.env['mail.alias']._sanitize_alias_name(vals['alias_name'])
if self._require_new_alias(vals):
alias_vals, record_vals = self._alias_filter_fields(vals)
alias_vals.update(self._alias_get_creation_values())
# generate record-agnostic base alias values
alias_vals.update(self.env[self._name]._alias_get_creation_values())
alias_vals_list.append(alias_vals)
record_vals_list.append(record_vals)
@@ -120,6 +121,7 @@ class AliasMixinOptional(models.AbstractModel):
del data[fields_not_writable]
return [data]
@api.model
def _require_new_alias(self, record_vals):
""" Create only if no existing alias, and if a name is given, to avoid
creating inactive aliases (falsy name). """