Commits

Jukka Ojaniemi committed 4c1785b

Comments (0)

Files changed (29)

-Introduction
-============
+Moved to GitHub
+===============
 
-*collective.addthis* is a simple Plone addon which brings `addthis.com`_ 
-services to Plone pages under document actions.
+Due to Plone collective being already present at github and the plans to
+move svn collective to github I decided to move collective.addthis to github 
+with the rest of collective.
 
-*collective.addthis* has customizable addthis url (pointing to your addthis
-username) and addthis javascript url (pointing to addthis javascript url).
-Those settings have default values which I got from `addthis.com`_ so that testing
-collective.addthis is easy. Those values are recommended to be changed if you're
-actually planning to use this addon.
+You can find collective.addthis from the below address:
 
-There are few other similar addons for Plone (`collective.prettysociable`_,
-`collective.plonebookmarklets`_, `sc.social.bookmarks`_) which does the same job,
-but they were too much customized to some direction to suit some specific needs.
-New `collective.sharerizer`_ is closest relative to *collective.addthis*. Differences
-between these two are that collective.sharerizer overrides document_actions where
-collective.addthis is placed under them in it's own viewlet.
+https://github.com/collective/collective.addthis
 
-.. _addthis.com: http://www.addthis.com 
-.. _collective.prettysociable: http://plone.org/products/collective.prettysociable
-.. _collective.plonebookmarklets: http://plone.org/products/plonebookmarklets
-.. _sc.social.bookmarks: http://plone.org/products/sc.social.bookmarks
-.. _collective.sharerizer: http://plone.org/products/collective.sharerizer
+Mercurial is still > than Git.

collective/__init__.py

-# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
-try:
-    __import__('pkg_resources').declare_namespace(__name__)
-except ImportError:
-    from pkgutil import extend_path
-    __path__ = extend_path(__path__, __name__)

collective/addthis/Extensions/Install.py

-from Products.CMFCore.utils import getToolByName
-
-def uninstall(portal, reinstall=False):
-    """ Take care of uninstall and skip everything if we're reinstalling """
-
-    if not reinstall:
-        portal_properties = getToolByName(portal, "portal_properties")
-        if 'addthis_properties' in portal_properties:
-            portal_properties._delObject('addthis_properties')
-
-        controlpanel = getToolByName(portal, 'portal_controlpanel')
-        if 'setAddThisSettings' in [a.getId() for a in controlpanel.listActions()]:
-            controlpanel.unregisterConfiglet('setAddThisSettings')    
-    return "Ran all uninstall steps."

collective/addthis/__init__.py

-# -*- coding: utf-8 -*-
-
-from zope.i18nmessageid import MessageFactory
-
-_ = MessageFactory('collective.addthis')
-
-
-def initialize(self):
-    pass

collective/addthis/addthis.css

-#socialtools {
-  float: right;
-}

collective/addthis/addthis.gif

Removed
Old image

collective/addthis/addthis.js

-var addthis_config = {
-    ui_click: true,
-    ui_hover_direction: 1,
-    ui_language: "en"
-};

collective/addthis/addthis.pt

-<!-- AddThis Button BEGIN -->
-<div class="addthis_toolbox addthis_default_style" id="socialtools" i18n:domain="collective.addthis">
-    <a href="#" class="addthis_button_compact" tal:attributes="href view/getAddThisURL" i18n:translate="">Share</a>
-    <span class="addthis_separator">|</span>
-    <tal:chicklet-block repeat="chicklet view/chicklets">
-        <tal:comment replace="nothing">The closing the a tag below is important. If it is not closed this way, illegitimate chicklets randomly show up on the page.</tal:comment>
-        <a tal:attributes="class python:'addthis_button_%s' % chicklet.value"></a>
-    </tal:chicklet-block>
-</div>
-<!-- AddThis Button END -->

collective/addthis/addthis.py

