22 July 2011 0 comments Django
One of the many great things about working for Mozilla is that everything we do is Open Source. Even our wiki is open (however we have an internal wiki for corporation boring stuff such as meeting rooms, HR etc.)
Last week I wrote an internal application for Mozilla's build engineers. Essentially it's a roster that lists one user per day and it's helped by being visualized as a calendar and as a vCal export. It's very unlikely that anybody outside Mozilla will find this particularly useful. But who knows, perhaps other companies have needs to take turns to sheriff build machines.
Anyway, the project was easy to write because we have something called Playdoh. It's a set of nifty and useful settings and a folder structure and it comes with a submodule called "playdoh-lib" which is stuffed with lots of useful packages that you'll most likely want to use. If you browse Playdoh on Github it might look like a lot of stuff but after a second look you'll see that there's actually almost no code. So don't you dare to play the "bloat card"! :)
What this app uses is TastyPie for the REST API which was awesome by the way.
For the authentication I used django-auth-ldap and some custom classes because at Mozilla we use email addresses instead of usernames.
To make the vCal export I use VObject which was easy to work with but has some usual syntax in places.
Jinja was used for the template rendering and it meant I had to do some tricks to use the
django.contrib.auth.views.login view but with my templates. Might be worth looking into if people are interested.
The code has 98% test coverage but I had to upgrade to the latest nose to be able to run test coverage on app modules that have similar names to modules in the standard lib.