Content
Updated by Christophe Bliard about 11 hours ago
**As a** project manager
**I want to** automatically move a set of work packages to the earliest date possible
**So that** I don't have to do this manually.
#### Acceptance criteria
##### General
* There are only two scheduling modes.
* **Manual**: The user can freely set the start and finish dates, but relations are ignored.
* **Automatic:** Automatically sets the start date based on a predecessor. The user can only set duration.
* This mode is also used for parents, where the duration field is also inactive.
* Any time a user wants to manually choose dates for a work package, they select manual scheduling.
* By default, all new work packages will be manually scheduled.
* A new manually-scheduled work package will either have no dates, or take the current date (depending on existing settings).
* Every newly created work package will have no predecessor; they have to be added later.
* If it's a new child work package, it will continue behaving as it does today and by default take the parent's start date.
* For automatic scheduling, a predecessor is required. If there are no predecessors and automatic mode is selected in the date picker:
* the top banner will show an error informing the user that a predecessor is required
* save action and all fields will be disabled (non-working days, dates...)
* If a work package was previously manually scheduled, but is then added as a successor. Or if a predecessor is added to a manually scheduled work package:
* the scheduling mode of the successor will always change to automatic.
**Parent/children relations**
* Parents will continue to behave as it does today, except they will now be in Automatic mode.
* They "cover" the date ranges of the two children and children can have an indirect link to relationships of the parents.
* Their dates will not be editable.
* They can be switched to manual mode.
* Adding a child to a manually-scheduled work package will automatically move the parent to automatic mode.
* If the parent previously had dates, those will be overwritten by those of the children.
* If the child does not yet have dates, neither will the parent. Previous dates (before being a parent) are lost, as is the case today.
* Removing the last child of a parent will switch the now non-parent work package mode to manual, whilst preserving dates before the removal of the last child.
* If neither the child nor the parent had dates, it will simply be switched to manual mode without any dates.
* A dialog will be added in feature #59542 to give more options.
##### Gantt view
* You can freely move manually scheduled work packages.
* It's impossible to move an automatically scheduled successor
* A dialog will be added in feature #59541 to give more options.
* For work packages without any predecessors, it will not be possible to select Automatic mode.
* Clicking on "Automatic" will show a blankslate with no actions possible.
* If the dates of a predecessor of an automatically scheduled work package are removed or if a predecessor is deleted, and removed, the successor is will go into manual mode. But we need to ask the user for confirmation:
* "This work package has at least one automatically scheduled and would then lose its dates, then it successor. Removing the dates here will switch the successor to manual mode scheduling to preserve its dates. dates."
* TODO: move this to a new chunk 5
* If all predecessors of an automatically scheduled work package are deleted:
* A dialog The "successor" goes into manual mode. We will be added in feature #59731 to ask for user confirmation. confirmation:
* "This work package has at least one automatically scheduled successor. Deleting this work package will switch the successor to manual scheduling to preserve its dates."
* TODO: move this to a new chunk 5
* The relation is deleted
##### **Migration from an earlier version**
* Dates will **NOT** change automatically. All existing dates are preserved.
* For work packages with no predecessors (or with no relations at all), they will be switched to manual scheduling.
* These work packages are switched to manual scheduling regardless of having dates or not.
* When relations exist,
* If the relationship is parent-child, there are no changes to dates; the parent remains was a gap in automatic mode (as is a predecessor/successor relationship, the case now) and successor will be set to “Automatic" with a lag set for the children follow relation with the rules above. closest predecessor (the one that finishes latest).
* If In a multi-relationship situation, earlier predecessors that do not affect the date of the successor has no dates
do not have lag added.
* The successor is switched to automatic mode and continues to have If the relation exists but there are no dates, regardless of having predecessor with dates or not.
* The successor they will be rescheduled automatically as soon as one of the predecessor has its dates updated.
* If the successor has dates and none of the predecessors have any dates
* The successor is switched to manual mode to preserve its dates and duration
scheduling mode.
* If the successor has dates and some predecessors have dates too
* The successor relationship is switched parent-child, there are no changes to dates; the parent remains in automatic mode
* A lag (as is set on the closest relation to preserve dates
* The closest relation is the one with the least distance between all predecessors case now) and the successor, and with children follow the oldest predecessor
* The gap is the number of working days between closest predecessor and successor
* predecessor date is due date, or start date if due date is unset
* successor date is start date, or due date if start date is unset
* Other relations are not modified
* TODO: what if the successor was manually scheduled and a lag exist on multiple relations that would push it to the future? Should we adjust lags of multiple relations in this case?
rules above.
* Manually scheduled work packages remain so.
##### **Date picker**
* The date picker will be Primerised.
* There is a new segmented control with label "Scheduling mode"
* There is a help icon next to the label. On hover, it displays a tooltip with this text: "‘Manual’ lets you pick fixed dates freely but ignores all predecessors. ‘Automatic’ selects the earliest possible start date for this work package, which cannot be modified."
* Options: "Manual" and "Automatic"
* The "Working days only" toggle becomes a checkbox aligned to the far right edge of the same line as the segmented control.
* In **Manual** mode:
* The dates are freely selectable, without restrictions.
* Relations don't affect the start and finish dates.
* A manually scheduled work package can push and pull successors that are automatically scheduled
* A manual work package can start before any of their predecessors
* A manually scheduled work package will not push a predecessor to the past when it's moved to the past
* In **Automatic** mode:
* The _Start date_ and _Finish date_ fields are read-only
* The "Today" links under the date fields are disabled (but not removed so that elements in the date picker don't move when changing modes)
* Duration remains editable (unless it's a parent)
* The mini calendar goes into read-only mode
##### **Date picker banners:**
**Manual scheduling:**
* Colour: Warning orange
* Action: Show relations
* Case 1: Relations exist but no predecessors.
* **Manually scheduled. Dates not affected by relations.**
Click on “Show relations” for Gantt overview
* Case 2: There are predecessors but a gap of over two days with the finish date of the latest predecessor.
* **Manually scheduled. Dates not affected by relations.**
There is a gap between this and all predecessors.
* Case 3: There are predecessors and the current work package overlaps with at least one of them.
* **Manually scheduled. Dates not affected by relations.**
Overlaps with at least one predecessor.
* Case 4: Work package has children.
* **Manually scheduled. Dates not affected by relations.**
This has child work package but their start dates are ignored.
**Automatic:**
* Colour: Info blue
* Action: Show relations
* Case 1: There is a predecessor.
* **The start date is set by a predecessor.**
Click on “Show relations” for Gantt overview.
* Case 4: The work package is a parent.
* **The dates are determined by child work packages.**
Click on “Show relations” for Gantt overview.
* If a work package is both a parent and has predecessors, this "parent" message will be displayed.
#### Visuals
_**Note:** Please check_ [_Figma_](https://www.figma.com/design/HrWVktq0SsGI2dqqIKQ11M/Scheduling---Lag-and-Modes?node-id=175-3641) _for the most recent mockups._
**Manual scheduling (but predecessors overlap):**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226779/content">
**As soon as possible (start date set by predecessors):**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226780/content">
<br>
**I want to** automatically move a set of work packages to the earliest date possible
**So that** I don't have to do this manually.
#### Acceptance criteria
##### General
* There are only two scheduling modes.
* **Manual**: The user can freely set the start and finish dates, but relations are ignored.
* **Automatic:** Automatically sets the start date based on a predecessor. The user can only set duration.
* This mode is also used for parents, where the duration field is also inactive.
* Any time a user wants to manually choose dates for a work package, they select manual scheduling.
* By default, all new work packages will be manually scheduled.
* A new manually-scheduled work package will either have no dates, or take the current date (depending on existing settings).
* Every newly created work package will have no predecessor; they have to be added later.
* If it's a new child work package, it will continue behaving as it does today and by default take the parent's start date.
* For automatic scheduling, a predecessor is required. If there are no predecessors and automatic mode is selected in the date picker:
* the top banner will show an error informing the user that a predecessor is required
* save action and all fields will be disabled (non-working days, dates...)
* If a work package was previously manually scheduled, but is then added as a successor. Or if a predecessor is added to a manually scheduled work package:
* the scheduling mode of the successor will always change to automatic.
**Parent/children relations**
* Parents will continue to behave as it does today, except they will now be in Automatic mode.
* They "cover" the date ranges of the two children and children can have an indirect link to relationships of the parents.
* Their dates will not be editable.
* They can be switched to manual mode.
* Adding a child to a manually-scheduled work package will automatically move the parent to automatic mode.
* If the parent previously had dates, those will be overwritten by those of the children.
* If the child does not yet have dates, neither will the parent. Previous dates (before being a parent) are lost, as is the case today.
* Removing the last child of a parent will switch the now non-parent work package mode to manual, whilst preserving dates before the removal of the last child.
* If neither the child nor the parent had dates, it will simply be switched to manual mode without any dates.
* A dialog will be added in feature #59542 to give more options.
##### Gantt view
* You can freely move manually scheduled work packages.
* It's impossible to move an automatically scheduled successor
* A dialog will be added in feature #59541 to give more options.
* For work packages without any predecessors, it will not be possible to select Automatic mode.
* Clicking on "Automatic" will show a blankslate with no actions possible.
* If the dates of a predecessor
* &quot;This work package has at least one
* TODO: move this to a new chunk 5
* If all predecessors of an automatically scheduled work package are deleted:
* A dialog
* &quot;This work package has at least one automatically scheduled successor. Deleting this work package will switch the successor to manual scheduling to preserve its dates.&quot;
* TODO: move this to a new chunk 5
* The relation is deleted
##### **Migration from an earlier version**
* Dates will **NOT** change automatically. All existing dates are preserved.
* For work packages with no predecessors (or with no relations at all), they will be switched to manual scheduling.
* These work packages are switched to manual scheduling regardless of having dates or not.
* When relations exist,
* If the relationship is parent-child, there are no changes to dates; the parent remains
* If
* The successor
* If the successor has dates and none of the predecessors have any dates
* The successor is switched to manual mode to preserve its dates and duration
* The successor
* A lag
* The closest relation is the one with the least distance between all predecessors
* The gap is the number of working days between closest predecessor and successor
* predecessor date is due date, or start date if due date is unset
* successor date is start date, or due date if start date is unset
* Other relations are not modified
* TODO: what if the successor was manually scheduled and a lag exist on multiple relations that would push it to the future? Should we adjust lags of multiple relations in this case?
##### **Date picker**
* The date picker will be Primerised.
* There is a new segmented control with label "Scheduling mode"
* There is a help icon next to the label. On hover, it displays a tooltip with this text: "‘Manual’ lets you pick fixed dates freely but ignores all predecessors. ‘Automatic’ selects the earliest possible start date for this work package, which cannot be modified."
* Options: "Manual" and "Automatic"
* The "Working days only" toggle becomes a checkbox aligned to the far right edge of the same line as the segmented control.
* In **Manual** mode:
* The dates are freely selectable, without restrictions.
* Relations don't affect the start and finish dates.
* A manually scheduled work package can push and pull successors that are automatically scheduled
* A manual work package can start before any of their predecessors
* A manually scheduled work package will not push a predecessor to the past when it's moved to the past
* In **Automatic** mode:
* The _Start date_ and _Finish date_ fields are read-only
* The "Today" links under the date fields are disabled (but not removed so that elements in the date picker don't move when changing modes)
* Duration remains editable (unless it's a parent)
* The mini calendar goes into read-only mode
##### **Date picker banners:**
**Manual scheduling:**
* Colour: Warning orange
* Action: Show relations
* Case 1: Relations exist but no predecessors.
* **Manually scheduled. Dates not affected by relations.**
Click on “Show relations” for Gantt overview
* Case 2: There are predecessors but a gap of over two days with the finish date of the latest predecessor.
* **Manually scheduled. Dates not affected by relations.**
There is a gap between this and all predecessors.
* Case 3: There are predecessors and the current work package overlaps with at least one of them.
* **Manually scheduled. Dates not affected by relations.**
Overlaps with at least one predecessor.
* Case 4: Work package has children.
* **Manually scheduled. Dates not affected by relations.**
This has child work package but their start dates are ignored.
**Automatic:**
* Colour: Info blue
* Action: Show relations
* Case 1: There is a predecessor.
* **The start date is set by a predecessor.**
Click on “Show relations” for Gantt overview.
* Case 4: The work package is a parent.
* **The dates are determined by child work packages.**
Click on “Show relations” for Gantt overview.
* If a work package is both a parent and has predecessors, this "parent" message will be displayed.
#### Visuals
_**Note:** Please check_ [_Figma_](https://www.figma.com/design/HrWVktq0SsGI2dqqIKQ11M/Scheduling---Lag-and-Modes?node-id=175-3641) _for the most recent mockups._
**Manual scheduling (but predecessors overlap):**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226779/content">
**As soon as possible (start date set by predecessors):**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226780/content">
<br>