2017-06-14 20:47:41 +02:00
|
|
|
# Copyright 2015 Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
|
|
|
# Copyright 2015 Antonio Espinosa <antonio.espinosa@tecnativa.com>
|
|
|
|
# Copyright 2015 Javier Iniesta <javieria@antiun.com>
|
2016-08-08 13:14:37 +02:00
|
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
2015-08-28 11:15:50 +02:00
|
|
|
|
2017-06-14 20:47:41 +02:00
|
|
|
from odoo import _, api, fields, models
|
|
|
|
from odoo.exceptions import UserError
|
2015-08-28 11:15:50 +02:00
|
|
|
|
|
|
|
|
|
|
|
class PartnerMailListWizard(models.TransientModel):
|
|
|
|
_name = "partner.mail.list.wizard"
|
|
|
|
_description = "Create contact mailing list"
|
|
|
|
|
|
|
|
mail_list_id = fields.Many2one(comodel_name="mail.mass_mailing.list",
|
|
|
|
string="Mailing List")
|
|
|
|
partner_ids = fields.Many2many(
|
|
|
|
comodel_name="res.partner", relation="mail_list_wizard_partner",
|
|
|
|
default=lambda self: self.env.context.get("active_ids"))
|
|
|
|
|
|
|
|
@api.multi
|
|
|
|
def add_to_mail_list(self):
|
|
|
|
contact_obj = self.env['mail.mass_mailing.contact']
|
2018-11-18 00:37:27 +01:00
|
|
|
partners = self.partner_ids
|
|
|
|
|
2019-11-20 18:37:56 +01:00
|
|
|
add_list = partners.filtered('mass_mailing_contact_ids')
|
|
|
|
for partner in add_list:
|
|
|
|
partner.mass_mailing_contact_ids[0].list_ids |= self.mail_list_id
|
2018-11-18 00:37:27 +01:00
|
|
|
|
|
|
|
to_create = partners - add_list
|
|
|
|
for partner in to_create:
|
2015-08-28 11:15:50 +02:00
|
|
|
if not partner.email:
|
|
|
|
raise UserError(_("Partner '%s' has no email.") % partner.name)
|
2018-11-18 00:37:27 +01:00
|
|
|
contact_vals = {
|
|
|
|
'partner_id': partner.id,
|
|
|
|
'list_ids': [[6, 0, [self.mail_list_id.id]]],
|
|
|
|
'title_id': partner.title or False,
|
|
|
|
'company_name': partner.company_id.name or False,
|
|
|
|
'country_id': partner.country_id or False,
|
|
|
|
'tag_ids': partner.category_id or False,
|
|
|
|
}
|
|
|
|
contact_obj.create(contact_vals)
|