This avoids every page on the site parsing 250KB of JavaScript.
supporter-page.js isn't the most elegant code, but at least it's a little more
modular now and no longer user jQuery.
It's a little confusing having both a "supporter" and "supporters" app. This is
a fairly minor change to move the sustainer banner urls/views into the existing
"supporters" app. The functionality isn't directly related, but it is all about
sustainers.
Each Cast (episode) can belong to one or more Podcast, allowing episodes to be
shared between podcasts. This enables us introductory episodes to be delivered
in their own feed, but also included in the main "The Corresponding Source"
feed.
This required adding an additional `podcast_slug` argument to most views. The
date archive views were dropped because they're not linked to from anywhere.
Added a `podcasts` view as an index of all available Podcasts.
This change removes the unused `ContactEntry` model and the `subscribe` view and
replaces it with an `Unsubscription` model and an `unsubscribe` view. It works
similarly, but is intended to be used with the `list-unsubscribe` and
`list-unsubscribe-post` headers.
This middleware is mostly redundant:
* redirecting to canonical URLs can be done more simply in Apache
* appending a forward slash is a default in CommonMiddleware now
* we're no longer using Squid cache
May need to update Apache to strip/redirect trailing "index.html".
The advantage of this approach is that the production and dev configurations are
in version control, so there's less opportunity for surprises.
As advocated by Jacob Kaplan-Moss (OSCON 2011) and Two Scoops of Django book.