Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

pypm install redturtle.monkey

How to install redturtle.monkey

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install redturtle.monkey
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
Linux (64-bit)
1.2 Available View build log
Lastest release
version 1.2 on Jan 9th, 2014



Another MailChimp integration for Plone. We did have a reason to not use collective.mailchimp nor collective.chimpfeed (although we have reused/shared some of the concepts you can find there). Simply our use case is different (call it much simpler :)

Use case

Let say you want to configurate MailChimp campaign in Plone (including Plone content of course) and manually decide when to push it to chimp cloud service. This is what the redturtle.monkey actually do. You can:

  • create multiple campaign configurations
  • each configuration:
    • can contain different MailChimp API Keys (or you can use global ones)
    • contain different Plone items to be used as campaign content
    • can have a MailChimp template and subscribers list

What makes redturtle.monkey flexible is the ability to register custom MailChimp template sections (slots) and decide how to render them. A section is subscriber adapter that you can register with ZCML like that:

<subscriber provides="redturtle.monkey.interfaces.IMailchimpSlot"
            factory=".generic.Body" />

Then the factory is simple:

from redturtle.monkey.slots import Slot

class Body(Slot):
   name = u'body'

The name will be used later by MailChimp so it should correspondent to your mc:edit tag.

Last thing is to register content renderer for your new slot:

<adapter for="* *" factory=".generic.BodyRenderer" name="body"/>

but if you would like to render let say events differently you can do it:

<adapter for="Products.ATContentTypes.interfaces.IATEvent *"
         factory=".event.BodyRenderer" name="body"/>

It will then look like that:

from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
from redturtle.monkey.slots import SlotRenderer

class BodyRenderer(SlotRenderer):
    template = ViewPageTemplateFile("generic_body.pt")


1.2 (2013-03-26)
  • subscribe portlet now supports multi campaigns [amleczko]
1.1 (2013-03-12)
  • translation fixes [amleczko]
  • portlet hidden for anonymous [amleczko]
  • make sure only published content is used [amleczko]
1.0 (2013-03-05)
  • Initial release

Subscribe to package updates

Last updated Jan 9th, 2014

Download Stats

Last month:2

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.