Skip to content

Commit

Permalink
Exclude opt_out. (OCA#110)
Browse files Browse the repository at this point in the history
[FIX][mass_mailing_partner] Exclude opt_out.

Now opted-out records will not be counted in the "Mailing lists" smart button
in the partner form.
  • Loading branch information
yajo authored and chienandalu committed Jun 15, 2017
1 parent db7ab6a commit 26849ba
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 9 deletions.
3 changes: 2 additions & 1 deletion mass_mailing_partner/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,10 @@ Contributors
------------

* Pedro M. Baeza <pedro.baeza@serviciosbaeza.com>
* Rafael Blasco <rafabn@antiun.com>
* Rafael Blasco <rafael.blasco@tecnativa.com>
* Antonio Espinosa <antonioea@antiun.com>
* Javier Iniesta <javieria@antiun.com>
* Jairo Llopis <jairo.llopis@tecnativa.com>

Maintainer
----------
Expand Down
2 changes: 1 addition & 1 deletion mass_mailing_partner/__openerp__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

{
"name": "Link partners with mass-mailing",
"version": "8.0.2.0.0",
"version": "8.0.2.1.0",
"author": "Tecnativa, "
"Antiun Ingeniería S.L., "
"Serv. Tecnol. Avanzados - Pedro M. Baeza, "
Expand Down
15 changes: 10 additions & 5 deletions mass_mailing_partner/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@
class ResPartner(models.Model):
_inherit = 'res.partner'

mass_mailing_contacts = fields.One2many(
mass_mailing_contact_ids = fields.One2many(
string="Mailing lists",
oldname="mass_mailing_contacts",
domain=[('opt_out', '=', False)],
comodel_name='mail.mass_mailing.contact', inverse_name='partner_id')
mass_mailing_contacts_count = fields.Integer(
string='Mailing list number',
Expand All @@ -28,15 +30,16 @@ class ResPartner(models.Model):
@api.one
@api.constrains('email')
def _check_email_mass_mailing_contacts(self):
if self.mass_mailing_contacts and not self.email:
if self.mass_mailing_contact_ids and not self.email:
raise ValidationError(
_("This partner '%s' is subscribed to one or more "
"mailing lists. Email must be assigned." % self.name))

@api.one
@api.depends('mass_mailing_contacts')
@api.depends('mass_mailing_contact_ids',
'mass_mailing_contact_ids.opt_out')
def _compute_mass_mailing_contacts_count(self):
self.mass_mailing_contacts_count = len(self.mass_mailing_contacts)
self.mass_mailing_contacts_count = len(self.mass_mailing_contact_ids)

@api.one
@api.depends('mass_mailing_stats')
Expand All @@ -52,5 +55,7 @@ def write(self, vals):
mm_vals['name'] = vals['name']
if vals.get('email'):
mm_vals['name'] = vals['email']
self.mapped('mass_mailing_contacts').write(mm_vals)
self.env["mail.mass_mailing.contact"].search([
("partner_id", "in", self.ids),
]).write(mm_vals)
return res
4 changes: 2 additions & 2 deletions mass_mailing_partner/views/res_partner_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@
<field name="priority">20</field>
<field name="arch" type="xml">
<field name="category_id" position="after">
<field name="mass_mailing_contacts" string="Mailing List"
filter_domain="[('mass_mailing_contacts.list_id','ilike', self)]"/>
<field name="mass_mailing_contact_ids" string="Mailing List"
filter_domain="[('mass_mailing_contact_ids.list_id','ilike', self)]"/>
</field>
</field>
</record>
Expand Down

0 comments on commit 26849ba

Please sign in to comment.