-from zope.component import getUtility
-from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
-from Products.CMFCore.utils import getToolByName
-from plone.app.layout.viewlets import common
-from zope.schema.interfaces import IVocabularyFactory
-
-
-class AddThisViewlet(common.ViewletBase):
-    """ AddThis viewlet """
-
-    index = ViewPageTemplateFile('addthis.pt')
-
-    @property
-    def _settings(self):
-        pprop = getToolByName(self.context, 'portal_properties')
-        return pprop.addthis_properties
-
-    @property
-    def chicklets(self):
-        chicklet_names = self._settings.addthis_chicklets
-        vocab = getUtility(IVocabularyFactory, name="AddThis Social Media")
-        chicklets = [term for term in vocab(self.context)
-                   if term.value in chicklet_names]
-        results = [None] * len(chicklet_names)
-        for chick in chicklets:
-            results[chicklet_names.index(chick.value)] = chick
-        return results
-
-    def getAddThisURL(self):
-        """ Returns URL to AddThis service. If that isn't specified we'll return random URL I got from
-        AddThis.com when this addon was developed. 
-        """
-        return self._settings.addthis_url or "http://www.addthis.com/bookmark.php?v=250&amp;username=xa-4b7fc6a9319846fd"

collective/addthis/addthissettings.py

-# -*- coding: utf-8 -*-
-
-from zope.interface import implements
-from zope.component import adapts
-from zope.app.component.hooks import getSite
-
-from plone.fieldsets.fieldsets import FormFields
-from plone.app.controlpanel.form import ControlPanelForm
-
-from Products.CMFPlone.interfaces import IPloneSiteRoot
-from Products.CMFDefault.formlib.schema import SchemaAdapterBase
-from Products.CMFPlone.utils import safe_hasattr
-from Products.CMFCore.utils import getToolByName
-from Products.CMFDefault.formlib.schema import ProxyFieldProperty
-
-from collective.addthis.interfaces import IAddThisControlPanelForm
-from collective.addthis.interfaces import IAddThisControlPanel
-from collective.addthis import _
-
-
-class AddThisControlPanelAdapter(SchemaAdapterBase):
-    adapts(IPloneSiteRoot)
-    implements(IAddThisControlPanelForm)
-
-    def __init__(self, context):
-        super(AddThisControlPanelAdapter, self).__init__(context)
-        self.portal = getSite()
-        pprop = getToolByName(self.portal, 'portal_properties')
-        self.context = pprop.addthis_properties
-
-    def get_addthis_url(self):
-        return getattr(self.context, 'addthis_url',
-                       getattr(self.context, 'addthis_url', None))
-    def set_addthis_url(self, value):
-        if safe_hasattr(self.context, 'addthis_url'):
-            self.context.addthis_url = value
-    addthis_url = ProxyFieldProperty(IAddThisControlPanelForm['addthis_url'])
-
-    def get_addthis_script_url(self):
-        return getattr(self.context, 'addthis_script_url',
-                       getattr(self.context, 'addthis_script_url', None))
-    def set_addthis_script_url(self, value):
-        if safe_hasattr(self.context, 'addthis_script_url'):
-            self.context.addthis_script_url = value
-    addthis_script_url = ProxyFieldProperty(IAddThisControlPanelForm['addthis_script_url'])
-
-    def get_addthis_chicklets(self):
-        return getattr(self.context, 'addthis_chicklets',
-                       getattr(self.context, 'addthis_chicklets', []))
-    def set_addthis_chicklets(self, value):
-        if safe_hasattr(self.context, 'addthis_chicklets'):
-            self.context.addthis_chicklets = value
-    addthis_chicklets = ProxyFieldProperty(IAddThisControlPanelForm['addthis_chicklets'])
-
-
-class AddThisControlPanel(ControlPanelForm):
-    """ Pathkey control panel """
-    
-    implements(IAddThisControlPanel)
-
-    form_fields = FormFields(IAddThisControlPanelForm)
-
-    form_name = _(u"AddThis settings")
-    label = _(u"AddThis settings")
-    description = _(u"Here you can customize Addthis settings")

collective/addthis/configure.zcml

