Skip to content
ari edited this page Jan 25, 2011 · 9 revisions

Although we have dependencies, they aren’t terribly useful.

This task is quite interesting.

Also, in the UI, the current concept of ‘wait until’ needs to be merged with task dependencies. “wait until” reflects an external dependency on a date which isn’t linked to another task. For instance, it might be the expiry date of a license or a potential customer lead who says “don’t call me for 2 weeks”.

User interface

A new block with the layout:

Snooze until
[ task or date… ] []

The little thing to the right is the standard calendar widget. The text in the field disappears as soon as the field gets focus. You can type either a date, or a task number or task title in the field. Autocomplete allows you to choose a task.
Once you add a task, the text appears below this field:

#123 Some task X

You can add many tasks. If you add a date, then the text appears:

12 January 2011 X

in the same place. If you try to add another date, the new date replaces the old date. It is possible however to have a date AND one or more tasks.

The existing ‘wait until’ option which is in the resolution list is removed from that part of the UI, since this new UI replaces that and utilitises the same field in the database.

Wait for customer

A new checkbox under the comment box which reads

[ ] Snooze until customer responds

It is only enabled if the comment is marked as “public”. If this checkbox is ticked, then a new line is added under the “Snooze until” block:

Customer response X

A new task.wait_for_customer boolean is needed to support this.

Effects of dependencies

If a task depends on another (open) task or on a date which has not yet arrived, then:

  1. it displays greyed-out in the task list
  2. it cannot be closed (validation message “This task cannot be closed until everything it is waiting for is done first.”)
  3. cannot have worklogs added
  4. weighting calculations are adjusted

Start to start, finish to start

To implement fine grained dependencies (see http://office.microsoft.com/en-us/project-help/choose-the-right-type-of-task-dependency-HA001220848.aspx ) we could add options to task dependencies:

  • ‘is finished’ (that is, all the effects above apply until the other task is closed)
  • ‘is started’ (all the effects above apply until the other task has some worklog added)

This doesn’t cover all the task relationships, but is enough for 99% of what we need.