ccnmtl/dmt — pull request #169 by thraxil (2014-11-10 13:22:58+00:00)
Title: board view of project for moving items between milestones. PMT #92269

This is a first experiment towards implementing a board view for a project in a syle similar to Trello, etc.

What's there currently is very simple. Just a column for every milestone in a project. Items can then be dragged and dropped between them.

The basic use case driving this is a project planning meeting. Imagine the team sitting together in front of the smart board. They pull up the project board and can see all outstanding items and milestones in one comprehensive view. Probably an empty upcoming milestone for a sprint that is planned. The team goes through the items and decides which ones to target for the sprint; dragging those onto the sprint milestone column.

I implemented it as a very sparse wire-frame kind of interface for now. Partly because I didn't want to have to figure out how to get a grid that's potentially wider than the existing bootstrap '.container' to look right, and partly to communicate that it's basically still a UI experiment and will need plenty of design help before it's ready for prime time. I want to get it out in front of people quickly though to start figuring out where it should go.

Aside from the minimal interface, some obvious issues that will eventually need addressing in some way:

* it uses the jquery ui sortable, which works pretty smoothly, but it means that the items within a milestone are sortable. Behind the scenes, there is no notion of ordering of items within a milestone, so changing the order of items on this page won't actually persist (just moving between milestones). I think it's useful in a meeting to be able to rearrange things arbitrarily, but somehow it needs to be made clear to the user that the ordering within a milestone isn't actually going to persist.
* I included all the milestones on a project for now. Particularly on older projects, there are a lot of old, closed milestones. So that takes up a lot of room on the page and is a bit awkward. I can think of times when you might want to be able to reopen closed milestones through here, but we'll probably want to just make it open and upcoming milestones by default.
* similarly, it would really be nice to be able to add a new milestone or change the target dates of existing milestones right through this page.
* this really ought to be a Backbone + DRF app. Honestly, I'm just still faster and more comfortable prototyping with a plain server-rendered backend and a bit of jquery, so I did that.
* the item "cards" should probably have more info displayed (bug/action item, assigned to, time estimate, status, etc). Similar boards in other apps let you edit card details, reassign things, change priorities, etc. We'll probably want similar functionality, but that will all be easier to do once we change it to Backbone + DRF.

Whole thing is behind the 'project_board' feature flag, which I set up to be on for superusers (which I think all the developers working on it are).