diff --git a/mass_mailing_partner/models/mail_mass_mailing_contact.py b/mass_mailing_partner/models/mail_mass_mailing_contact.py index ce7237872..47a0c79a4 100644 --- a/mass_mailing_partner/models/mail_mass_mailing_contact.py +++ b/mass_mailing_partner/models/mail_mass_mailing_contact.py @@ -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) - 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) - ) - return super(MailMassMailingContact, self).create(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=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): 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):