Content
View differences
Updated by Christophe Bliard over 2 years ago
# Acceptance criteria
* **% Complete** % Complete is always calculated from the work package field. Work and Remining work. It is therefore read only.
* When configured to be calculated Excluded from the work package fields
calculation:
* It is computed from Work and Remaining work. For instance packages with Work = 10h, Remaining work = 3h => % Complete = 70%
* If Work or Remaining work is unset, % Complete is unset. The only exception is for migration (see below). 0 h/unset
* When configured to be calculated "Rejected" children are excluded from status
* Each work package status is associated with a % Complete value
* Setting the work package to a status sets the % Complete value of the work package
* If Work is set, it also sets the Remaining work of the work package
* Changing Work updates the Remaining work
* Unsetting Work unsets the Remaining work, it does not change the % Complete calcuation (#49409).
* **Derived % Complete** value is computed from the Derived work and Derived remaining work values of the work package
* This ensures all values are consistent, regardless of using status or fields for % Complete calculation
* Work packages with no Work = 0 h or unset value are thus excluded
* "Rejected" children will be excluded from the calculation once #49409 is done. of the aggregated % Complete values.
* A **modal** opens when When clicking on one of the attributes (Work, Remaining work, % Complete).
complete) the modal opens.
* If possible, In the attribute clicked becomes modal the active field in the modal, if not possible, the first field becomes active.
* When configured to be calculated from the work package fields
* The modal has 3 fields: Work, Remaining work, work and % Complete
* % Complete are deactivated. The field is always disabled
* % Remaining work field is disabled if Work is unset
* Work field is active by default when it is not set
(not mandatory).
* When Work is set
* if % Complete is unset, Remaining creating a new work field is enabled and set to the same value as Work and % Complete is set to 0%
* if % Complete is set (value was set before upgrading to 13.3), Remaining package work field is enabled and _set according to % Complete and Work_.
unset.
* When Remaining work is changed, % Complete is updated according After entering a value to Work and Work, the Remaining work.
* Remaining work can't exceed Work
* When Work is changed, Remaining work is changed by the same amount and % Complete is updated according to Work and Remaining work.
derived.
* Unsetting Deleting the field Work unsets both deletes % Complete and Remaining work, and disables Remaining work field.
Work.
* When configured to be calculated from status
* The modal has 3 fields: Status (xx%) drop-down, Work, and Remaining work
* Remaining work is always disabled
* The Status (xx%) dropdown is showing both Changing the status of does not change the work package and its associated % Complete.
* Selecting another value from the Status (xx%) dropdown updates the status and % Complete. If Work Complet value. This is set, Remaining work a seperate step. The reason is updated according that changing % Complete to Work and 100 % Complete
* When can not close the work is unset, Remaining work becomes unset
* The statuses displayed in package due to the dropdown depend on the user's workflow restrictions
* When creating a new work package Work is unset. flow restrictions.
**Current (wrong) calculation calcuation 13.2**
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/88713/content"></div><figcaption class="op-uc-figure--description">https://niels.openproject-edge.com/projects/progress-calculation-1/work_packages?query_id=338</figcaption></figure>
**Correct calculation**
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/88712/content"></div><figcaption class="op-uc-figure--description">https://community.openproject.org/api/v3/file_links/1269/open</figcaption></figure>
###
### Scenarios
**Considerations**
* The teams are regularly asked two questions
1. Spent time: How much time did you spent on a task?
2. Remaining work: How much time do you think you will need to finish the task?
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><thead class="op-uc-table--head"><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p"><br data-cke-filler="true"></p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Work</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Remaining work</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Work done</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">% Complete (read only)</p></th></tr></thead><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>(1) Update according to plan</strong></p></td><td class="op-uc-table--cell" colspan="4"><p class="op-uc-p">The resources worked on the task. This increases Work done. Remaining is reduced accordingly.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Initial</p></td><td class="op-uc-p">Intial</p></td><td class="op-uc-table--cell"><p class="op-uc-p">15h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">10h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">5h</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><i>33.3%</i></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Input value</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>5h (-5h)</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Result</p></td><td class="op-uc-table--cell"><p class="op-uc-p">15h</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><i>5h</i></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><i>10h</i></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><i>66.7%</i></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>(2) Worse than planned</strong></p></td><td class="op-uc-table--cell" colspan="4"><p class="op-uc-p">The estimated work to finish the task is higher than expected.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Initial</p></td><td class="op-uc-table--cell"><p class="op-uc-p">15h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">10h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">5h</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><i>33.3%</i></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Input value</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>20h (+5 h)</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Result</p></td><td class="op-uc-table--cell"><p class="op-uc-p">20h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">15h</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><i>10h</i></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><i>25%</i></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>(3) Better than planned</strong></p></td><td class="op-uc-table--cell" colspan="4"><p class="op-uc-p">No work done: The teams estimate less Remaining work due to new information or changed scope.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Initial</p></td><td class="op-uc-p">Intial</p></td><td class="op-uc-table--cell"><p class="op-uc-p">15h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">10h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">5h</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><i>33.3%</i></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Input value</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>10 h (-5h)</strong></p></td><td (-5%)</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Result</p></td><td class="op-uc-table--cell"><p class="op-uc-p">10h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">5h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">5h</p></td><td class="op-uc-table--cell"><p class="op-uc-p">50%</p></td></tr></tbody></table></figure>
### Open
* Do we need something like "Actual work"? And if yes, what is the difference to "Spent time"?
### Out of Scope
* Integration of the concept of logged time, work done, actual work
* **% Complete**
* If Work or Remaining work is unset, % Complete is unset. The only exception is for migration (see below).
* When configured to be calculated
* Each work package status is associated with a % Complete value
* Setting the work package to a status sets the % Complete value of the work package
* If Work is set, it also sets the Remaining work of the work package
* Changing Work updates the Remaining work
* Unsetting Work unsets the Remaining work, it does not change the % Complete
* **Derived % Complete** value is computed from the Derived work and Derived remaining work values of the work package
* This ensures all values are consistent, regardless of using status or fields for % Complete calculation
* Work packages with
* "Rejected" children will be excluded from the calculation once #49409 is done.
* A **modal** opens when
* When configured to be calculated from the work package fields
* The modal has 3 fields: Work, Remaining work,
* % Complete
* % Remaining work field is disabled if Work is unset
* Work field is active by default when it is not set
* if % Complete is unset, Remaining
* if % Complete is set (value was set before upgrading to 13.3), Remaining
* Remaining work can't exceed Work
* When Work is changed, Remaining work is changed by the same amount and % Complete is updated according to Work and Remaining work.
* The modal has 3 fields: Status (xx%) drop-down, Work, and Remaining work
* Remaining work is always disabled
* The Status (xx%) dropdown is showing both
* Selecting another value from the Status (xx%) dropdown updates the status and % Complete. If Work
* When
* The statuses displayed in
* When creating a new work package Work is unset.
**Current (wrong) calculation
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/88713/content"></div><figcaption class="op-uc-figure--description">https://niels.openproject-edge.com/projects/progress-calculation-1/work_packages?query_id=338</figcaption></figure>
**Correct calculation**
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/88712/content"></div><figcaption class="op-uc-figure--description">https://community.openproject.org/api/v3/file_links/1269/open</figcaption></figure>
###
### Scenarios
**Considerations**
* The teams are regularly asked two questions
1. Spent time: How much time did you spent on a task?
2. Remaining work: How much time do you think you will need to finish the task?
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><thead class="op-uc-table--head"><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p"><br data-cke-filler="true"></p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Work</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Remaining work</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Work done</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">% Complete (read only)</p></th></tr></thead><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>(1) Update according to plan</strong></p></td><td class="op-uc-table--cell" colspan="4"><p class="op-uc-p">The resources worked on the task. This increases Work done. Remaining is reduced accordingly.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Initial</p></td><td
### Open
* Do we need something like "Actual work"? And if yes, what is the difference to "Spent time"?
### Out of Scope
* Integration of the concept of logged time, work done, actual work