Modify

Opened 6 years ago

Closed 6 years ago

#8982 closed enhancement (fixed)

not laying out correctly with blocking tasks

Reported by: Scotty M. Owned by: Chris Nelson
Priority: normal Component: TracJsGanttPlugin
Severity: normal Keywords:
Cc: Hans, Ryan J Ollos Trac Release: 0.12

Description

If I add a ticket, no. 2, and it's blocked by ticket no. 1, and I have a start date for ticket no. 1 but none for no. 2, ticket no. 2 should appear by default at the end of ticket no. 1 (start no. 1 + estimated hours, or spent hours if greater).

Attachments (0)

Change History (18)

comment:1 in reply to:  description Changed 6 years ago by Chris Nelson

Status: newassigned

Replying to Scotty M.:

If I add a ticket, no. 2, and it's blocked by ticket no. 1, and I have a start date for ticket no. 1 but none for no. 2, ticket no. 2 should appear by default at the end of ticket no. 1 (start no. 1 + estimated hours, or spent hours if greater).

Yep, the plugin doesn't do scheduling. I'm working on it.

comment:2 Changed 6 years ago by Hans

Cc: Hans added; anonymous removed

It would also be helpful if it worked the other way round, i.e., any tickets that are blockers to ticket 1 are placed before ticket 1 in the timeline.

Right now, if a ticket has no start or end dates, it gets put right before the milestone's due date, which is good. However, any tickets marked as blockers end up with their end-date set to today, regardless of which is blocking which.

comment:3 Changed 6 years ago by Ryan J Ollos

Cc: Ryan J Ollos added

comment:4 Changed 6 years ago by Chris Nelson

I hope to post an attempt to fix this in the next week.

comment:5 Changed 6 years ago by Chris Nelson

(In [10688]) Refactor task sorting. Refs #9042, #8982.

  • Comment sort routine. Minor white space fix.
  • "sort" is really "compare".
  • Sort all tickets in Gantt the same way we sort children of a parent.
  • Don't need tempEnd if we have calc_finish

comment:6 Changed 6 years ago by Chris Nelson

(In [10689]) Sort based on dependencies. Refs #9042, #8982.

This nicely puts milestones after their tasks.

This turned up a problem with dependency representation. When we did:

s = '1, 2, 3'
l = s.split(',')

l ended up being ['1', ' 2', ' 3'] so "'2' in l" was false.

So now we strip white space from pred and succ ticket IDs.

Also, Trac milestones don't have successors but an empty list simplifies other code.

comment:7 Changed 6 years ago by Chris Nelson

(In [10690]) Schedule tasks by hour, not day. Refs #9042, #8982.

This is an first step toward handling dependencies (so, a four-hour task and an 12-hour task can take just two 8-hour days) but it also addresses a display but that tasks that took a multiple of 8 hours showed up a day too long in the Gantt.

Giving Trac milestones 0 estimates simplifies other code.

comment:8 Changed 6 years ago by Chris Nelson

(In [10691]) Add as-late-as-possible scheduling algorithm. Refs #9042, #8982.

comment:9 Changed 6 years ago by Chris Nelson

(In [10692]) Add as-soon-as-possible scheduling algorithm. Refs #9042, #8982.

ALAP with all starts changed to finish, successors change to predecessors, etc.

comment:10 Changed 6 years ago by Chris Nelson

(In [10693]) Remove dead code (old scheduling algorithm). Refs #9042, #8982.

comment:11 Changed 6 years ago by Chris Nelson

(In [10695]) Use adjusted estimate for computing hours, percent complete. Refs #9042, #8982.

  • Add configurable default estimate for tasks.
  • Add configurable overestimate padding. If work is already more than estimate, we likely need still more time.
  • Improve reporting of percent complete. Use projected work, not estimate.
  • Remove a stale comment; already fixed.

comment:12 Changed 6 years ago by anonymous

This is somewhat experimental and not tested at all for tickets which have start dates specified. Feedback on functionality is welcome. I could use some code reviews, too. My Python is weak and I use recursion and object assignments in ways that may not be optimal.

comment:13 Changed 6 years ago by Chris Nelson

(In [10696]) Fix a bug with tickets without due dates. Refs #9042, #8982.

comment:14 Changed 6 years ago by Chris Nelson

(In [10710]) Fix several minor errors in commits for scheduling. Refs #9216, #9024, #8982.

Applying a patch from rjollos. Thanks!

comment:15 Changed 6 years ago by Chris Nelson

(In [11071]) Refactor PM stuff out of Gantt class. Refs #9024, #9515, #8982.

comment:16 Changed 6 years ago by Chris Nelson

(In [11072]) Refactor scheduling out of PM class. Refs #8982, #9042, #9515.

comment:17 Changed 6 years ago by Chris Nelson

(In [11073]) Move Project Management stuff into its own module. Refs #8982, #9042, #9515.

comment:18 Changed 6 years ago by Chris Nelson

Resolution: fixed
Status: assignedclosed

Plugin now does scheduling based on dependencies.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Chris Nelson.
The resolution will be deleted.

Add Comment


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

 
Note: See TracTickets for help on using tickets.