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