History
=======


0.7.2 (2015-01-05)
------------------

- Add ``MANIFEST.in``.
  [WouterVH]

- Added z3c.autoinclude-entrypoint to mark this as a Plone-plugin. This avoids 
  the need to explicitly load the zcml-slug. 
  [WouterVH]

- Fixed ImportErrors when zope.app.intid is not available but only
  zope.intid.
  [maurits]

- Added empty English translation, needed in corner cases with sites
  that support multiple languages.
  [maurits]

- Added Italian translations.
  Refs https://bugs.launchpad.net/singing-dancing/+bug/466764
  [andrea-cecchi85]

- Add IJob interface and let Job implements it.
  [toutpt]

- Fix for plone 4.3 
  [kiorky].


0.7.1 (2010-12-03)
------------------

- Added ``keep_sent_messages`` flag on channels which, if set to
  ``False`` (the default), suppresses the behavior which would
  otherwise put sent messages into a persistent queue.

  If sent messages are dropped (as per this flag), an entry is instead
  written to the log to keep a minimal record of events.
  [malthe]


0.7.0 (2010-11-04)
-------------------

- Moved z3c widget template registration for radio buttons and checkboxes 
  from ``browser/configure.zcml`` into ``widgets.zcml`` because every version 
  of z3c.form after 2.3.3 includes these template registrations and double 
  registration raises ConfigurationConflictError.  [saily] 


0.6.15 (2010-08-01)
-------------------

- import zope.app.container.interfaces; this helps for Plone 4
  compatibility.
  [maurits]

- strange issue with equality of scheduler objects adressed.
  This seems to only be an issue in python 2.6.
  This should probably be released soon since it fixes a lot
  of bugs in the ForPloneFour branch of dancing.
  [tmog]
  
- Norwegian translation. [regebro]


0.6.14 (2010-04-07)
-------------------

- Update Dutch translation.
  [maurits]

- Update French translation
  [toutpt]


0.6.13 (2009-10-19)
-------------------

- API change! Added boolean "subscribeable" to IChannel.
  [tmog]

- Added Brazilian translation 
  [lucmult]


0.6.12 (2009-06-11)
-------------------

- Optimization for clearing a MessageQueue. We now simple create a fresh
  queue instead of pull()'ing all items (pulling is quite expensive with
  CompositeQueue).
  [tmog]

- Subscription creation date is now used as que when the subscription has
  no real cue. I.e. the first time a new subscription is used.
  I was amazed to find this was not already the case.
  [tmog]

- Triggering a periodic scheduler that has a delta now always updates
  trickered_last by a product of that delta. This means the periodic
  schedulers now no longer suffer from the time "drift" that resulted
  from always saving the precise triggering time to their triggered_last
  attribute. 
  [tmog]

- Added caching of item formatting via plone.memoize.request.
  This really(!) speeds up message generation, especially when
  sending 'full' items from 'send as newsletter'.
  [tmog]


0.6.11 (2009-03-11)
-------------------

- Added optional keyword argument 'override_vars' to IComposer.render and
  MessageAssemble.__call__ methods. This is to facilitate overriding of
  composer_vars. For example from the sendnewsletter.html form in
  collective.dancing. Send-outs stored in TimedScheduler will now
  also include 'override_vars'.
  [tmog]

- Removed version pinning of zope.app.catalog to <= 3.6.0.  This is
  handled through our external extends file now.  See
  https://svn.plone.org/svn/collective/collective.dancing/buildout-extends/0.8.7.cfg
  and http://pypi.python.org/pypi/collective.dancing#installation
  [nouri]


0.6.10 (2009-02-01)
-------------------

- Changed eventhandlers for subscriptions indexing to look for
  the Subscriptions object in 'channel._subscriptions' first.
  This allows for a property decorated 'subscriptions' function
  that keeps data in '_subscriptions'.
  [tmog]


0.6.9 (2009-01-20)
------------------

- Pinned zope.app.catalog version to pre 3.6.0 to avoid issue in
  https://bugs.launchpad.net/singing-dancing/+bug/301082
  [tmog]


0.6.8 (2009-01-02)
------------------

- MessageQueues are now collective.singing.queue.CompositeQueue - an
  optimized version of zc.queue.CompositeQueue. This offers a _much_
  faster __len__ and  faster access to last queue element.
  Tests are stolen from zc.queue with added length checking everywhere.
  This maybe belongs directly in zc.queue, but adding stuff in zc namespace
  is not for me. ;-)  
  [tmog]
  

