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; 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 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 owner will remain ChrisNelson.
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.