-<configure
-    xmlns="http://namespaces.zope.org/zope"
-    xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
-    xmlns:browser="http://namespaces.zope.org/browser"
-    xmlns:i18n="http://namespaces.zope.org/i18n"
-    i18n_domain="collective.addthis">
-
-    <includeDependencies package="." />
-
-    <i18n:registerTranslations directory="locales" />
-
-    <browser:resource
-        name="addthis.js"
-        file="addthis.js"
-        />
-
-    <browser:resource
-        name="addthis.css"
-        file="addthis.css"
-        />
-
-    <browser:resource
-        name="addthis.gif"
-        file="addthis.gif"
-        />
-
-    <browser:viewlet
-        name="collective.addthis"
-        class=".addthis.AddThisViewlet"
-        manager="plone.app.layout.viewlets.interfaces.IBelowContentBody"
-        template="addthis.pt"
-        permission="zope.Public"
-        layer=".interfaces.IAddthisBrowserLayer"
-        />
-
-    <browser:page
-        for="Products.CMFPlone.interfaces.IPloneSiteRoot"
-        name="addthis-controlpanel"
-        class=".addthissettings.AddThisControlPanel"
-        permission="cmf.ManagePortal"
-        layer=".interfaces.IAddthisBrowserLayer"
-        />
-
-    <adapter factory=".addthissettings.AddThisControlPanelAdapter" />
-
-    <utility factory=".social_media.SocialMediaSources" />
-    <utility
-        component=".social_media.socialMediaVocabulary"
-        name="AddThis Social Media"
-        />
-
-    <genericsetup:registerProfile
-        name="default"
-        title="AddThis addon for Plone"
-        directory="profiles/default"
-        description="Extension profile for collective.addthis"
-        provides="Products.GenericSetup.interfaces.EXTENSION"
-        />
-
-    <genericsetup:upgradeDepends
-        title="Addition of the chicklet property settings"
-        description="Sets the chicklet settings to use the default set so that existing behavior does not change."
-        source="2"
-        destination="3"
-        profile="collective.addthis:default"
-        import_steps="propertiestool"
-        purge="False"
-        run_deps="False"
-        />
-
-</configure>

collective/addthis/interfaces.py

-# -*- coding: utf-8 -*-
-
-from zope.interface import Interface
-from zope import schema
-from collective.addthis import _
-from plone.theme.interfaces import IDefaultPloneLayer
-
-
-class IAddThis(Interface):
-    """ AddThis marker """
-
-
-class IAddThisControlPanel(Interface):
-    """ AddThis Controlpanel"""
-
-
-class IAddThisControlPanelForm(Interface):
-    """Control panel settings used to effect the rendering of the addthis
-    viewlet."""
-
-    addthis_url = schema.URI(title=_(u"AddThis URL"), required=False,)
-    addthis_script_url = schema.URI(
-        title=_(u"AddThis JavaScript URL"),
-        required=False,
-        )
-
-    addthis_chicklets = schema.List(
-        title=_(u"Social media selection"),
-        description=_(u"A list of social media items that will be displayed "
-                       "along side the share link as individual chicklets."),
-        required=False,
-        default=[],
-        value_type=schema.Choice(title=_(u"Social media"),
-                                 vocabulary="AddThis Social Media"),
-        )
-
-
-class IAddthisBrowserLayer(IDefaultPloneLayer):
-    """Addthis marker"""
-
-
-class ISocialMedia(Interface):
-    """A source of listing of social media supported by the addthis service."""
-
-    sources = schema.Iterable(
-        title=_(u"social media sources"),
-        description=_(u"A list of valid social media."),
-        )

collective/addthis/locales/collective.addthis.pot

-# --- PLEASE EDIT THE LINES BELOW CORRECTLY ---
-# SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2010-03-03 20:05+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0\n"
-"Language-Code: en\n"
-"Language-Name: English\n"
-"Preferred-Encodings: utf-8 latin1\n"
-"Domain: collective.addthis\n"
-
-#: ./interfaces.py:19
-msgid "AddThis JavaScript URL"
-msgstr ""
-
-#: ./interfaces.py:18
-msgid "AddThis URL"
-msgstr ""
-
-#: ./addthissettings.py:62
-msgid "AddThis settings"
-msgstr ""
-
-#: ./profiles/default/actionicons.xml
-msgid "Configure AddThis"
-msgstr ""
-
-#: ./addthissettings.py:64
-msgid "Here you can customize Addthis settings"
-msgstr ""
-
-#: ./addthis.pt:3
-msgid "Share"
-msgstr ""
-

collective/addthis/locales/fi/LC_MESSAGES/collective.addthis.po

