[FIX] mass_mailing_partner: get contextual list when importing contacts

When importing contacts from csv or xls, the list is set by context. So
we must try to default to that context when setting the contact values.
pull/579/head
david 2020-07-27 08:34:53 +02:00
parent 6505f364f0
commit ed77b7944c
1 changed files with 20 additions and 13 deletions

View File

@ -38,18 +38,25 @@ class MailMassMailingContact(models.Model):
if category_ids: if category_ids:
self.tag_ids = category_ids self.tag_ids = category_ids
@api.model @api.model_create_multi
def create(self, vals): def create(self, vals_list):
record = self.new(vals) new_vals_list = []
if not record.partner_id: for vals in vals_list:
record._set_partner() # Ensure that defaults are loaded (e.g.: import csv or xls)
record._onchange_partner_mass_mailing_partner() values_w_defaults = self.default_get(self._fields.keys())
new_vals = record._convert_to_write(record._cache) values_w_defaults.update(vals)
new_vals.update( record = self.new(values_w_defaults)
subscription_list_ids=vals.get('subscription_list_ids', False), if not record.partner_id:
list_ids=vals.get('list_ids', False) record._set_partner()
) record._onchange_partner_mass_mailing_partner()
return super(MailMassMailingContact, self).create(new_vals) new_vals = record._convert_to_write(record._cache)
new_vals.update(
subscription_list_ids=values_w_defaults.get(
'subscription_list_ids', False),
list_ids=values_w_defaults.get('list_ids', False)
)
new_vals_list.append(new_vals)
return super().create(new_vals_list)
def write(self, vals): def write(self, vals):
for contact in self: for contact in self:
@ -63,7 +70,7 @@ class MailMassMailingContact(models.Model):
subscription_list_ids=vals.get('subscription_list_ids', False), subscription_list_ids=vals.get('subscription_list_ids', False),
list_ids=vals.get('list_ids', False) list_ids=vals.get('list_ids', False)
) )
super(MailMassMailingContact, contact).write(new_vals) super().write(new_vals)
return True return True
def _get_company(self): def _get_company(self):