forked from TagesschuleElementa/www.tagesschule-elementa.ch
mailchimp fixes
This commit is contained in:
@@ -274,7 +274,7 @@ class NewsletterArchivePlugin(CMSPluginBase):
|
||||
|
||||
def render(self, context, instance, placeholder):
|
||||
context = super(NewsletterArchivePlugin, self).render(context, instance, placeholder)
|
||||
client = MailChimp(settings.MAILCHIMP_USERNAME, settings.MAILCHIMP_API_KEY)
|
||||
client = MailChimp(settings.MAILCHIMP_API_KEY, settings.MAILCHIMP_USERNAME)
|
||||
|
||||
campaigns = []
|
||||
for raw_campaign in client.campaigns.all(get_all=True)['campaigns']:
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from django.utils.translation import ugettext_lazy as _, get_language
|
||||
import hashlib
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from mailchimp3 import MailChimp
|
||||
|
||||
client = MailChimp(settings.MAILCHIMP_USERNAME, settings.MAILCHIMP_API_KEY)
|
||||
field_names = [_('First Name'), _('Last Name')]
|
||||
newsletter_client = MailChimp(settings.MAILCHIMP_API_KEY, settings.MAILCHIMP_USERNAME)
|
||||
newsletter_field_names = {
|
||||
'FNAME': _('Vorname'),
|
||||
'LNAME': _('Nachname'),
|
||||
}
|
||||
|
||||
|
||||
class NewsletterSubscriptionForm(forms.Form):
|
||||
@@ -14,13 +18,13 @@ class NewsletterSubscriptionForm(forms.Form):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(NewsletterSubscriptionForm, self).__init__(*args, **kwargs)
|
||||
merge_fields = client.lists.merge_fields.all(list_id=settings.MAILCHIMP_LIST_ID, get_all=True)
|
||||
merge_fields = newsletter_client.lists.merge_fields.all(list_id=settings.MAILCHIMP_LIST_ID, get_all=True)
|
||||
for field in merge_fields['merge_fields']:
|
||||
if field['type'] == 'text':
|
||||
self.fields[field['tag']] = forms.CharField(
|
||||
label=field['name'], required=field['required'],
|
||||
widget=forms.TextInput(
|
||||
attrs={'placeholder': _(field['name'])}
|
||||
attrs={'placeholder': newsletter_field_names[field['tag']]}
|
||||
)
|
||||
)
|
||||
|
||||
@@ -31,12 +35,17 @@ class NewsletterSubscriptionForm(forms.Form):
|
||||
merge_data.pop('email')
|
||||
|
||||
try:
|
||||
client.lists.members.create(settings.MAILCHIMP_LIST_ID, {
|
||||
'email_address': cleaned_data['email'],
|
||||
'language': get_language(),
|
||||
'status': 'subscribed',
|
||||
'merge_fields': merge_data,
|
||||
})
|
||||
newsletter_client.lists.members.create_or_update(
|
||||
settings.MAILCHIMP_LIST_ID,
|
||||
hashlib.md5(cleaned_data['email'].lower().encode('utf-8')).hexdigest(),
|
||||
{
|
||||
'email_address': cleaned_data['email'],
|
||||
'language': get_language(),
|
||||
'status_if_new': 'pending',
|
||||
'status': 'pending',
|
||||
'merge_fields': merge_data,
|
||||
}
|
||||
)
|
||||
except Exception as err:
|
||||
json_err = err.response.json()
|
||||
if json_err['title'] == 'Member Exists':
|
||||
|
||||
Reference in New Issue
Block a user