Content
View differences
Updated by Parimal Satyal almost 4 years ago
### Note
Extracted from Epic <mention class="mention" data-id="31992" data-type="work_package" data-text="#31992">#31992</mention> related to duration.
This work package describes how values for the start date, the finish date and duration should change in response to changes to any of one of them.
A lot of these are self-explanatory, but explicitly describing these behaviours helps us particularly in the testing phase to ensure that the date picker behaves as logically and intuitively as possible, whilst also reducing chances of data loss (for example, accidentally having a start date change when the user does not expect it).
### Scenarios
#### Scenario 1
* Setup.
* Start date: Monday, February 8, 2021
* Finish date: empty
* Duration: empty
* Change
* User enters a duration of 10 days (duration in focus)
* Expected result:
* The finish date is set Friday, February 19 2021 (derived)
#### Scenario 2
* Setup
* Start date: empty
* Finish date: empty
* Duration: empty
* Change
* User enters a duration of 10 days
* Expected result:
* No date is added
#### Scenario 3
* Setup
* Start date: empty
* Finish date: Friday, February 19, 2021
* Duration: empty
* Change
* User enters a duration of 10 days (duration in focus).
* Expected result:
* The start date is set to Monday, February 8, 2021 (derived)
#### Scenario 4
* Setup
* Start date: Monday, February 8, 2021
* Finish date: Friday, February 19, 2021
* Duration: 10
* Change
* User changes duration to 11 days (duration in focus).
* Expected result:
* The finish date is changed to Monday, February, 22 2021
#### Scenario 5
* Setup
* Start date: Monday, February 8, 2021
* Finish date: Monday, February 22, 2021
* Duration: 11
* Change
* User changes duration to 10 days (duration in focus)
* Expected result:
* The finish date is changed to Friday, February, 19, 2021
* unless NWD are included, in which case, finish date is changed to Sunday, February, 21, 2021.
#### Scenario 6
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Friday, February 12, 2021
* Duration: 3
* Change
* Remove duration.
* Expected result
* Finish date is also removed, start date is maintained as is.
#### Scenario 7
* Setup
* Start date: Monday, February 8, 2021
* Finish date: Wednesday, February 11, 2021
* Duration: 4
* Change
* User alters the start date to Tuesday, February 9, 2021 (start date in focus)
* Expected result
* Finish date is maintained, duration is automatically adjusted to 3 days (derived; logic = changing one date when the other is present affects duration vs. move the second date).
#### Scenario 8
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Friday, February 12, 2021
* Duration: 4
* Change
* User alters the finish date to Feb 11, 2021 (finish date is in focus).
* Expected result
* Start date is unaffected, duration is now set to 3 days (derived from dates)
#### Scenario 9
* Setup
* Start date: empty
* Finish date: empty
* Duration: 4
* Change
* User enters the finish date of Friday, February 12, 2021 (finish date in focus).
* Expected result
* The start date is set to Tuesday, February 9, 2021 (derived from duration).
#### Scenario 10
* Setup
* Start date: empty
* Finish date: Thursday, February 11, 2021
* Duration: empty
* Change
* User enters the start date of Tuesday, February 09, 2021 (start date in focus).
* Expected result
* Duration is set to 3 (derived from start date)
#### Scenario 11
* Setup
* Start date: Monday, February 9, 2021
* Finish date: Wednesday, February 11, 2021
* Duration: 3
* Change
* The user moves the drag handle on the left border (start date) of the box representing the work package in Gantt chart and Team planner one day to the right (to Feb 10, 2021)
* Expected result
* The duration is reduced to 2. The start date is set to Feb 10, 2021. The finish date is left unchanged.
#### Scenario 12 (GANTT/Team planner)
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Thursday February 11, 2021
* Duration: 3
* Change
* The user moves the work package by dragging it (on the GANTT/team planner) it to the **right** so start date is Wednesday, February 10, 2021.
* Expected result
* The duration is maintained. Start state is now Wednesday, Febuary 10 (as set by drag), end date is set Friday, February 12 (derived based on duration).
#### Scenario 12bis (GANTT/Team planner)
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Thursday February 11, 2021
* Duration: 3
* Change
* The user moves the work package by dragging it (on the GANTT/team planner) it to the **left** so start date is Monday, Febuary 8, 2021.
* Expected result
* The duration is maintained. Start state is now Monday, February 8, 2021 (as set by drag), end date is set to Wednesday, February 11 (derived based on duration).
#### Scenario 13
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Thursday, February 11, 2021
* Duration: 3
* Change
* The user changes the start day on the datepicker to Wednesday, March 3, 2021 (note that this is _after_ the original start date).
* Expected result
* Since the new start date is _after_ the old finish date, both the start and finish dates are changed to Wednesday, March 3. Duration is now 1.
#### Scenario 14
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Thursday, February 11, 2021
* Duration: 3
* Change
* The user changes the start day on the datepicker to Wednesday, February 3, 2021 (note that this is _before_ the original start date).
* Expected result
* The start date is now Wednesday, February 3.
* The finish date is conserved (Thursday, February 11, 2021).
* The duration is updated to 7 days.
**Note: ### Archived Scenarios
The following scenarios concern are no longer relevant because they deal with behaviour concerning follows/preceeds and parent/child relationship that do not change with the option to include non-working days.** introduction of duration. They are nevertheless retained here as an archive.
#### Scenario 15 ~~Scenario 15~~
* Setup ~~Setup~~
* Start date: Thursday, February 11, 2021 ~~Two work packages~~
* Finish ~~Task 1:~~
* ~~Start date: Tuesday, February 16, 2021 Monday, 15 February, 2021~~
* ~~End date: Wednesday, 17 February, 2021~~
* ~~Duration: 3~~
* Duration: 4 days ~~Task 2:~~
* ~~Start date: empty~~
* ~~End date: empty~~
* ~~Duration: empty.~~
* Change ~~Change~~
* Option to include non-working days is enabled ~~Change relations such that Task 2 preceeds Task 1.~~
* Expected result ~~Expected result~~
* Start date remains Thursday, February 11, ~~Dates for Task 2 are derived from this "proceeds" relation.~~
* ~~Start date: Friday, 12 February, 2021
(dates including and after the work package this one preceedes are blocked)~~
* Finish date ~~Duration: 1 (automatic)~~
* ~~End date: Friday, 12 February, 2021 (derived from duration)~~
* ~~Warning: Reminder the start and end dates need to be before the dates of the work package this one is changed preceeding.~~
* ~~**\[open\]** Invalid dates are disabled.~~ _~~This is something that needs to Sunday, February 14, 2021
be explored further, both in terms of development effort and the impact on usability and comprehension.~~_
* Duration is conserved (4 days) ~~**\[open\]** Possible challenge: what if the dates are limited by another work package that the user (who can modify the dates for the current work package) cannot see, because of permissions?~~
#### Scenario 16 ~~Scenario 16~~
* Setup ~~Setup~~
* Non-working days are included ~~Two work packages~~
* Start ~~Task 1:~~
* ~~Start date: Thursday, February 11, 2021
Monday, 15 February, 2021~~
* Finish ~~End date: Sunday, February 14, 2021 Wednesday, 17 February, 2021~~
* ~~Duration: 3~~
* Duration: 4 days ~~Task 2:~~
* ~~Start date: Thursday, 11 Febuary, 2021~~
* ~~End date: Monday, 17 February, 2021~~
* ~~Duration: 5~~
* Change ~~Change~~
* Option to include non-working days is disabled ~~Change relations such that Task 2 preceeds Task 1.~~
* ~~**\[open, to be discussed\]** Expected result result~~
* Start ~~Dates for Task 2 are changed, such that finish date remains Thursday, February 11, 2021
is the first available date preceeding Task 1. Duration is conserved:~~
* Finish date is changed to Tuesday, February 16, ~~Start date: Monday, 8 February, 2021
(derived from duration and finish date)~~
* Duration ~~Duration: 5~~
* ~~End date: Friday, 12 February, 2021~~
* ~~Warning: Reminder the start and end dates need to be before the dates of the work package this one is conserved (4 days) preceeding.~~
~~**\[note\]** Today, the behaviour today seems inconsistent.~~
~~For example, in this example,~~ _~~Test a3~~_ ~~begins after~~ _~~Test a2~~_~~. When~~ _~~Test a3~~_ ~~is given a "preceeds" relationship at~~ _~~a2~~_~~, dates don't automatically adjust:~~
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/31006/content"></div></figure>
~~If we flip the relationship, (give Test~~ _~~a2~~_ ~~a "preceeds" relationship to~~ _~~Test a3),~~_ ~~the dates for Test a3 seem to adjust automatically so it follows a2:~~
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/31007/content"></div></figure>
~~This second behaviour seems reasonable; a2 terminates on 22.10, so a3 automatically starts on 23.10. Do we want to preseve this? Or perhaps make the behaviour more consistent between the two cases?~~
#### Scenario 17 ~~Scenario 17~~
* Setup ~~Setup~~
* Non-working days are included ~~Two work packages~~
* Start ~~Task 1:~~
* ~~Start date: Saturday, February 13, 2021 Monday, 8 February, 2021~~
* ~~End date: Wednesday, 10 February, 2021~~
* ~~Duration: 3~~
* Finish ~~Task 2:~~
* ~~Start date: Sunday, February 14, 2021 empty~~
* ~~End date: empty~~
* ~~Duration: empty~~
* ~~Change~~
* Duration: ~~Change relations such that Task 2 days follows Task 1.~~
* Change ~~Expected result~~
* Option ~~Dates for Task 2 are derived from this "follows" relation.~~
* ~~Start date: Thursday, 11 February, 2021~~
* ~~Duration: 1 (automatic)~~
* ~~End date: Thursday, 11 February, 2021 (derived from duration)~~
* ~~Warning: Reminder the start and end dates need to include non-working days be after the work package this one following.~~
* ~~**\[open\]** Invalid dates are disabled.~~ _~~This is disabled
something that needs to be explored further, both in terms of development effort and the impact on usability and comprehension.~~_
* Expected result ~~**\[open\]** Possible challenge: what if the dates are limited by another work package that the user (who can modify the dates for the current work package) cannot see, because of permissions?~~
#### ~~Scenario 18~~
* ~~Setup~~
* Start date changes to ~~Two work packages~~
* ~~Task 1:~~
* ~~Start date: Monday, February 15, 2021 15 February, 2021~~
* ~~End date: Friday, 19 February, 2021~~
* ~~Duration: 5~~
* Finish date is changed to ~~Task 2:~~
* ~~Start date: Tuesday, February 16, 2021 16 Febuary, 2021~~
* ~~End date: Thursday, 18 February, 2021~~
* ~~Duration: 3~~
* ~~Change~~
* ~~Change relations such that Task 2 follows Task 1.~~
* ~~**\[open, to be discussed\]** Expected result~~
* ~~Dates for Task 2 are changed, such that finish date is the first available date following Task 1. Duration is conserved (2 days) conserved:~~
* ~~Start date: Monday, 22 February, 2021~~
* ~~Duration: 3~~
* ~~End date: Wednesday, 14 February, 2021~~
* ~~Warning: Reminder the start and end dates need to be after the dates of the work package this one is following.~~
~~**\[note\]** Today, the behaviour today seems inconsistent.~~
~~For example, in this example,~~ _~~Test a3~~_ ~~begins after~~ _~~Test a2,~~_ ~~but before its finish date. When~~ _~~Test a2~~_ ~~is given a "follows" relationship at~~ _~~a3~~_~~, dates don't automatically adjust:~~
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/31009/content"></div></figure>
~~If we flip the relationship, (give Test~~ _~~a2~~_ ~~a "follows" relationship to~~ _~~Test a3),~~_ ~~the dates for Test a3 seem to adjust automatically so it follows a2:~~
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/31008/content"></div></figure>
~~This second behaviour seems reasonable; a2 terminates on 22.10, so a3 automatically follows on the next available day, 23.10. Do we want to this? Or perhaps make the behaviour more consistent between the two cases?~~
#### Scenario 18 ~~Scenario 19~~
* Setup ~~Setup~~
* Non-working days are included ~~Two work packages~~
* Start ~~Task 1:~~
* ~~Start date: Saturday, February 13, 2021
Monday, 8 February, 2021~~
* Finish ~~End date: Tuesday, February 23, 2021 Wednesday, 10 February, 2021~~
* ~~Duration: 3~~
* Duration: 11 days ~~Task 2:~~
* ~~Start date: empty~~
* ~~End date: empty~~
* ~~Duration: empty.~~
* Change ~~Change~~
* Option to include non-working days ~~Change relations such that Task 2 is disabled a child of Task 1.~~
* Expected result ~~Expected result~~
* Start ~~Since the parent does not have any date changes to Monday, February 15, 2021
information, dates and duration for Task 1 are derived from the child (as shown below)~~
* Finish date ~~The work package is changed to automatically scheduled.~~
* ~~Start date: Monday, March 2, 2021
8 February, 2021~~
* Duration is conserved (11 days) ~~End date: Wednesday, 10 February, 2021~~
* ~~Duration: 10~~
Extracted from Epic <mention class="mention" data-id="31992" data-type="work_package" data-text="#31992">#31992</mention> related to duration.
This work package describes how values for the start date, the finish date and duration should change in response to changes to any of one of them.
A lot of these are self-explanatory, but explicitly describing these behaviours helps us particularly in the testing phase to ensure that the date picker behaves as logically and intuitively as possible, whilst also reducing chances of data loss (for example, accidentally having a start date change when the user does not expect it).
### Scenarios
#### Scenario 1
* Setup.
* Start date: Monday, February 8, 2021
* Finish date: empty
* Duration: empty
* Change
* User enters a duration of 10 days (duration in focus)
* Expected result:
* The finish date is set Friday, February 19 2021 (derived)
#### Scenario 2
* Setup
* Start date: empty
* Finish date: empty
* Duration: empty
* Change
* User enters a duration of 10 days
* Expected result:
* No date is added
#### Scenario 3
* Setup
* Start date: empty
* Finish date: Friday, February 19, 2021
* Duration: empty
* Change
* User enters a duration of 10 days (duration in focus).
* Expected result:
* The start date is set to Monday, February 8, 2021 (derived)
#### Scenario 4
* Setup
* Start date: Monday, February 8, 2021
* Finish date: Friday, February 19, 2021
* Duration: 10
* Change
* User changes duration to 11 days (duration in focus).
* Expected result:
* The finish date is changed to Monday, February, 22 2021
#### Scenario 5
* Setup
* Start date: Monday, February 8, 2021
* Finish date: Monday, February 22, 2021
* Duration: 11
* Change
* User changes duration to 10 days (duration in focus)
* Expected result:
* The finish date is changed to Friday, February, 19, 2021
* unless NWD are included, in which case, finish date is changed to Sunday, February, 21, 2021.
#### Scenario 6
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Friday, February 12, 2021
* Duration: 3
* Change
* Remove duration.
* Expected result
* Finish date is also removed, start date is maintained as is.
#### Scenario 7
* Setup
* Start date: Monday, February 8, 2021
* Finish date: Wednesday, February 11, 2021
* Duration: 4
* Change
* User alters the start date to Tuesday, February 9, 2021 (start date in focus)
* Expected result
* Finish date is maintained, duration is automatically adjusted to 3 days (derived; logic = changing one date when the other is present affects duration vs. move the second date).
#### Scenario 8
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Friday, February 12, 2021
* Duration: 4
* Change
* User alters the finish date to Feb 11, 2021 (finish date is in focus).
* Expected result
* Start date is unaffected, duration is now set to 3 days (derived from dates)
#### Scenario 9
* Setup
* Start date: empty
* Finish date: empty
* Duration: 4
* Change
* User enters the finish date of Friday, February 12, 2021 (finish date in focus).
* Expected result
* The start date is set to Tuesday, February 9, 2021 (derived from duration).
#### Scenario 10
* Setup
* Start date: empty
* Finish date: Thursday, February 11, 2021
* Duration: empty
* Change
* User enters the start date of Tuesday, February 09, 2021 (start date in focus).
* Expected result
* Duration is set to 3 (derived from start date)
#### Scenario 11
* Setup
* Start date: Monday, February 9, 2021
* Finish date: Wednesday, February 11, 2021
* Duration: 3
* Change
* The user moves the drag handle on the left border (start date) of the box representing the work package in Gantt chart and Team planner one day to the right (to Feb 10, 2021)
* Expected result
* The duration is reduced to 2. The start date is set to Feb 10, 2021. The finish date is left unchanged.
#### Scenario 12 (GANTT/Team planner)
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Thursday February 11, 2021
* Duration: 3
* Change
* The user moves the work package by dragging it (on the GANTT/team planner) it to the **right** so start date is Wednesday, February 10, 2021.
* Expected result
* The duration is maintained. Start state is now Wednesday, Febuary 10 (as set by drag), end date is set Friday, February 12 (derived based on duration).
#### Scenario 12bis (GANTT/Team planner)
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Thursday February 11, 2021
* Duration: 3
* Change
* The user moves the work package by dragging it (on the GANTT/team planner) it to the **left** so start date is Monday, Febuary 8, 2021.
* Expected result
* The duration is maintained. Start state is now Monday, February 8, 2021 (as set by drag), end date is set to Wednesday, February 11 (derived based on duration).
#### Scenario 13
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Thursday, February 11, 2021
* Duration: 3
* Change
* The user changes the start day on the datepicker to Wednesday, March 3, 2021 (note that this is _after_ the original start date).
* Expected result
* Since the new start date is _after_ the old finish date, both the start and finish dates are changed to Wednesday, March 3. Duration is now 1.
#### Scenario 14
* Setup
* Start date: Tuesday, February 9, 2021
* Finish date: Thursday, February 11, 2021
* Duration: 3
* Change
* The user changes the start day on the datepicker to Wednesday, February 3, 2021 (note that this is _before_ the original start date).
* Expected result
* The start date is now Wednesday, February 3.
* The finish date is conserved (Thursday, February 11, 2021).
* The duration is updated to 7 days.
**Note:
#### Scenario 15
* Setup
* Start date: Thursday, February 11, 2021
* Finish
* ~~Start
* ~~End date: Wednesday, 17 February, 2021~~
* ~~Duration: 3~~
* Duration: 4 days
* ~~Start date: empty~~
* ~~End date: empty~~
* ~~Duration: empty.~~
* Change
* Option to include non-working days is enabled
* Expected result
* Start date remains Thursday, February 11,
* ~~Start date: Friday, 12 February,
* ~~End date: Friday, 12 February, 2021 (derived from duration)~~
* ~~Warning: Reminder the start and end dates need to be before the dates of the work package this one
* ~~**\[open\]** Invalid dates are disabled.~~ _~~This is something that needs
#### Scenario 16
* Setup
* Non-working days are included
* Start
* ~~Start
* ~~Duration: 3~~
* Duration: 4 days
* ~~Start date: Thursday, 11 Febuary, 2021~~
* ~~End date: Monday, 17 February, 2021~~
* ~~Duration: 5~~
* Change
* Option to include non-working days is disabled
*
* Start
* ~~End date: Friday, 12 February, 2021~~
* ~~Warning: Reminder the start and end dates need to be before the dates of the work package this one
~~For example, in this example,~~ _~~Test a3~~_ ~~begins after~~ _~~Test a2~~_~~. When~~ _~~Test a3~~_ ~~is given a "preceeds" relationship at~~ _~~a2~~_~~, dates don't automatically adjust:~~
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/31006/content"></div></figure>
~~If we flip the relationship, (give Test~~ _~~a2~~_ ~~a "preceeds" relationship to~~ _~~Test a3),~~_ ~~the dates for Test a3 seem to adjust automatically so it follows a2:~~
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/31007/content"></div></figure>
~~This second behaviour seems reasonable; a2 terminates on 22.10, so a3 automatically starts on 23.10. Do we want to preseve this? Or perhaps make the behaviour more consistent between the two cases?~~
* Setup
* Non-working days are included
* Start
* ~~Start
* ~~End date: Wednesday, 10 February, 2021~~
* ~~Duration: 3~~
* Finish
* ~~Start
* ~~End date: empty~~
* ~~Duration: empty~~
* ~~Change~~
* Duration:
* Change
* Option
* ~~Start date: Thursday, 11 February, 2021~~
* ~~Duration: 1 (automatic)~~
* ~~End date: Thursday, 11 February, 2021 (derived from duration)~~
* ~~Warning: Reminder the start and end dates need
* ~~**\[open\]** Invalid dates are disabled.~~ _~~This
#### ~~Scenario 18~~
* ~~Setup~~
* Start date changes to
* ~~Task 1:~~
* ~~Start date:
* ~~End date: Friday, 19 February, 2021~~
* ~~Duration: 5~~
* Finish date is changed to
* ~~Start date:
* ~~End date: Thursday, 18 February, 2021~~
* ~~Duration: 3~~
* ~~Change~~
*
* ~~**\[open, to be discussed\]** Expected result~~
* ~~Dates for Task 2 are changed, such that finish date is the first available date following Task 1.
* ~~Start date: Monday, 22 February, 2021~~
* ~~Duration: 3~~
* ~~End date: Wednesday, 14 February, 2021~~
* ~~Warning: Reminder the start and end dates need to be after the dates of the work package this one is following.~~
~~For example, in this example,~~ _~~Test a3~~_ ~~begins after~~ _~~Test a2,~~_ ~~but before its finish date. When~~ _~~Test a2~~_ ~~is given a "follows" relationship at~~ _~~a3~~_~~, dates don't automatically adjust:~~
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/31009/content"></div></figure>
~~If we flip the relationship, (give Test~~ _~~a2~~_ ~~a "follows" relationship to~~ _~~Test a3),~~_ ~~the dates for Test a3 seem to adjust automatically so it follows a2:~~
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/31008/content"></div></figure>
~~This second behaviour seems reasonable; a2 terminates on 22.10, so a3 automatically follows on the next available day, 23.10. Do we want to this? Or perhaps make the behaviour more consistent between the two cases?~~
* Setup
* Non-working days are included
* Start
* ~~Start
* ~~Duration: 3~~
* Duration: 11 days
* ~~Start date: empty~~
* ~~End date: empty~~
* ~~Duration: empty.~~
* Change
* Option to include non-working days
* Expected result
* Start
* ~~Start date:
* ~~Duration: 10~~