Source code for fobi.contrib.plugins.form_importers.mailchimp_importer.base

from django.utils.translation import ugettext_lazy as _

from .....contrib.plugins.form_elements import fields
from .....form_importers import BaseFormImporter

from .views import MailchimpImporterWizardView

__title__ = 'fobi.contrib.plugins.form_importers.mailchimp_importer.base'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = '2014-2018 Artur Barseghyan'
__license__ = 'GPL 2.0/LGPL 2.1'
__all__ = ('MailChimpImporter',)


[docs]class MailChimpImporter(BaseFormImporter): """MailChimp data importer.""" uid = 'mailchimp' name = _("MailChimp") wizard = MailchimpImporterWizardView templates = [ 'mailchimp_importer/0.html', 'mailchimp_importer/1.html', ] # field_type (MailChimp): uid (django-fobi) fields_mapping = { # Implemented 'email': fields.email.UID, 'text': fields.text.UID, 'number': fields.integer.UID, 'dropdown': fields.select.UID, 'date': fields.date.UID, 'url': fields.url.UID, 'radio': fields.radio.UID, # Transformed into something else 'address': fields.text.UID, 'zip': fields.text.UID, 'phone': fields.text.UID, 'imageurl': fields.url.UID, # Not implemented yet # 'birthday': '???', } # Django standard: remote field_properties_mapping = { 'label': 'name', 'name': 'tag', 'help_text': 'helptext', 'initial': 'default', 'required': 'req', 'choices': 'choices', } field_type_prop_name = 'field_type' position_prop_name = 'order'
[docs] def extract_field_properties(self, field_data): """Extract field properties. Handle choices differently as we know what the mailchimp format is. """ field_properties = {} for prop, val in self.field_properties_mapping.items(): if val in field_data: if 'choices' == val: field_properties[prop] = "\n".join(field_data[val]) else: field_properties[prop] = field_data[val] return field_properties