Opened 8 years ago

Last modified 7 years ago

#4669 assigned defect

Tickets removed from milestone are not reflected in burndown chart

Reported by: peter@… Owned by: Joachim Hoessler
Priority: normal Component: EstimationToolsPlugin
Severity: normal Keywords:
Cc: Trac Release: 0.11


In the common scenario that some tickets are moved out of a milestone during the course of that milestone, the burndown chart does not reflect historically-accurate information.

This is caused by the _calculate_timetable method, which only considers tickets that are currently assigned to the milestone in question. Any ticket which is assigned to another milestone _at this moment_ is not considered when computing the chart's values. This ignores all tickets that used to be part of the milestone but have now been moved.

To find these tickets for each day, you can use a query like this, where $milestone$, $midnightBefore$, and $midnightAfter$ are the appropriate values:

select * from ticket_change where field = 'milestone' and oldvalue = $milestone$ and time >= $midnightBefore$ and time < $midnightAfter$;

Attachments (0)

Change History (5)

comment:1 Changed 8 years ago by peter@…

Determining if the ticket belongs to the milestone on a particular day requires backtracking from the current status backwards through all milestone changes for that ticket until you reach the end date on the graph. Once it is established whether the ticket belonged on the end date, you can track it's membership status with a boolean flag and update it in the main loop over ticket_change records. If the flag is on, the current logic applies. If the flag is off, the ticket contributes zero to the estimate on that day.

I apologize that I can only contribute psuedocode, but I'd have to learn a lot more Python in order to express this as a patch.

comment:2 Changed 8 years ago by peter@…

It appears that the current loop over changes is moving forwards through time. My algorithm above still works in that case, but you need to pre-compute the flag for the start date instead.

comment:3 Changed 8 years ago by anonymous

Also see ticket #4564

comment:4 Changed 8 years ago by Joachim Hoessler

Status: newassigned

This issue has been raised by several people already, so I would be happy to update the algorithm to include all tickets that have been moved into other sprints. However, I probably won't find the time to do that anytime soon, but I gladly accept any patch...

comment:5 Changed 7 years ago by François Boissonneault

Please, find time! :) I guess we could also do it. Can you provide an idea of how you would do it?

Modify Ticket

as assigned The owner will remain Joachim Hoessler.

Add Comment

E-mail address and name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.