You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.3 KiB

  1. # -*- coding: utf-8 -*-
  2. # See README.rst file on addon root folder for license details
  3. from openerp import models, api, fields, _
  4. from openerp.exceptions import Warning as UserError
  5. class PartnerMailListWizard(models.TransientModel):
  6. _name = "partner.mail.list.wizard"
  7. _description = "Create contact mailing list"
  8. mail_list_id = fields.Many2one(comodel_name="mail.mass_mailing.list",
  9. string="Mailing List")
  10. partner_ids = fields.Many2many(
  11. comodel_name="res.partner", relation="mail_list_wizard_partner",
  12. default=lambda self: self.env.context.get("active_ids"))
  13. @api.multi
  14. def add_to_mail_list(self):
  15. contact_obj = self.env['mail.mass_mailing.contact']
  16. for partner in self.partner_ids:
  17. if not partner.email:
  18. raise UserError(_("Partner '%s' has no email.") % partner.name)
  19. criteria = [('email', '=', partner.email),
  20. ('list_id', '=', self.mail_list_id.id)]
  21. contact_test = contact_obj.search(criteria)
  22. if contact_test:
  23. continue
  24. contact_vals = {
  25. 'email': partner.email,
  26. 'name': partner.name,
  27. 'list_id': self.mail_list_id.id
  28. }
  29. contact_obj.create(contact_vals)