This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
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.4 (2015-11-03)

  • zc.queue should be less than 2.0.0a1 to not pull in ZODB4 and friends. [ale-rt]
  • fix TypeError on __cmp__ in AbstractPeriodicScheduler class. [ivanteoh]

0.7.3 (2015-08-31)

  • Made the last_trigger for the timed scheduler only record when there are newsletters sent. [arterrey]
  • Scheduler filter to send only to a channel option. [arterrey]
  • Cleanup flake8, changelog. [WouterVH]

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)

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)

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]
Release History

Release History

0.7.4

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.15

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.14-1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.14

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.13

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.12

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.11

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.10

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.9

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.8

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4b2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4b1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3b2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3b1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2b4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2b3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2b2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2b1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4dev-r66328

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1dev-r62028

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
collective.singing-0.7.4.tar.gz (74.3 kB) Copy SHA256 Checksum SHA256 Source Nov 2, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting