Browse Source

sendinblue suite (write)

dev-rcn
root 3 years ago
parent
commit
0b5d31ac62
2 changed files with 27 additions and 8 deletions
  1. +26
    -7
      models/mailing_list.py
  2. +1
    -1
      views/mailing_list.xml

+ 26
- 7
models/mailing_list.py View File

@ -50,10 +50,17 @@ class MailingContact(models.Model):
res = super(MailingContact, self).create(values) res = super(MailingContact, self).create(values)
#ajout du contact à la liste de diffusion #ajout du contact à la liste de diffusion
res.create_sendinblue_contact(
)
res.create_sendinblue_contact()
return res
def write(self, values):
res = super(MailingContact, self).write(values)
#ajout du contact à la liste de diffusion
self.create_sendinblue_contact()
return res return res
def get_info_sendinblue_contact(self): def get_info_sendinblue_contact(self):
#https://developers.sendinblue.com/reference/getfolders-1 #https://developers.sendinblue.com/reference/getfolders-1
f = open(SENDINBLUE_ACCOUNT_FILE) f = open(SENDINBLUE_ACCOUNT_FILE)
@ -84,11 +91,21 @@ class MailingContact(models.Model):
api_instance = sib_api_v3_sdk.ContactsApi(sib_api_v3_sdk.ApiClient(configuration)) api_instance = sib_api_v3_sdk.ContactsApi(sib_api_v3_sdk.ApiClient(configuration))
list_ids=[] list_ids=[]
res=self.get_info_sendinblue_contact() res=self.get_info_sendinblue_contact()
#si le contact existe dans sendinblue, on lui rajoute la nouvelle
# liste de diffusion
if res: if res:
for id in self.list_ids: for id in self.list_ids:
if not id.id_sendinblue_list in res.list_ids:
list_ids.append(int(id.id_sendinblue_list))
if id.id_sendinblue_list:
if not id.id_sendinblue_list in res.list_ids:
contact_emails = sib_api_v3_sdk.AddContactToList()
contact_emails.emails = [self.email]
try:
api_response = api_instance.add_contact_to_list(id.id_sendinblue_list, contact_emails)
pprint(api_response)
except ApiException as e:
continue
return True
#si le contact n'existe pas dans sendinblue, on le créé
else: else:
for id in self.list_ids: for id in self.list_ids:
list_ids.append(int(id.id_sendinblue_list)) list_ids.append(int(id.id_sendinblue_list))
@ -100,6 +117,8 @@ class MailingContact(models.Model):
api_response = api_instance.create_contact(create_contact) api_response = api_instance.create_contact(create_contact)
#raise Warning(api_response) #raise Warning(api_response)
pprint(api_response) pprint(api_response)
return True
except ApiException as e: except ApiException as e:
raise Warning("Exception when calling ContactsApi->create_list: %s\n" % e)
#raise Warning("Exception when calling ContactsApi->create_list: %s\n" % e)
return False

+ 1
- 1
views/mailing_list.xml View File

@ -7,7 +7,7 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//div[@class='oe_button_box']" position="inside"> <xpath expr="//div[@class='oe_button_box']" position="inside">
<button name="create_sendinblue_list" string="Create sendinblue list" <button name="create_sendinblue_list" string="Create sendinblue list"
attrs="{'invisible': [('id_sendinblue_list', '!=', False)]}" type="object" icon="fa-user" class="oe_stat_button">
attrs="{'invisible': [('id_sendinblue_list', '!=', 0)]}" type="object" icon="fa-user" class="oe_stat_button">
</button> </button>
</xpath> </xpath>


Loading…
Cancel
Save