0.6.7 (2008-12-03)
------------------

- Part of Czech translation.  
  [naro]

- Some refactoring in order to allow for more customized subscription forms.
  [nouri]

- Added french translation.


0.6.6 (2008-11-13)
------------------

- Add the subscriber languages to subscription metadata at
  subscription time.  [nouri]


0.6.5 (2008-11-05)
------------------

- Used ``i18ndude`` to find all untranslated msgid's. Some line-numbers were
  corrected, but nothing changed in ``collective.singing``.  There were some
  updates in collective.dancing, so all guy's please help updating 
  collective.dancing's po files.  [saily]

- Add ``async`` module that allows to queue jobs for asynchronous
  execution.  Creating this was necessary because ``zc.async`` is not
  available for all Zope versions that ``collective.dancing`` aims to
  work with.  :-( [nouri]

- Allow for more finer grained control of cue in
  ``IMessageAssemble.render_message``.  This allows a preview function
  to request the cue to be used but not to be set when rendering a
  preview. [nouri]


0.6.4 (2008-10-29)
------------------

- Added optional checking for channel attr 'sendable' to
  channel_lookup. Sending of a content item from the
  sendnewsletter view in dancing uses this feature, to be able
  to supress some channels. Also added vocabularies that contain
  only sendable or only subscribeable channels.
  [tmog]

- Relabelled buttons on the stats page to use the term 'clear' rather
  than 'flush'. Also renamed related handlers and method. [russf]


0.6.3 (2008-09-11)
------------------

- Register the SubscriptionSearchableText adapter so that the fulltext
  index is actually populated. [nouri]


0.6.2 (2008-09-03)
------------------

- Add 'headers' argument to ``mail.create_html_mail`` to allow the
  injection of more e-mail headers. [nouri]


0.6.1 (2008-08-28)
------------------

- Add zope.sendmail as a dependency so that we get the latest and
  greates release. [nouri]

- IMailDelivery expects ``toaddrs`` to be a list of addresses. [nouri]

- Use DumbWriters word wrapping to ensure that no text line
  is longer than plain_text_maxcols characters. [saily]

- Using HTMLParser.anchorlist to append all links found in 
  a message at the bottom of the text/plain message. [saily]


0.6.0 (2008-08-21)
------------------

- Moved 'singing.scheduler.assemble_messages' and 'render_message'
  into their own IMessageAssemble adapter (on channel).  This allows
  for easier hooking into these policy-riddled functions to make them
  work differently for different types of channels.  Also, added a
  small flag that allows to ignore the subscriber's 'cue' completely.
  [nouri]


0.5.0 (2008-07-29)
------------------

- Start depending on plone.z3cform>=0.3dev
  [nouri]


0.4 (2008-07-23)
----------------

- Added optional checking for channel attr 'subscribeable' to
  channel_lookup. Subscription validaton and the subscribe portlet use
  this feature.
  [tmog]

- Bringing versioning in line with
  http://peak.telecommunity.com/DevCenter/setuptools
  [stonor]

- Added full_schema used on the edit page for Filtered Collectors. Now
  we can re-edit these ;-)
  [tmog]

- Make call of MessageQueues.flush() more flexible to get a handy
  method to flush also new messages. this doesnt change any current
  behaviour.
  [jensens]

- Added Polish translation by Barbara Struk
  [naro]


0.3 (2008-06-03)
----------------

- Use zc.lockfile instead of the excessive use of transaction.commit()
  to lock the queue processing.
  [nouri]

- Use email.Header module for message header formatting
  Refactored mail.py to create messages MIMEMultipart based
  [naro]
  
- added Czech translation
  [naro]
  
0.2 (2008-05-06)
----------------

- Commit after pulling a message from the queue.
  [nouri]

- ITransform is now an adapter on the content being transformed
  instead of a utility.  This allows us to use the content's URL
  when rewriting links.
  [tmog]

- updated pot and danish translation.
  [bartholdy]

- Add button to subscribe form to "Send my subscription details",
  for when subscribers forgot their secret.
  [nouri]

- Cleaned up a bit in a few templates. Needed to structure
  view/Desvription in wizard. Got rid of annoying label filters in
  wizard-step.
  [bartholdy]
