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)