First thing's first, start with some failing unit tests.
Added query methods for past, ongoing and upcoming events.

The Event object now has three additional methods:

Event.objects.past_events() is used to access past events.
Event.objects.ongoing_events() is used to access ongoing events.
Event.objects.upcoming events() is used to access upcoming events.

All of these return querysets, which can be filtered further if
necessary.
Make test events into a fixture and mock datetime.date.today so
that future events are always in the future, past in the past
and ongoing ongoing.
Add a failing test to the landing page to check for upcoming events.
List upcoming events on the index page.

I also wrote the get_absolute_url method for Event objects
so that we can easily fetch their url.
Added the sites model to the django admin, and link to
the django admin page from the all_sites view if the user
is logged in and has the correct permissions.
Define tests programatically, and make custom calls chainable.
Merge pull request #45 from rbeagrie/master

List events on landing page (fix for issue #1)
Adding command to Makefile to re-run tests
Merge pull request #47 from gvwilson/adding-target-to-run-tests

Adding command to Makefile to re-run tests
Create and edit sites using django generic views.
Merge pull request #46 from rbeagrie/add_site_link

Added the sites model to the django admin
Merging
Adding editabilit to training cohorts
Adding Bootstrap styling.

1.  Generic page layout now references Bootstrap files delivered via CDN.
2.  Page layouts now use Bootstrap CSS classes.
Simplify permissions: if a user can edit, she can edit everything.
Merge branch 'changing-permission-model' into adding-cohorts
Simplifying permission model: if a user can edit, she can edit everything
Merge pull request #53 from gvwilson/changing-permission-model

Simplify permissions: if a user can edit, she can edit everything.
Merge pull request #50 from gvwilson/adding-bootstrap

Adding Bootstrap styling.