Content
View differences
Updated by Christophe Bliard over 2 years ago
**As a** project manager
**I want to** exclude rejected or duplicate work packages from the calculation of work, remaining work and percentage complete for the parent work packages
**So that I** can clean up my estimates and the progress when rejecting child work packages or marking them as duplicates. packages.
**Acceptance criteria**
* Each work package status can be me configured as "exclude from the parent's calculation of completion calculation and work estimates", e.g. for status "rejected".
* The children of an excluded work package are not excluded from the calculation. They are excluded only if their status is an excluded status. Adapt seed data
* Exclude child work packages that have a status that is marked as "excluded from the parent's calculation..." from the calculation of
* Work
* Remaining work
* % complete
* "Excluding" the work package does not change the attributes of Work, Remaining work and % Complete. They are still visible.
* Excluded work packages have a visual clue to show that they are excluded from calculations.
* Reverting the status to another "non-excluded" status includes it in the calculation
* Changing After changing the status from "excluded" to "non-excluded" or the other way around triggers the recalculation of the parent and ancestor work packages.
* The seed data package is changed to mark "Rejected" status as excluded from work calculations. triggered
* There is database migration that marks "rejected" status as excluded and recomputes calculated values for work packages using the "rejected" status.
**Out of scope**
* <mention class="mention" data-id="52130" data-type="work_package" data-text="#52130">#52130</mention> data-text="#52130">#52130</mention>
**Open**
1. **CB: If an excluded work package has children, those children are considered excluded as well in the calculation even if they have their own non-excluded status, correct?**
NL: no, if a user wants to exclude grandchildren those grandchildren need to be rejected as well aswell
2. **CB: Regarding question above, when When a work package having children is excluded, excluded from calculation, its % Complete should its computed values display something different. What about "N/A"?**
NL: no, there might be calculated the case that a work package was started until it is 80% and displayed?** then rejected. This is an information which is quite interesting to know. We will add a info to the attribut that explains that we want to add an information that indicates that the value is excluded.
3. **CB: The exclusion is effective regardless of having "Calculate work package % Complete with" being set to "work package status" or "work package field", correct?**
**For instance, are these calculations correct (2 work packages excluded)?:**
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Work package</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Status</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Work</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Remaining Work</p></td><td class="op-uc-table--cell"><p class="op-uc-p">% Complete</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">parent</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Closed</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h - Σ 53h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h - Σ 4h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">100% - Σ 92%</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"> child 1 (excluded)</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Rejected</p></td><td class="op-uc-table--cell"><p class="op-uc-p">2 h - Σ 20h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h - Σ 2h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">50% - Σ 90%</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"> grand child 11</p></td><td class="op-uc-table--cell"><p class="op-uc-p">In progress</p></td><td class="op-uc-table--cell"><p class="op-uc-p">4 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">75%</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"> grand child 12 (excluded)</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Duplicate</p></td><td class="op-uc-table--cell"><p class="op-uc-p">8 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">88%</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"> grand child 13</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Test failed</p></td><td class="op-uc-table--cell"><p class="op-uc-p">16 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">94%</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"> child 2</p></td><td class="op-uc-table--cell"><p class="op-uc-p">In progress</p></td><td class="op-uc-table--cell"><p class="op-uc-p">32 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">97%</p></td></tr></tbody></table></figure> NL: The connection between status and percentage is deprecated. We will need to remove first. This is tracked in #52130
**I want to** exclude rejected or duplicate work packages from the calculation of work, remaining work and percentage complete for the parent work packages
**So that I** can clean up my estimates and the progress when rejecting child work packages or marking them as duplicates.
**Acceptance criteria**
* Each work package status can be
* Exclude child work packages that have a status that is marked as "excluded from the parent's calculation..." from the calculation of
* Work
* Remaining work
* % complete
* "Excluding" the work package does not change the attributes of Work, Remaining work and % Complete. They are still visible.
* Excluded work packages have a visual clue to show that they are excluded from calculations.
* Reverting the status to another "non-excluded" status includes it in the calculation
* Changing
* The seed data
* There is database migration that marks "rejected" status as excluded and recomputes calculated values for work packages using the "rejected" status.
**Out of scope**
* <mention class="mention" data-id="52130" data-type="work_package" data-text="#52130">#52130</mention>
**Open**
1. **CB: If an excluded work package has children, those children are considered excluded as well in the calculation even if they have their own non-excluded status, correct?**
NL: no, if a user wants to exclude grandchildren those grandchildren need to be rejected as well
2. **CB: Regarding question above, when
NL: no, there might
3. **CB: The exclusion is effective regardless of having "Calculate work package % Complete with" being set to "work package status" or "work package field", correct?**
**For instance, are these calculations correct (2 work packages excluded)?:**
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Work package</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Status</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Work</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Remaining Work</p></td><td class="op-uc-table--cell"><p class="op-uc-p">% Complete</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">parent</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Closed</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h - Σ 53h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h - Σ 4h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">100% - Σ 92%</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"> child 1 (excluded)</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Rejected</p></td><td class="op-uc-table--cell"><p class="op-uc-p">2 h - Σ 20h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h - Σ 2h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">50% - Σ 90%</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"> grand child 11</p></td><td class="op-uc-table--cell"><p class="op-uc-p">In progress</p></td><td class="op-uc-table--cell"><p class="op-uc-p">4 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">75%</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"> grand child 12 (excluded)</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Duplicate</p></td><td class="op-uc-table--cell"><p class="op-uc-p">8 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">88%</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"> grand child 13</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Test failed</p></td><td class="op-uc-table--cell"><p class="op-uc-p">16 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">94%</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"> child 2</p></td><td class="op-uc-table--cell"><p class="op-uc-p">In progress</p></td><td class="op-uc-table--cell"><p class="op-uc-p">32 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">1 h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">97%</p></td></tr></tbody></table></figure>