DjangoCon US 2012 Sprints

tomchristie 2012-09-07 04:05:08 -07:00
parent 6dac171740
commit 8153b0db4d

@ -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