-msgid ""
-msgstr ""
-"Project-Id-Version: collective.addthis\n"
-"POT-Creation-Date: 2010-03-03 20:05+0000\n"
-"PO-Revision-Date: 2010-03-03 22:09+0200\n"
-"Last-Translator: Jukka Ojaniemi <jukka.ojaniemi@jyu.fi>\n"
-"Language-Team: Finnish <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0\n"
-"Language-Code: fi\n"
-"Language-Name: Suomeksi\n"
-"Preferred-Encodings: utf-8 latin1\n"
-"Domain: collective.addthis\n"
-
-#: ./interfaces.py:19
-msgid "AddThis JavaScript URL"
-msgstr "AddThis JavaScript URL"
-
-#: ./interfaces.py:18
-msgid "AddThis URL"
-msgstr "AddThis URL"
-
-#: ./addthissettings.py:62
-msgid "AddThis settings"
-msgstr "AddThis asetukset"
-
-#: ./profiles/default/actionicons.xml
-msgid "Configure AddThis"
-msgstr "Muokkaa AddThis lisäosan asetuksia"
-
-#: ./addthissettings.py:64
-msgid "Here you can customize Addthis settings"
-msgstr "Täällä voit muokata AddThis lisäosan asetuksia"
-
-#: ./addthis.pt:3
-msgid "Share"
-msgstr "Jaa"
-

collective/addthis/profiles/default/actionicons.xml

-<?xml version="1.0"?>
-<action-icons xmlns:i18n="http://xml.zope.org/namespaces/i18n"
-          i18n:domain="collective.addthis">
-  <action-icon category="controlpanel"
-               action_id="setAddThisSettings"
-               title="Configure AddThis"
-               priority="0" icon_expr="++resource++addthis.gif"
-               i18n:attributes="title"/>
-</action-icons>

collective/addthis/profiles/default/browserlayer.xml

-<layers>
-    <layer name="collective.addthis"
-           interface="collective.addthis.interfaces.IAddthisBrowserLayer" />
-</layers>

collective/addthis/profiles/default/controlpanel.xml

-<?xml version="1.0"?>
-<object name="portal_controlpanel" meta_type="Plone Control Panel Tool">
-  <configlet title="Configure AddThis" action_id="setAddThisSettings"
-    appId="collective.addthis" category="Products"
-    condition_expr="python:True"
-    url_expr="string:${portal_url}/addthis-controlpanel"
-    visible="True"
-    icon_expr="string:$portal_url/++resource++addthis.gif"
-    >
-    <permission>Manage portal</permission>
-    Configure AddThis
-  </configlet>
-</object>

collective/addthis/profiles/default/cssregistry.xml

-<?xml version="1.0"?>
-<object name="portal_css" meta_type="Stylesheets Registry">
- <stylesheet title="" cacheable="True" compression="safe" cookable="True"
-    enabled="1" expression="" id="++resource++addthis.css" media="screen"
-    rel="stylesheet" rendering="import"/>
-</object>

collective/addthis/profiles/default/jsregistry.xml

-<?xml version="1.0"?>
-<object name="portal_javascripts">
-
- <javascript cacheable="False" compression="none" cookable="False" enabled="True"
-     expression="" id="http://s7.addthis.com/js/250/addthis_widget.js#username=xa-4b7fc6a9319846fd"
-     inline="False" />
-
- <javascript cacheable="True" compression="safe" cookable="True" enabled="True"
-     expression="" id="++resource++addthis.js" 
-     inline="False" />
-
-</object>

collective/addthis/profiles/default/metadata.xml

-<?xml version="1.0"?>
-<metadata>
-  <version>3</version>
-</metadata>

collective/addthis/profiles/default/propertiestool.xml

-<?xml version="1.0"?>
-<object name="portal_properties" meta_type="Plone Properties Tool">
- <object name="addthis_properties" meta_type="Plone Property Sheet" purge="True">
-  <property name="title">AddThis settings</property>
-  <property name="addthis_url" type="string" purge="False">http://www.addthis.com/bookmark.php?v=250&amp;username=xa-4b7fc6a9319846fd</property>
-  <property name="addthis_script_url" type="string" purge="False">http://s7.addthis.com/js/250/addthis_widget.js#username=xa-4b7fc6a9319846fd</property>
-  <property name="addthis_chicklets" type="lines" purge="False">
-   <element value="facebook" />
-   <element value="blogger" />
-   <element value="livejournal" />
-   <element value="wordpress" />
-   <element value="google" />
-   <element value="twitter" />
-  </property>
- </object>
-</object>

collective/addthis/social_media.py

