forked from TagesschuleElementa/www.tagesschule-elementa.ch
mailchimp fixes
This commit is contained in:
@@ -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':
|
||||
|
||||
Reference in New Issue
Block a user