A Zope 3 library for sending notifications and newsletters
Project description
Abstract
Singing is a Zope 3 library for sending notifications and newsletters.
You can find the development version of collective.singing in the Subversion repository.
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]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.