Modify

Opened 3 years ago

Closed 3 years ago

#8982 closed enhancement (fixed)

not laying out correctly with blocking tasks

Reported by: Scotty M. Owned by: ChrisNelson
Priority: normal Component: TracJsGanttPlugin
Severity: normal Keywords:
Cc: hdrlab, rjollos 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 3 years ago by ChrisNelson

  • Status changed from new to assigned

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 3 years ago by hdrlab

  • Cc hdrlab added

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 3 years ago by rjollos

  • Cc rjollos added

comment:4 Changed 3 years ago by ChrisNelson

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

comment:5 Changed 3 years ago by ChrisNelson

(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 3 years ago by ChrisNelson

(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 3 years ago by ChrisNelson

(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 3 years ago by ChrisNelson

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

comment:9 Changed 3 years ago by ChrisNelson

(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 3 years ago by ChrisNelson

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

comment:11 Changed 3 years ago by ChrisNelson

(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 3 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 3 years ago by ChrisNelson

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

comment:14 Changed 3 years ago by ChrisNelson

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

Applying a patch from rjollos. Thanks!

comment:15 Changed 3 years ago by ChrisNelson

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

comment:16 Changed 3 years ago by ChrisNelson

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

comment:17 Changed 3 years ago by ChrisNelson

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

comment:18 Changed 3 years ago by ChrisNelson

  • Resolution set to fixed
  • Status changed from assigned to closed

Plugin now does scheduling based on dependencies.

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
Author


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

 
Note: See TracTickets for help on using tickets.