Source code for fobi.contrib.plugins.form_importers.mailchimp_importer.forms
import mailchimp
from django import forms
__title__ = 'fobi.contrib.plugins.form_importers.mailchimp_importer.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = '2014-2018 Artur Barseghyan'
__license__ = 'GPL 2.0/LGPL 2.1'
__all__ = ('MailchimpAPIKeyForm', 'MailchimpListIDForm',)
[docs]class MailchimpAPIKeyForm(forms.Form):
"""MailchimpAPIKeyForm.
First form the the wizard. Here users are supposed to provide the
API key of their Mailchimp account.
"""
api_key = forms.CharField(required=True)
[docs]class MailchimpListIDForm(forms.Form):
"""MailchimpListIDForm.
Second form of the wizard. Here users are supposed to choose the form
they want to import.
"""
list_id = forms.ChoiceField(required=True, choices=[])
def __init__(self, *args, **kwargs):
"""Constructor."""
self._api_key = None
if 'api_key' in kwargs:
self._api_key = kwargs.pop('api_key', None)
super(MailchimpListIDForm, self).__init__(*args, **kwargs)
if self._api_key:
client = mailchimp.Mailchimp(self._api_key)
lists = client.lists.list()
choices = [(l['id'], l['name']) for l in lists['data']]
self.fields['list_id'].choices = choices
# else:
# self.fields['list_id'] = forms.CharField(required=True)