Pages registered naively with API.
Pretty resource_uris. Allow lookup by any slugify-able slug.

In theory, this approach is bad.  We're really supposed to only have -one- URL for each resource.  But we're doing it this way in our apps, so it'd be better to keep this consistent and change the API and the apps at the same time.  The change would be to 301 Redirect to the page.pretty_slug whenever you visit anything that isn't page.pretty_slug.
Redirects wired in now.
Searching at /api/v1/pages/search/?q=needle.

Needs to be discoverable via the API, though.  Not sure how to do that.
Map not quite working yet.
Formatting.
SlugifyMixin now supports multi-level lookups.

field_to_slug which will get slugified, but not used for lookup, and
slug_lookup_field which defaults to 'slug' (e.g. it's 'source' for redirect).

This allows us to have pretty URIs for Maps.
SlugifyMixin docs. Rename field_to_slug field_to_slugify.
New style for URL-less tastypie accept header routing.
Add philipn/tastypie@accept_versioning to requirements and upgrade SlugifyMixin implementation.
GeoResource for geojson :D

Using https://gist.github.com/1771937 c/o @onyxfish!
First stab at full geodjango filtering in API.
unquote parameter json from URL.
Point to django-tastypie@localwiki_master
First stab at using API for dynamic map.

Some things are a bit wonky.  Need to experiment a bit more.

Tastypie lacks OR support for queries so I had to break the query down into 2-3 API calls.  I think this is probably fine for the foreseeable future.
MultiPolygon checks + intersects() fixes.

We use intersects() rather than containsPoint() because MultiPolygons don't have containsPoint() and iterating would be messy.

We send back Multi* geometries via the API, hence the changes.
__intersects to mimic current map containment behavior.
Users in API.

Whitelist attributes. Only allow publicly-knowable stuff.
Add SiteResource for global info (license, etc)
Experimenting with history. Just playing around.

This approach might work.