-# -*- coding: utf-8 -*-
-import json
-from urllib import urlopen
-from zope.interface import implements, alsoProvides
-from zope.component import getUtility
-from zope.schema.interfaces import IVocabularyFactory
-from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
-from collective.addthis.interfaces import ISocialMedia
-
-SHARING = "http://cache.addthiscdn.com/services/v1/sharing.en.json"
-
-
-class SocialMediaSources(object):
-    """Provides a list of Social Media supported by the addthis.com service."""
-    implements(ISocialMedia)
-
-    def _services(self):
-        """Returns the services using that addthis API"""
-        response = urlopen(SHARING)
-        data = json.load(response)
-        # FIXME Error handling?
-        return data[u'data']
-
-    @property
-    def sources(self):
-        for service in self._services():
-            try:
-                unicode(service[u'name'], 'utf-8')
-            except TypeError:
-                value = service[u'name'].encode('ascii', 'ignore')
-                service[u'name'] = unicode(value)
-            yield (service[u'name'], service[u'code'],)
-        raise StopIteration
-
-
-def socialMediaVocabulary(context):
-    """Vocabulary factory for social media sources."""
-    utility = getUtility(ISocialMedia)
-    terms = [SimpleTerm(value, token, token)
-             for token, value in utility.sources]
-    return SimpleVocabulary(terms)
-
-alsoProvides(socialMediaVocabulary, IVocabularyFactory)

collective/addthis/tests/__init__.py

-#

collective/addthis/tests/base.py

-import unittest
-
-from zope.testing import doctestunit
-from zope.component import testing
-from Testing import ZopeTestCase as ztc
-
-from Products.Five import zcml
-from Products.Five import fiveconfigure
-from Products.PloneTestCase import PloneTestCase as ptc
-from Products.PloneTestCase.layer import PloneSite
-from Products.PloneTestCase.layer import onsetup
-
-@onsetup
-def setup_product():
-    """Set up the package and its dependencies.
-    
-    The @onsetup decorator causes the execution of this body to be deferred
-    until the setup of the Plone site testing layer. We could have created our
-    own layer, but this is the easiest way for Plone integration tests.
-    """
-    
-    fiveconfigure.debug_mode = True
-    import collective.addthis
-    zcml.load_config('configure.zcml', collective.addthis)
-    fiveconfigure.debug_mode = False
-        
-    ztc.installPackage('collective.addthis')
-    
-
-setup_product()
-ptc.setupPloneSite(products=['collective.addthis'])
-
-
-class AddThisTestCase(ptc.PloneTestCase):
-    """Base class for integration tests.
-
-    This may provide specific set-up and tear-down operations, or provide
-    convenience methods.
-    """
-
-class AddThisFunctionalTestCase(ptc.FunctionalTestCase):
-    """We use this class for functional integration tests that use doctest
-    syntax. Again, we can put basic common utility or setup code in here.
-    """

collective/addthis/tests/functional.txt

-====================
-A functional doctest
-====================
-
-First, we must perform some setup. We use the testbrowser that is shipped
-with Five, as this provides proper Zope 2 integration. Most of the 
-documentation, though, is in the underlying zope.testbrower package.
-
-    >>> from Products.Five.testbrowser import Browser
-    >>> browser = Browser()
-    >>> portal_url = self.portal.absolute_url()
-
-Test if our front page has AddThis viewlet visible.
-
-    >>> browser.open(portal_url)
-    >>> "<!-- AddThis Button BEGIN -->" in browser.contents
-    True
-
-Yay! It's working.

collective/addthis/tests/test_functional_doctests.py

-import unittest
-import doctest
-import interlude
-
-from Testing import ZopeTestCase as ztc
-
-from collective.addthis.tests import base
-
-def test_suite():
-    """This sets up a test suite that actually runs the tests in the class
-    above
-    """
-    return unittest.TestSuite([
-
-        ztc.ZopeDocFileSuite(
-            'tests/functional.txt', package='collective.addthis',
-            test_class=base.AddThisFunctionalTestCase,
-            optionflags=doctest.REPORT_ONLY_FIRST_FAILURE | doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS,
-            #globs=dict(interact=interlude.interact,)
-            ),
-            
-        # We could add more doctest files here as well, by copying the file
-        # block above.
-
-        ])

collective/addthis/tests/tests_setup.py

