Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 Evitar subscripció a mailchimp de mails anonimitzats #709

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions som_polissa_soci/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
# -*- coding: utf-8 -*-
import giscedata_polissa
import giscedata_facturacio
import giscedata_cups
import models
import wizard
import somenergia_soci
import res_partner_address
import res_partner
21 changes: 11 additions & 10 deletions som_polissa_soci/__terp__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,23 @@
"giscedata_lectures_estimacio",
"giscedata_polissa_category",
],
"init_xml": ["res_partner_data.xml"],
"demo_xml": ["res_partner_demo_data.xml"],
"init_xml": [],
"demo_xml": ["demo/res_partner_demo_data.xml"],
"update_xml": [
"giscedata_polissa_view.xml",
"giscedata_facturacio_data.xml",
"giscedata_polissa_category_data.xml",
"res_partner_view.xml",
"somenergia_soci_view.xml",
"giscedata_facturacio_view.xml",
"views/giscedata_polissa_view.xml",
"data/giscedata_facturacio_data.xml",
"data/giscedata_polissa_category_data.xml",
"views/res_partner_view.xml",
"views/somenergia_soci_view.xml",
"views/giscedata_facturacio_view.xml",
"wizard/wizard_update_invoice_check_ov_visible_view.xml",
"security/ir.model.access.csv",
"giscedata_som_soci_data.xml",
"data/giscedata_som_soci_data.xml",
"wizard/wizard_subscribe_client_mailchimp.xml",
"wizard/wizard_subscribe_soci_mailchimp.xml",
"wizard/wizard_unsubscribe_soci_mailchimp.xml",
"somenergia_soci_data.xml",
"data/somenergia_soci_data.xml",
"data/res_partner_data.xml",
],
"active": False,
"installable": True,
Expand Down
8 changes: 8 additions & 0 deletions som_polissa_soci/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from . import giscedata_polissa
from . import giscedata_facturacio
from . import giscedata_cups
from . import somenergia_soci
from . import res_partner_address
from . import res_partner
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@
"Compra Coletiva": "MMERGE19",
}

mail_ningu = "[email protected]"


class ResPartnerAddress(osv.osv):
"""Class to manage Mailchimp lists subscriptions"""
Expand All @@ -61,20 +63,20 @@ def write(self, cursor, uid, ids, vals, context=None):
if not isinstance(ids, (list, tuple)):
ids = [ids]

MAILCHIMP_CLIENT = MailchimpMarketing.Client(
dict(
api_key=config.options.get("mailchimp_apikey"),
server=config.options.get("mailchimp_server_prefix"),
)
)
if "email" in vals:
MAILCHIMP_CLIENT = MailchimpMarketing.Client(
dict(
api_key=config.options.get("mailchimp_apikey"),
server=config.options.get("mailchimp_server_prefix"),
)
)
for _id in ids:
old_email = self.read(cursor, uid, _id, ["email"])["email"]
email = vals["email"]
if not old_email or old_email == email:
continue

if not email:
if not email or email == mail_ningu:
self.unsubscribe_client_email_in_all_lists_async(
cursor, uid, _id, old_email, MAILCHIMP_CLIENT
)
Expand Down Expand Up @@ -260,6 +262,12 @@ def update_client_email_in_all_lists(
all_lists = mailchimp_conn.lists.get_all_lists(
fields=["lists.id,lists.name"], count=100, email=old_email
)["lists"]
if not all_lists:
logger.warning(
"El email {} no s'ha actualitzat ja que no està subscrit en cap llista.\n".format(
old_email
)
)

for _id in ids:
for mchimp_list in all_lists:
Expand Down
2 changes: 1 addition & 1 deletion som_polissa_soci/tests/tests_partner_address.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from destral import testing
from destral.transaction import Transaction

from .. import res_partner_address
from som_polissa_soci.models import res_partner_address


class FakeMailchimpLists:
Expand Down
4 changes: 4 additions & 0 deletions som_polissa_soci/wizard/wizard_subscribe_client_mailchimp.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import mailchimp_marketing as MailchimpMarketing
from tools import config

mail_ningu = "[email protected]"


class WizardSubscribeClientMailchimp(osv.osv_memory):
"""Assistent per subscriure una persona clienta no sòcia al Mailchimp"""
Expand Down Expand Up @@ -43,6 +45,8 @@ def subscribe_client_address(self, cursor, uid, ids, context=None):
address_data = address_obj.read(cursor, uid, address, ["email", "partner_id"])
if not address_data["email"]:
raise osv.except_osv(u"Error", u"L'adreça seleccionada no té email")
if address_data["email"] == mail_ningu:
continue

is_member = soci_obj.search(
cursor,
Expand Down
4 changes: 4 additions & 0 deletions som_polissa_soci/wizard/wizard_subscribe_soci_mailchimp.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import mailchimp_marketing as MailchimpMarketing
from tools import config

mail_ningu = "[email protected]"


class WizardSubscribeSociMailchimp(osv.osv_memory):
"""Assistent per subscriure una persona sòcia al Mailchimp"""
Expand Down Expand Up @@ -42,6 +44,8 @@ def subscribe_soci_address(self, cursor, uid, ids, context=None):
address_data = address_obj.read(cursor, uid, address, ["email", "partner_id"])
if not address_data["email"]:
raise osv.except_osv(u"Error", u"L'adreça seleccionada no té email")
if address_data["email"] == mail_ningu:
continue

is_member = soci_obj.search(
cursor,
Expand Down
4 changes: 4 additions & 0 deletions som_polissa_soci/wizard/wizard_unsubscribe_soci_mailchimp.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import mailchimp_marketing as MailchimpMarketing
from tools import config

mail_ningu = "[email protected]"


class WizardUnsubscribeSociMailchimp(osv.osv_memory):
"""Assistent per subscriure una persona sòcia al Mailchimp"""
Expand Down Expand Up @@ -42,6 +44,8 @@ def unsubscribe_soci_address(self, cursor, uid, ids, context=None):
address_data = address_obj.read(cursor, uid, address, ["email", "partner_id"])
if not address_data["email"]:
raise osv.except_osv(u"Error", u"L'adreça seleccionada no té email")
if address_data["email"] == mail_ningu:
continue

is_member = soci_obj.search(
cursor,
Expand Down
Loading