Content
View differences
Updated by Parimal Satyal over 1 year ago
### Note
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. We created a [similar document with scenarios previously](https://community.openproject.org/wp/43539) when we added duration to the date picker, which made it easier:
* For devs to write test cases
* Document behaviour
* Use it for testing
Now with the upcoming [introduction of automatic scheduling](https://community.openproject.org/wp/59539), we need to reevaluate if the following scenarios are still relevant, if the behaviour is consistent and what news scenarios need to be added.
**THIS DOCUMENT IS A WORK IN PROGRESS, PLEASE DO NOT USE IT UNTIL THE STATUS IS SET TO 'TO BE SCHEDULED' or 'SCHEDULED'.**
### Scenarios: Date picker
In all these scenarios, Saturday and Sunday are non-working days.
#### Scenario 1 π’
* Setup
* Start date: Wednesday, January 8, 2025
* Finish date: empty
* Duration: empty
* Working days only: on
* Change
* User enters a duration of 10 days
* Expected result:
* The finish date is set Tuesday, January 21 2025 (derived)
<br>
#### 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
<br>
#### Scenario 3 π’
* Setup
* Start date: empty
* Finish date: Tuesday, January 21 2025
* Duration: empty
* Working days only: on
* Change
* User enters a duration of 10 days
* Expected result:
* The start date is set to Wednesday, January 8, 2025 (derived)
<br>
#### Scenario 4 π’
* Setup
* Start date: Monday, January 13, 2025
* Finish date: Friday, January 24, 2025
* Duration: 10 days
* Working days only: on
* Change
* User changes duration to 11 days
* Expected result:
* The finish date is changed to Monday, January 27, 2025
<br>
#### Scenario 5 π’
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Monday, January 20, 2025
* Duration: 11
* Working days only: on
* Change
* User changes duration to 10 days
* Expected result:
* The finish date is changed to Friday, January 17, 2025
<br>
#### Scenario 6 π’
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* Remove duration by clearing duration field
* Expected result
* Finish date is also removed, start date is maintained as is:
* Start date: Tuesday, January 7, 2025
* Finish date: -
* Duration: -
<br>
#### Scenario 6a π’
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* Remove duration by focusing duration field and clicking the "x"
* Expected result
* Finish date is also removed, start date is maintained as is:
* Start date: Tuesday, January 7, 2025
* Finish date: -
* Duration: -
<br>
#### Scenario 7 π’
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* Change
* User alters the start date to Tuesday, January 7, 2025
* 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).
* \[open\] Challenge?
* π’ \[Chris\] Yes! I totally approve this scenario. I think that's the correct behavior. Before, it would have kept the duration and change the end date, which I always found counter-intuitive.
<br>
#### Scenario 8 π’
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* Change
* User alters the finish date to January 10, 2025
* Expected result
* Start date is unaffected, duration is now set to 5 days:
* Start date: Monday, January 6, 2025
* Finish date: Friday, January 10, 2025
* Duration: 5
<br>
#### Scenario 9 π’
* Setup
* Start date: empty
* Finish date: empty
* Duration: 4
* Change
* User enters the finish date of Friday, January 10, 2025 (finish date in focus).
* Expected result
* The start date is set to Tuesday, January 7, 2025 (derived from duration):
* Start date: Tuesday, January 7, 2025
* Finish date: Friday, January 10, 2025
* Duration: 4
<br>
#### Scenario 10 π’
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* User enters the start date of Tuesday, January 7, 2025
* Expected result
* Duration is set to 3 (derived from start date):
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
<br>
#### Scenario 13 π’
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* The user changes the start day on the date picker to Wednesday, February 15, 2025 (note that this is _after_ the original finish date)
* Expected result
* The start date is set to Wednesday, February 15
* The finish date is cleared
* Duration is cleared
<br>
#### Scenario 13a π’
* Setup
* Start date: Thursday, January 23, 2025
* Finish date: empty
* Duration: empty
* Today's date is Tuesday, January 21, 2025
* Change
* The user clicks the "Today" link under the Finish date field
* Expected result
* The finish date is set to Tuesday, February 21, 2021
* The start date is cleared
* Duration is cleared
<br>
#### Scenario 14 π’
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* The user changes the start day on the date picker to Monday, January 6, 2025 (note that this is _before_ the original start date).
* Expected result
* The start date is now Monday, January 6, 2025
* The finish date is maintained at Thursday, January 9, 2025
* The duration changes to 4 days.
* (In previous version, the duration would be kept and finish date would be derived. This is no longer the case: we keep always keep dates and derive duration)
<br>
#### Scenario 15 π’
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: Tuesday, January 14, 2025
* Duration: 4
* Working days only: on
* Change
* Working days only: off
* Expected result
* Start date remains Thursday, January 9, 2025
* Finish date is changed to Sunday, January 12, 2025
* Duration is conserved (4 days)
<br>
#### Scenario 16 π’
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: Sunday, January 12, 2025
* Duration: 4
* Working days only: off
* Change
* Working days only: on
* Expected result
* Start date remains Thursday, January 9, 2025
* Finish date is changed to Tuesday, January 14, 2025
* Duration is conserved (4 days)
<br>
#### Scenario 17 π’
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Working days only: off
* Duration: 2
* Change
* Working days only: on
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is changed to Tuesday, January 14, 2025
* Duration is conserved (2 days)
<br>
#### Scenario 18 π’
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Tuesday, January 21, 2025
* Working days only: off
* Duration: 11 days
* Change
* Working days only: on
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is changed to Monday, January 27, 2025
* Duration is conserved (11 days)
<br>
#### Scenario 19 π’
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: -
* Working days only: off
* Duration: -
* Change
* Working days only: on
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is still empty
* Duration is still empty
* Note
* if "Working days only" is switched off again, the start date _could_ go back to Saturday Jan 11, but this is not a requirement. Both behaviors are acceptable.
<br>
#### Scenario 20 π’
* Setup
* Start date: -
* Finish date: Sunday, January 12, 2025
* Working days only: off
* Duration: -
* Change
* Working days only: on
* Expected result
* Start date is still empty
* Finish date is Monday, February 13, 2025
* Duration is still empty
<br>
#### Scenario 21a π’
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Working days only: off
* Duration: 2
* Change
* Clear start date
* Expected result
* Start date is removed
* Duration is removed
* Finish date is maintained at Sunday, January 12, 2025
<br>
#### Scenario 21b π’
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Working days only: off
* Duration: 2
* Change
* Finish date is cleared
* Expected result
* Start date is maintained at Saturday, January 11, 2025
* Finish date is removed
* Duration is removed
<br>
#### Scenario 22a π’
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: -
* Duration: -
* Change
* With duration in focus, click on Wednesday, January 8, 2025
* Note: this is one dayΒ _earlier_ than the current start date
* Expected result
* Start date is updated to at Wednesday, January 8, 2025 (the clicked date)
* Finish date is set to Thursday, January 9, 2025 (the previous start date)
* Focus is set to finish date
* Duration is derived as 2 days
<br>
#### Scenario 22b π’
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: -
* Duration: -
* Change
* With duration in focus, click on Friday, January 10, 2025
* Note: this is one dayΒ _after_ than the current start date
* Expected result
* Start date stays at Thursday, January 9, 2025
* Finish date is set to Friday, January 10, 2025
* Duration is derived as 2 days
* Focus is set to start date
<br>
#### Scenario 23a π’
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* With duration in focus, click on Friday, January 10, 2025
* Expected result
* Start date is set to Thursday, January 9, 2025 (the previous finish date)
* Finish date is updated to Friday, January 10, 2025 (the clicked date)
* Duration is derived as 2 days
* Focus is set to start date
<br>
#### Scenario 23b π’
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* With duration in focus, click on Wednesday, January 8, 2025
* Expected result
* Start date is set to Wednesday, January 8, 2025 (the clicked date)
* Finish date remains Thursday, January 9, 2025
* Duration is derived as 2 days
* Focus is set to finish date
<br style="page-break-after:always;">
### Other scenarios (incl. new and related to Gantt/Team Planner)
#### Scenario 24a: Single date change (Start date) π’
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: -
* Duration: -
* Change
* With start date in focus, click on Friday, January 10, 2025
* Expected result
* Start date is now Friday, January 10, 2025 (the clicked date)
* Finish date remains empty
* Duration remains empty
* Focus is moved to Finish date (range mode with new start date)
####
#### Scenario 24b: Single date change (Finish date) π’
* Setup
* Start date: -
* Finish date: Friday, January 10, 2025
* Duration: -
* Change
* With finish date in focus, click on Thu, Jan 16, 2025
* Expected result
* Finish date is now Thu, Jan 16, 2025 (the clicked date)
* Start date remains empty
* Duration remains empty
* Focus is moved to Start date (range mode with new finish date)
#### Scenario 25: Manual to automatic with no predecessors or children π’
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Switch to automatic
* Expected result:
* Not possible (no predecessors or children)
###
### Scenarios: Scheduling (not related to the date picker)
In all these scenarios, Saturday and Sunday are non-working days.
#### Scenario 11 π’
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* 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 Tuesday, Jan 7, 2025)
* Expected result
* The duration is reduced to 3 days
* The start date is set Tuesday, January 7, 2025
* The finish date is left unchanged
<br>
#### Scenario 12 (GANTT/Team planner) π’
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Wednesday, January 8, 2025
* 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, January 8, 2025
* Expected result
* The duration is maintained. Start state is now January 8, 2025 (as set by drag), finish date is set to Friday, January 10, 2025 (derived based on duration).
<br>
#### Scenario 12bis (GANTT/Team planner) π’
* Setup
* Start date: Wednesday, January 8, 2025
* Finish date: Friday, January 10, 2025
* 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, January 6, 2025.
* Expected result
* The duration is maintained. Start state is now Monday, January 6, 2025 (as set by drag), finish date is set to Wednesday, January 8, 2025 (derived based on duration)
<br>
<br>
#### Scenario 26: Add a predecessor π’
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add 1 predecessor:
* Finish date: Thurs, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Fri, Jan 3, 2025 (one day after predecessor)
* Finish date: Tue, Jan 7, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 1 predecessor
<br>
#### Scenario 27a: Manual to automatic with multiple predecessors (no lag) π’
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add predecessor A:
* Finish date: Mon, Dec 30, 2024
* Lag: 0
* Add predecessor B:
* Finish date: Thurs, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Fri, Jan 3, 2025 (closest predecessor)
* Finish date: Tue, Jan 7, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 2 predecessors
<br>
#### Scenario 27b: Manual to automatic with multiple predecessors (with lag) π’
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add predecessor A:
* Finish date: Mon, Dec 30, 2024
* Lag: 14
* Add predecessor B:
* Finish date: Thu, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Mon, Jan 20, 2025 (closest predecessor, because of lag)
* Finish date: Wed, Jan 22, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 2 predecessors
<br>
#### Scenario 28: Add children (parent in manual originally; children all manual, all in working days only) π’
* Setup (parent)
* Start date: Thu, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 2
* Mode: Manual
* Working days only: on
* Relations: none
* Change
* Add child 1:
* 16β20 Jan, 2025
* Working days only: on
* Duration: 3
* Mode: Manual
* Add child 2:
* 21-24 Jan, 2025
* Working days only: on
* Duration: 4
* Mode: Manual
* Expected result
* Start date: Tue, Jan 16, 2025
* Finish date Sun, Jan 24, 2025
* Mode: Automatic (automatically-set when first child is added)
* Working days only: disabled and on
* Duration: 7
<br>
#### Scenario 29: Add children (parent in manual originally; children all manual, mixed working days) π’
* Setup
* Start date: Wed, Jan 15, 2025
* Finish date: Fri, Jan 17, 2025
* Duration: 2
* Mode: Manual
* Working days only: on
* Relations: none
* Change
* Add child 1:
* 16β20 Jan, 2025
* Working days only: off
* Duration: 3
* Mode: Manual
* Add child 2:
* 21-26 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Manual
* Expected result
* Start date: Thu, Jan 16, 2025
* Finish date:Β Sun, Jan 26, 2025
* Mode: Automatic (automatically-set when first child is added)
* Working days only: disabled and off
* Duration: 11
* Context: If at least one child has "working days only: off", then the parent also has "working days only: off".
<br>
#### Scenario 30: Add children to a successor (start date change derived children instead of predecessor) π’ π΅
* Setup:
* Start date: Wed, Jan 15, 2025
* Finish date: Fri, Jan 17, 2025
* Duration: 3
* Mode: Automatic
* Working days only: on
* Banner: Start date derived from predecessor
* Relations:
* 1 predecessor:
* Start date: Fri Jan 10, 2025
* Finish date: Tue, Jan 14, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: 1 follower
* Change
* Add child 1:
* 16β20 Jan, 2025
* Working days only: on
* Duration: 3
* Mode: Manual
* Add child 2:
* 21-26 Jan, 2025
* Working days only: off
* π‘ PS: I realise this is not possible; if working days is on, It has to be 21β28 Jan since 25 and 28 is the weekend, right?
* I made child 1 working days only "on" and child 2 working days only "off". It works better.
* Duration: 6
* Mode: Manual
* Expected result
* Start date: Thu, Jan 16, 2025
* Finish date:Β Sun, Jan 26, 2025
* Mode: Automatic (remains in automatic)
* Working days only: disabled and off
* Duration: 11
* Banner: Dates derived from children
####
#### Scenario 30a: Automatically-scheduled successor with children loses all its children (Child 1 removed first) π’ π΅
* Setup:
* Start date: Thu, Jan 16, 2025
* Finish date:Β Sun, Jan 26, 2025
* Mode: Automatic
* Working days only: disabled
* Duration: 11
* Banner: Dates derived from children
* Relations:
* 1 predecessor:
* Start date: Fri Jan 10, 2025
* Finish date: Tue, Jan 14, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: 1 follower
* Child 1:
* 16β20 Jan, 2025
* Working days only: off
* Duration: 5
* Mode: Manual
* Child 2:
* 21-28 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Manual
* Change
* Delete child 1, then delete child 2
* Expected result
* Start date: Wed, Jan 15, 2025
* Finish date: Wed, Jan 22, 2025
* π‘ I fixed dates: they must start right after the predecessor while keeping the duration (Dates derived from predecessor)
* Mode: Automatic (remains in automatic because of existing predecessor)
* π‘ PS: Doesn't this go to manual? It can either go to manual and keep the dates of the last-deleted child OR go to automatic and get dates from the predecessor.
* No, it remains automatic because it still has a predecessor. it's only when there are no more children and no Β more predecessors that the work package has no choice other choice than switching to manual.
* Working days only: on
* Duration: 6
* Banner: Start dates Dates derived from predecessor
* π‘ PS: Depends on what mode it goes to.
* It keeps automatic, so it's correct. It would be even more correct to precise "Start date derived from predecessor".
<br>
#### Scenario 30b: Automatically-scheduled successor with children loses all its children (Child 2 removed first) π’ π΅
* Setup:
* Start date: Thu, Jan 16, 2025
* Finish date:Β Sun, Jan 26, 2025
* Mode: Automatic
* Working days only: disabled
* Duration: 11
* Banner: Dates derived from children
* Relations:
* 1 predecessor:
* Start date: Fri Jan 10, 2025
* Finish date: Tue, Jan 14, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: 1 follower
* Child 1:
* 16β20 Jan, 2025
* Working days only: off
* Duration: 5
* Mode: Manual
* Child 2:
* 21-28 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Manual
* Change
* Delete child 2, then delete child 1
* Expected result
* Start date: Wed, Jan 15, 2025
* Finish date: Sun, Jan 19, 2025
* π‘ I fixed dates: they must start right after the predecessor while keeping the duration (Dates derived from predecessor)
* Mode: Automatic (remains in automatic because of existing predecessor)
* π‘ PS: Doesn't this go to manual? It can either go to manual and keep the dates of the last-deleted child OR go to automatic and get dates from the predecessor.
* Same as 30a, remains automatic
* Working days only: off
* Duration: 5
* Banner: Start date Dates derived from predecessor
* π‘ PS: Depends on what mode it goes to.
* Same as 30a, remains automatic, so banner is ok (and better with "Start date derived ...")
<br>
#### Scenario 32: Switch parent with predecessor and children to manual π’
* Setup:
* Start date: Thu, Jan 27, 2025
* Finish date: Sun, Feb 6, 2025
* Duration: 11
* Mode: Automatic
* Working days only: off
* Relations (3):
* Predecessor:
* Start date: Fri Jan 24, 2025
* Finish date: Sun, Jan 26, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Child 1:
* 27β29 Jan, 2025
* Working days only: off
* Duration: 3
* Mode: Auto
* Relations: Precedes Child 2
* Child 2:
* 30 Jan-6 Feb, 2025
* Working days only: on
* Duration: 6
* Mode: Auto
* Relations: Follows Child 1
* Change:
* Change mode of this parent to manual
* Expected result
* Start date: Thu, Jan 27, 2025
* Finish date: Sun, Feb 6, 2025
* Duration: 11
* Mode: Manual
* Working days only: off
* Relations (3):
* Predecessor: _(unchanged)_
* Child 1: _(unchanged)_
* Child 2: _(unchanged)_
<br>
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. We created a [similar document with scenarios previously](https://community.openproject.org/wp/43539) when we added duration to the date picker, which made it easier:
* For devs to write test cases
* Document behaviour
* Use it for testing
Now with the upcoming [introduction of automatic scheduling](https://community.openproject.org/wp/59539), we need to reevaluate if the following scenarios are still relevant, if the behaviour is consistent and what news scenarios need to be added.
In all these scenarios, Saturday and Sunday are non-working days.
#### Scenario 1 π’
* Setup
* Start date: Wednesday, January 8, 2025
* Finish date: empty
* Duration: empty
* Working days only: on
* Change
* User enters a duration of 10 days
* Expected result:
* The finish date is set Tuesday, January 21 2025 (derived)
<br>
#### 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
<br>
#### Scenario 3 π’
* Setup
* Start date: empty
* Finish date: Tuesday, January 21 2025
* Duration: empty
* Working days only: on
* Change
* User enters a duration of 10 days
* Expected result:
* The start date is set to Wednesday, January 8, 2025 (derived)
<br>
#### Scenario 4 π’
* Setup
* Start date: Monday, January 13, 2025
* Finish date: Friday, January 24, 2025
* Duration: 10 days
* Working days only: on
* Change
* User changes duration to 11 days
* Expected result:
* The finish date is changed to Monday, January 27, 2025
<br>
#### Scenario 5 π’
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Monday, January 20, 2025
* Duration: 11
* Working days only: on
* Change
* User changes duration to 10 days
* Expected result:
* The finish date is changed to Friday, January 17, 2025
<br>
#### Scenario 6 π’
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* Remove duration by clearing duration field
* Expected result
* Finish date is also removed, start date is maintained as is:
* Start date: Tuesday, January 7, 2025
* Finish date: -
* Duration: -
<br>
#### Scenario 6a π’
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* Remove duration by focusing duration field and clicking the "x"
* Expected result
* Finish date is also removed, start date is maintained as is:
* Start date: Tuesday, January 7, 2025
* Finish date: -
* Duration: -
<br>
#### Scenario 7 π’
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* Change
* User alters the start date to Tuesday, January 7, 2025
* 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).
* \[open\] Challenge?
* π’ \[Chris\] Yes! I totally approve this scenario. I think that's the correct behavior. Before, it would have kept the duration and change the end date, which I always found counter-intuitive.
<br>
#### Scenario 8 π’
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* Change
* User alters the finish date to January 10, 2025
* Expected result
* Start date is unaffected, duration is now set to 5 days:
* Start date: Monday, January 6, 2025
* Finish date: Friday, January 10, 2025
* Duration: 5
<br>
#### Scenario 9 π’
* Setup
* Start date: empty
* Finish date: empty
* Duration: 4
* Change
* User enters the finish date of Friday, January 10, 2025 (finish date in focus).
* Expected result
* The start date is set to Tuesday, January 7, 2025 (derived from duration):
* Start date: Tuesday, January 7, 2025
* Finish date: Friday, January 10, 2025
* Duration: 4
<br>
#### Scenario 10 π’
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* User enters the start date of Tuesday, January 7, 2025
* Expected result
* Duration is set to 3 (derived from start date):
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
<br>
#### Scenario 13 π’
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* The user changes the start day on the date picker to Wednesday, February 15, 2025 (note that this is _after_ the original finish date)
* Expected result
* The start date is set to Wednesday, February 15
* The finish date is cleared
* Duration is cleared
<br>
#### Scenario 13a π’
* Setup
* Start date: Thursday, January 23, 2025
* Finish date: empty
* Duration: empty
* Today's date is Tuesday, January 21, 2025
* Change
* The user clicks the "Today" link under the Finish date field
* Expected result
* The finish date is set to Tuesday, February 21, 2021
* The start date is cleared
* Duration is cleared
<br>
#### Scenario 14 π’
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* The user changes the start day on the date picker to Monday, January 6, 2025 (note that this is _before_ the original start date).
* Expected result
* The start date is now Monday, January 6, 2025
* The finish date is maintained at Thursday, January 9, 2025
* The duration changes to 4 days.
* (In previous version, the duration would be kept and finish date would be derived. This is no longer the case: we keep always keep dates and derive duration)
<br>
#### Scenario 15 π’
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: Tuesday, January 14, 2025
* Duration: 4
* Working days only: on
* Change
* Working days only: off
* Expected result
* Start date remains Thursday, January 9, 2025
* Finish date is changed to Sunday, January 12, 2025
* Duration is conserved (4 days)
<br>
#### Scenario 16 π’
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: Sunday, January 12, 2025
* Duration: 4
* Working days only: off
* Change
* Working days only: on
* Expected result
* Start date remains Thursday, January 9, 2025
* Finish date is changed to Tuesday, January 14, 2025
* Duration is conserved (4 days)
<br>
#### Scenario 17 π’
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Working days only: off
* Duration: 2
* Change
* Working days only: on
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is changed to Tuesday, January 14, 2025
* Duration is conserved (2 days)
<br>
#### Scenario 18 π’
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Tuesday, January 21, 2025
* Working days only: off
* Duration: 11 days
* Change
* Working days only: on
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is changed to Monday, January 27, 2025
* Duration is conserved (11 days)
<br>
#### Scenario 19 π’
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: -
* Working days only: off
* Duration: -
* Change
* Working days only: on
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is still empty
* Duration is still empty
* Note
* if "Working days only" is switched off again, the start date _could_ go back to Saturday Jan 11, but this is not a requirement. Both behaviors are acceptable.
<br>
#### Scenario 20 π’
* Setup
* Start date: -
* Finish date: Sunday, January 12, 2025
* Working days only: off
* Duration: -
* Change
* Working days only: on
* Expected result
* Start date is still empty
* Finish date is Monday, February 13, 2025
* Duration is still empty
<br>
#### Scenario 21a π’
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Working days only: off
* Duration: 2
* Change
* Clear start date
* Expected result
* Start date is removed
* Duration is removed
* Finish date is maintained at Sunday, January 12, 2025
<br>
#### Scenario 21b π’
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Working days only: off
* Duration: 2
* Change
* Finish date is cleared
* Expected result
* Start date is maintained at Saturday, January 11, 2025
* Finish date is removed
* Duration is removed
<br>
#### Scenario 22a π’
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: -
* Duration: -
* Change
* With duration in focus, click on Wednesday, January 8, 2025
* Note: this is one dayΒ _earlier_ than the current start date
* Expected result
* Start date is updated to at Wednesday, January 8, 2025 (the clicked date)
* Finish date is set to Thursday, January 9, 2025 (the previous start date)
* Focus is set to finish date
* Duration is derived as 2 days
<br>
#### Scenario 22b π’
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: -
* Duration: -
* Change
* With duration in focus, click on Friday, January 10, 2025
* Note: this is one dayΒ _after_ than the current start date
* Expected result
* Start date stays at Thursday, January 9, 2025
* Finish date is set to Friday, January 10, 2025
* Duration is derived as 2 days
* Focus is set to start date
<br>
#### Scenario 23a π’
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* With duration in focus, click on Friday, January 10, 2025
* Expected result
* Start date is set to Thursday, January 9, 2025 (the previous finish date)
* Finish date is updated to Friday, January 10, 2025 (the clicked date)
* Duration is derived as 2 days
* Focus is set to start date
<br>
#### Scenario 23b π’
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* With duration in focus, click on Wednesday, January 8, 2025
* Expected result
* Start date is set to Wednesday, January 8, 2025 (the clicked date)
* Finish date remains Thursday, January 9, 2025
* Duration is derived as 2 days
* Focus is set to finish date
<br style="page-break-after:always;">
### Other scenarios (incl. new and related to Gantt/Team Planner)
#### Scenario 24a: Single date change (Start date) π’
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: -
* Duration: -
* Change
* With start date in focus, click on Friday, January 10, 2025
* Expected result
* Start date is now Friday, January 10, 2025 (the clicked date)
* Finish date remains empty
* Duration remains empty
* Focus is moved to Finish date (range mode with new start date)
####
#### Scenario 24b: Single date change (Finish date) π’
* Setup
* Start date: -
* Finish date: Friday, January 10, 2025
* Duration: -
* Change
* With finish date in focus, click on Thu, Jan 16, 2025
* Expected result
* Finish date is now Thu, Jan 16, 2025 (the clicked date)
* Start date remains empty
* Duration remains empty
* Focus is moved to Start date (range mode with new finish date)
#### Scenario 25: Manual to automatic with no predecessors or children π’
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Switch to automatic
* Expected result:
* Not possible (no predecessors or children)
###
### Scenarios: Scheduling (not related to the date picker)
In all these scenarios, Saturday and Sunday are non-working days.
#### Scenario 11 π’
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* 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 Tuesday, Jan 7, 2025)
* Expected result
* The duration is reduced to 3 days
* The start date is set Tuesday, January 7, 2025
* The finish date is left unchanged
<br>
#### Scenario 12 (GANTT/Team planner) π’
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Wednesday, January 8, 2025
* 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, January 8, 2025
* Expected result
* The duration is maintained. Start state is now January 8, 2025 (as set by drag), finish date is set to Friday, January 10, 2025 (derived based on duration).
<br>
#### Scenario 12bis (GANTT/Team planner) π’
* Setup
* Start date: Wednesday, January 8, 2025
* Finish date: Friday, January 10, 2025
* 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, January 6, 2025.
* Expected result
* The duration is maintained. Start state is now Monday, January 6, 2025 (as set by drag), finish date is set to Wednesday, January 8, 2025 (derived based on duration)
<br>
<br>
#### Scenario 26: Add a predecessor π’
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add 1 predecessor:
* Finish date: Thurs, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Fri, Jan 3, 2025 (one day after predecessor)
* Finish date: Tue, Jan 7, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 1 predecessor
<br>
#### Scenario 27a: Manual to automatic with multiple predecessors (no lag) π’
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add predecessor A:
* Finish date: Mon, Dec 30, 2024
* Lag: 0
* Add predecessor B:
* Finish date: Thurs, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Fri, Jan 3, 2025 (closest predecessor)
* Finish date: Tue, Jan 7, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 2 predecessors
<br>
#### Scenario 27b: Manual to automatic with multiple predecessors (with lag) π’
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add predecessor A:
* Finish date: Mon, Dec 30, 2024
* Lag: 14
* Add predecessor B:
* Finish date: Thu, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Mon, Jan 20, 2025 (closest predecessor, because of lag)
* Finish date: Wed, Jan 22, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 2 predecessors
<br>
#### Scenario 28: Add children (parent in manual originally; children all manual, all in working days only) π’
* Setup (parent)
* Start date: Thu, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 2
* Mode: Manual
* Working days only: on
* Relations: none
* Change
* Add child 1:
* 16β20 Jan, 2025
* Working days only: on
* Duration: 3
* Mode: Manual
* Add child 2:
* 21-24 Jan, 2025
* Working days only: on
* Duration: 4
* Mode: Manual
* Expected result
* Start date: Tue, Jan 16, 2025
* Finish date Sun, Jan 24, 2025
* Mode: Automatic (automatically-set when first child is added)
* Working days only: disabled and on
* Duration: 7
<br>
#### Scenario 29: Add children (parent in manual originally; children all manual, mixed working days) π’
* Setup
* Start date: Wed, Jan 15, 2025
* Finish date: Fri, Jan 17, 2025
* Duration: 2
* Mode: Manual
* Working days only: on
* Relations: none
* Change
* Add child 1:
* 16β20 Jan, 2025
* Working days only: off
* Duration: 3
* Mode: Manual
* Add child 2:
* 21-26 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Manual
* Expected result
* Start date: Thu, Jan 16, 2025
* Finish date:Β Sun, Jan 26, 2025
* Mode: Automatic (automatically-set when first child is added)
* Working days only: disabled and off
* Duration: 11
* Context: If at least one child has "working days only: off", then the parent also has "working days only: off".
<br>
#### Scenario 30: Add children to a successor (start date
* Setup:
* Start date: Wed, Jan 15, 2025
* Finish date: Fri, Jan 17, 2025
* Duration: 3
* Mode: Automatic
* Working days only: on
* Banner: Start date derived from predecessor
* Relations:
* 1 predecessor:
* Start date: Fri Jan 10, 2025
* Finish date: Tue, Jan 14, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: 1 follower
* Change
* Add child 1:
* 16β20 Jan, 2025
* Working days only: on
* Duration: 3
* Mode: Manual
* Add child 2:
* 21-26 Jan, 2025
* Working days only: off
* I made child 1 working days only "on" and child 2 working days only "off". It works better.
*
* Mode: Manual
* Expected result
* Start date: Thu, Jan 16, 2025
* Finish date:Β Sun, Jan 26, 2025
* Mode: Automatic (remains in automatic)
* Working days only: disabled and off
* Duration: 11
* Banner: Dates derived from children
####
#### Scenario 30a: Automatically-scheduled successor with children loses all its children (Child 1 removed first) π’
* Setup:
* Start date: Thu, Jan 16, 2025
* Finish date:Β Sun, Jan 26, 2025
* Mode: Automatic
* Working days only: disabled
* Duration: 11
* Banner: Dates derived from children
* Relations:
* 1 predecessor:
* Start date: Fri Jan 10, 2025
* Finish date: Tue, Jan 14, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: 1 follower
* Child 1:
* 16β20 Jan, 2025
* Working days only: off
* Duration: 5
* Mode: Manual
* Child 2:
* 21-28 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Manual
* Change
* Delete child 1, then delete child 2
* Expected result
* Start date: Wed, Jan 15, 2025
* Finish date: Wed, Jan 22, 2025
*
* No, it remains automatic because it still has a predecessor. it's only when there are no more children and no Β more predecessors that the work package has no choice other choice than switching to manual.
*
* Duration: 6
* Banner: Start dates
* π‘ PS: Depends on what mode it goes to.
* It keeps automatic, so it's correct. It would be even more correct to precise "Start date derived from predecessor".
#### Scenario 30b: Automatically-scheduled successor with children loses all its children (Child 2 removed first) π’
* Setup:
* Start date: Thu, Jan 16, 2025
* Finish date:Β Sun, Jan 26, 2025
* Mode: Automatic
* Working days only: disabled
* Duration: 11
* Banner: Dates derived from children
* Relations:
* 1 predecessor:
* Start date: Fri Jan 10, 2025
* Finish date: Tue, Jan 14, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: 1 follower
* Child 1:
* 16β20 Jan, 2025
* Working days only: off
* Duration: 5
* Mode: Manual
* Child 2:
* 21-28 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Manual
* Change
* Delete child 2, then delete child 1
* Expected result
* Start date: Wed, Jan 15, 2025
* Finish date: Sun, Jan 19, 2025
*
* Same as 30a, remains automatic
*
* Duration: 5
* Banner: Start date
* π‘ PS: Depends on what mode it goes to.
* Same as 30a, remains automatic, so banner is ok (and better with "Start date derived ...")
#### Scenario 32: Switch parent with predecessor and children to manual π’
* Setup:
* Start date: Thu, Jan 27, 2025
* Finish date: Sun, Feb 6, 2025
* Duration: 11
* Mode: Automatic
* Working days only: off
* Relations (3):
* Predecessor:
* Start date: Fri Jan 24, 2025
* Finish date: Sun, Jan 26, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Child 1:
* 27β29 Jan, 2025
* Working days only: off
* Duration: 3
* Mode: Auto
* Relations: Precedes Child 2
* Child 2:
* 30 Jan-6 Feb, 2025
* Working days only: on
* Duration: 6
* Mode: Auto
* Relations: Follows Child 1
* Change:
* Change mode of this parent to manual
* Expected result
* Start date: Thu, Jan 27, 2025
* Finish date: Sun, Feb 6, 2025
* Duration: 11
* Mode: Manual
* Working days only: off
* Relations (3):
* Predecessor: _(unchanged)_
* Child 1: _(unchanged)_
* Child 2: _(unchanged)_
<br>