mailchimp fixes

standalone
Simon Caminada 8 years ago
parent cc3e58b323
commit 534e83143f

@ -18,4 +18,7 @@
font-size: em(300px);
font-weight: 900;
color: $light_gray;
br {
display: none;
}
}

@ -11,7 +11,7 @@ https://control.divio.com/api/v1/apps/serve/djangocms-text-ckeditor/3.5.3/a7b517
https://control.divio.com/api/v1/apps/serve/django-filer/1.3.0.1/bcb7d25b-6922-48a9-a252-9bc165f6403e/django-filer-1.3.0.1.tar.gz#egg=django-filer==1.3.0.1
# </INSTALLED_ADDONS>
Whoosh==2.7.4
aldryn-search==0.4.1
aldryn-search==0.5.0
django-fontawesome==0.3.1
mailchimp3==2.0.18
mailchimp3==2.1.0
django-image-cropping==1.1.0

@ -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':

Loading…
Cancel
Save