Overview

WD Project Board: A simple django app

WD Project Board is an example Django app.

WD Project Board: A High Level Scenario

Programmer Bob has many projects going on at Programmer Solutions Inc. His partner, Alice, is responsible for managing/acquiring new client projects and keeping clients informed.

Programmer Bob gets into the office and logs into his dashboard. This shows his projects. Clicking on a project will show him the TODO items for that project, so he can keep on top of them.

TODO

This example is trivial: it (on purpose) doesn't worry about permissions, workflow of bugs, or anything else you might worry about on a bug tracker.

If anything, it may be a testbed where I create a Python port of David Bock's stonepath gem for Rails for Django. But that's after 1.0

Other, big things to do include:

  • Hook up some kind of reusable tasks app, based on the django.contrib comments framework (Yes, I know about django-todo, but I don't need quite that much UI. Lightweight is the name of this game.). Again, this gets us part of the way to Stonepath.

  • Integrate django-annoying just for its @render_to decorator, which removes the need for the inelegant base_render_to_response

Setup

$ pip install -E venv -r requirements.txt

$ cd wd_project_dashboard

Set up your Django project as normal. If you wish you can define your personal settings in a user_settings.py file: for example, database location. See comments in settings.py for this.

$ ./manage.py runserver

  1. Visit localhost:8000/admin and set up some projects
  2. Visit localhost:8000/projects/ and view some of your projects

Meta

About this app

So, as this app was primarily meant to be a learning experiment, it may be most useful to look through the commit history and see what I've done, the Django battles I've had to fight already.

Also, I've done none of the CSS work that this app needs (for some of the forms), so it's FUGLY in some places. Sorry.

So there's also some interesting stuff I learned:

  1. When I want to override the default templates provided with an applicatino, I can just put them on TEMPLATE_PATH, as long as their high enough. I use /templates/overrides for this.

  2. render_response_to isn't as useful as I thought it might be. I've replaced it with base_render_to_response, which lets me call render_response_to in ways that make sense on this project (using a RequestContext context instance, for example).

This Project Proudly Uses