diff --git a/DjangoCon-US-2012-Sprints.md b/DjangoCon-US-2012-Sprints.md new file mode 100644 index 0000000..5356084 --- /dev/null +++ b/DjangoCon-US-2012-Sprints.md @@ -0,0 +1,69 @@ +# What's the deal? + +We're pushing towards REST framework 2. + +It's a major redesign that fixes up a bunch of issues with REST framework as it currently stands, +and it's going to be a totally kick-ass, super well-documented, beautifully designed and all round awesome release. + +## Great, where are we at right now? + +Doing pretty nicely, thanks. + +Check out the [restframework2 branch][branch] and the [redesigned docs][docs], in particular tutorial parts 1-3 and part 6. + +## Stuff that's missing right now. + +Some of the gaps that need filling in: + +* PUT/POST/DELETE aren't working in the Browseable API just yet. +* Bits of work to be done on serializers - 'readonly' fields, and hyperlinked relations. +* Resources & routers (See part 6 of the tutorial.) +* Some bits of tweaking needed around format suffixes '.json' +* Various sections missing from documentation. +* Documentation bootstrap styling needs a bit of work. (Eg broken on mobile browsers right now) +* Browseable API could do with a twitter Bootstrap redesign. +* Needs a better and more comprehensive test suite. +* Really could do with BasicTokenAuthentication (OAuth needed too, but that's secondary.) + +## Okay, where should I start then? + +### TokenBasicAuthentication. + +Take a look through the authentication docs. Take a look at the existing authentication classes. +Implement TokenBasicAuthentication as a subclass of BasicAuthentication. +It'll need implementing as an optional app, so that tokens are not always installed by default - user will add `djangorestframework.basicauthtoken` to `INSTALLED_APPS` if they want the token models in their database. + +### Bootstrap redesign of the browseable API + +Give it some bootstrap hotness. + +### Documentation about overriding default browseable API style. + +We need some docs about how you can override the default template, what template tags can be overwritten etc... + +### Document throttles and permissions. + +There's now some really good documentation for authentication that you should use as the template for documenting throttles and permissions. + +### Document renderers and parsers. + +Again use the authentication documentation as a rough template, but there's a bit more work here than for throttles/permissions. + +### Work on the documentation bootstrap style. + +* Fix up the styling so it works on mobile sized screens. +* The header bar does slightly odd things when it collapses - try to tidy that up. + +### Implement Resources & Routers. + +See part 6 of the tutorial for an overview of how that should look. (And the mixins section of part 3 for a better idea of how they get composed) +Resources are view-like classes that implement everything except the actual `.get()`, `.post()` etc... method handlers. Routers create subclasses of the resource, binding the method handlers to the actual actions + +I think the base ModelResource will probably need to be composed of `APIView` Django's `MultipleObjectMixin` *and* `SingleObjectMixin`, plus *all* the REST framework mixins. + +### Test out object-level permissions. + +REST framework should now support object level permissions. (See `SingleObjectBaseView.get_object()` in `generics.py`.) Using a view with `DjangoModelPermissions`, install `django-guardian` and see if you can get everything playing together nicely. If so, the Authentication documentation should be updated to reflect that. + +[branch]: https://github.com/tomchristie/django-rest-framework/tree/restframework2 +[docs]: http://tomchristie.github.com/django-rest-framework \ No newline at end of file