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-2019 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)