openpyxl-redmine workflow task delays and linkage modification

Overview

Redmine task length (duration in days) and linkage (aka relationships) can currently should only be modified using Redmine’s browser Gantt chart viewer / editor. This is because:

  • the browser graphical representation allows the full complexity of a change to be seen
  • the change can be made and optically checked before saving it to the Redmine repository

Manager and Developer roles are needed to make modifications.

The following sub-sections contain examples of how to perform changes which do not break current versions of the s/w.

Tasks delays modification - gotchas

The cost-estimate Table delay column allows delays to be specified as a comma separated value string (e.g. 0,50,10 delay days w.r.t. 3 preceding tasks), where delay is days between finishing the preceding task and starting following task. The delays are committed post tasks creation by a followup relationship creation stage.

Browser manipulation of a workflow can alter the delays originally created, indeed they can be automatically altered by followup relationship creation, and the following figure shows how delays creates and altered are rendered.

Task delay change gotchas

Task delay change gotchas

Delays are shown as numbers above the relationship line-arrow and have the form X(Y), see task 86914, where X is the set delay in the relationship object in Redmine created as a result of the comma separated value above or later using the browser.

The delay value for 86911 has only a Y value as the task was inserted later at the browser. Y’s value (50) is correct, but the relationship has 0 as the delay. To set 50, i.e. move Y to X, in the relationship it is necessary to left-click on the line-arrow, set 50, submit, and Save the entire rendition to Redmine.

Warning

The gotcha is whether the Y value should be set and become an X value which is stored during workflow_extract? The answer is presumably yes, but should all link-arrow values be set as we have three classes: where X was set and there’s no Y evaluation, another where Y is automatically evaluated and X is not set, and another where X was set but a Y evaluation has been added.

Attention

The solution currently taken is to store X, the set value. Delay modifiers must set X to Y for task relationships where a change of the stored value is intended. Note that this solution will leave X(Y) delay renditions in place when X is not set by the modifier, and is equivalent to Y being the actual Redmine evaluated delay with X the minimum required without evaluation. The modifiers decision w.r.t. the previous figure is shown below and resulted in the stored values as shown after.

Task delay change solution taken

Task delay change solution taken

Task delay change stored values

Task delay change stored values

Task linkage (aka relationship)

The aim is to replace the delay with a task.

The starting view was

Task linkage change - starting point

Task linkage change - starting point

The end point was

Task linkage change - end point

Task linkage change - end point

Before starting use the best view raster (day, week or month), in this example week is used.

Procedure to make change (clicks are always left mouse clicks):

  • click on 40 delay duration link, from 86908 to 86909, and select delete
  • click and hold on the middle of task 86911 and move so that its start aligns with the end of 86908 (actually the day following the end). On release 86911 may move forwards (right) in time, e.g. if the next day was a weekend.
  • click and hold on the middle of task 86909 and move so that its start aligns with the end of 86911 (again the day following)
  • click and hold the half round at the end of task 86908 and drag to the half round on the start of task 86911 and release
  • click on the half round end of 86911 and drag to the start of 86909 half round and release

If the result is what you want click on Save to write the modification to the repository.

It’s often useful to look details of the task by hovering the mouse over a task, as shown below

Task details - hover mouse over task

Task details - hover mouse over task

When you save the modification other tasks will automatically re-adjust as below

Task auto adjust

Task auto adjust to align to the modification saved.