-from base import AddThisTestCase
-
-
-class TestProductInstall(AddThisTestCase):
-
-    def afterSetUp(self):
-        pass
-        # self.types = ('InstantMessage',)
-
-
-class TestInstantiation(AddThisTestCase):
-
-    def afterSetUp(self):
-        self.default_url = "http://www.addthis.com/bookmark.php?v=250&username=xa-4b7fc6a9319846fd"
-        self.default_script = "http://s7.addthis.com/js/250/addthis_widget.js#username=xa-4b7fc6a9319846fd"
-        self.new_url = 'http://www.example.com'  
-        pass
-
-    def testAddThisProperties(self):
-        """ Fail if we don't have addthis_properties inside portal_properties """
-        self.failUnless('addthis_properties' in self.portal.portal_properties.objectIds())
-
-    def testAddThisDefaultURLProperty(self):
-        """ Fail unless we don't have default URL in addthis_url field """
-        addthis_properties = self.portal.portal_properties.addthis_properties
-        self.assertEquals(addthis_properties.addthis_url, self.default_url)
-
-    def testAddThisDefaultScriptURLProperty(self):
-        """ Fail unless we don't have default script URL in addthis_script_url field """
-        addthis_properties = self.portal.portal_properties.addthis_properties
-        self.assertEquals(addthis_properties.addthis_script_url, self.default_script)
-
-    def testAddThisSetURL(self):
-        addthis_properties = self.portal.portal_properties.addthis_properties
-        addthis_properties.addthis_url = self.new_url
-        self.assertEquals(addthis_properties.addthis_url, self.new_url)
-
-    def testAddThisSetScriptURL(self):
-        addthis_properties = self.portal.portal_properties.addthis_properties
-        addthis_properties.addthis_script_url = self.new_url
-        self.assertEquals(addthis_properties.addthis_script_url, self.new_url)
-
-    def testAddThisCSSResources(self):
-        portal_css = self.portal.portal_css
-        self.failUnless('++resource++addthis.css' in portal_css.getResourcesDict().keys())
-
-    def testAddThisJSResources(self):
-        portal_javascripts = self.portal.portal_javascripts
-        self.failUnless('++resource++addthis.js' in portal_javascripts.getResourcesDict().keys())
-
-
-def test_suite():
-    from unittest import TestSuite, makeSuite
-    suite = TestSuite()
-    suite.addTest(makeSuite(TestProductInstall))
-    suite.addTest(makeSuite(TestInstantiation))
-    return suite

docs/HISTORY.txt

-Changelog
-=========
-
-1.1.1 Released 2011-08-18
--------------------------
-- Fixed packaging problems.
-
-1.1 Released 2011-08-17
------------------------
-- Added a configuration setting that allows the user to select which
-  chicklets display on the page. [pumazi]
-
-1.0.3 Released 2010-11-26
--------------------------
-- External javascript cannot be cached, cooked or merged (klingel).
-- Removed a comma from the javscript to fix an error in IE (huub_bouma).
-- Changed the default UI langage from Finnish to English (huub_bouma).
-
-1.0.2 Released 2010-03-15
--------------------------
-- Added random addthis url to jsregistry.
-- Changed GS profile name (collective.addthis -> default).
-
-1.0.1 Released 2010-03-03
--------------------------
-- Package had missing locales folder and was broken. Fixed and tested.
-  that everything works correctly now.
-
-1.0 Released 2010-03-03
------------------------
-- Initial release.
-- Adds addthis viewlet under content body.

setup.py

-from setuptools import setup, find_packages
-import os
-
-version = '1.1.1'
-
-setup(name='collective.addthis',
-      version=version,
-      description="AddThis addon for Plone CMS",
-      long_description=open("README.txt").read() + "\n" +
-                       open(os.path.join("docs", "HISTORY.txt")).read(),
-      # Get more strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
-      classifiers=[
-        "Framework :: Plone",
-        "Programming Language :: Python",
-        "Topic :: Software Development :: Libraries :: Python Modules",
-        ],
-      keywords='AddThis',
-      author='Jukka Ojaniemi',
-      author_email='jukka.ojaniemi@jyu.fi',
-      url='http://bitbucket.org/pingviini/collective.addthis/wiki/Home',
-      license='GPL',
-      packages=find_packages(exclude=['ez_setup']),
-      namespace_packages=['collective'],
-      include_package_data=True,
-      zip_safe=False,
-      install_requires=[
-          'setuptools',
-          # -*- Extra requirements: -*-
-      ],
-      entry_points="""
-      # -*- Entry points: -*-
-      [z3c.autoinclude.plugin]
-      target = plone
-      """,
-      )