Lizard sprint week

Tags: django, lizard, nelenschuurmans

Last week we had an internal sprint week at Nelen & Schuurmans to do lots of work on Lizard (http://lizard.org).

A django-technical characteristic of lizard is that it is layered:

  • Lizard-ui is the base UI layer. It sets up the page layout and it provides the css and javascript.

  • Lizard-map places a map inside lizard-ui’s UI and manages the map layers.

  • All other lizard-* apps are plugins for the lizard-ui + lizard-map combination.

The big change this sprint was in lizard-ui:

  • We switched from blueprint-css to the twitter-bootstrap css framework and updated the user interface to make it more ipad-friendly. I’ll write a separate blog entry about that layout.

  • We added a base class based view (CBV) to lizard-ui. Till now, every app used a base template and had to know which blocks it had to fill and which variables to pass in the context dictionary. Now with the base CBV in place, a lot less has to happen. The class based view knows how to handle most tasks like breadcrumbs and tabs etcetera. So if you subclass the CBV, you get a lot handled for free and you can concentrate on your data. This is where class based views really shine!

These two changes also meant we had to update many apps to actually use the class based view and to simplify their templates.

Examples of other changes we made this week:

  • We now always include celery for out-of-process tasks. And a custom lizard-task to manage those tasks from the admin. Several apps that used to have cronjobs now use lizard-task and celery for that.

  • Using latest openlayers version. We experimented with leaflet, but apparently there was some problem with the Dutch ‘RD’ projection so that didn’t work out. I’d love another go at this as leaflet strikes me as quite good.

  • Updated from django 1.3 to 1.4. Completely painless and basically unnoticed. Great!

We also experimented with javascript graphs instead of our regular matplotlib ones, but that wasn’t finished yet.

Not everything’s right yet. Some functionality is broken and needs fixing. Here’s part of our TODO list:

  • Make the setup easier by having a base set of settings in our base lizard-ui app that we can import from. I really liked the way sentry sets itself up when you install it. It gives you an almost-bare settings.py that does a from sentry.conf.server import * and only makes you set some absolutely necessary settings like DATABASES.

  • Fix the lizard-ui documentation. Most of the initial work was done on an experimental branch until we knew it would work out. And during experimenting we didn’t update the documentation. Now what we’ve merged the experimental branch…

  • Lots of small javascript parts of lizard-map are broken in the new layout. It shouldn’t take too much time to fix them, but the number of small things that don’t work right now makes the update look a bit bad. Time to fix it!

  • There are several small UI issues. Sidebar items that suddenly lack styling because they have the wrong css class, things like that.

So… onwards to fix the issues and we ought to have a great new layout to preview on next month’s Dutch lizard day.

Photo & Video Sharing by SmugMug
 
vanrees.org logo

Reinout van Rees

My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.

Weblog feeds

Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):