Top Menu

Jump to content
Home
    Modules
      • Projects
      • Activity
      • Work packages
      • Gantt charts
      • Calendars
      • Team planners
      • Boards
      • News
    • Getting started
    • Introduction video
      Welcome to OpenProject Community
      Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu.

    • Help and support
    • Upgrade to Enterprise edition
    • User guides
    • Videos
    • Shortcuts
    • Community forum
    • Enterprise support

    • Additional resources
    • Data privacy and security policy
    • Digital accessibility (DE)
    • OpenProject website
    • Security alerts / Newsletter
    • OpenProject blog
    • Release notes
    • Report a bug
    • Development roadmap
    • Add and edit translations
    • API documentation
  • Sign in
      Forgot your password?

      or sign in with your existing account

      OpenProject ID Google

Side Menu

  • Overview
  • Activity
    Activity
  • Roadmap
  • Work packages
    Work packages
  • Gantt charts
    Gantt charts
  • Boards
    Boards
  • Wiki

Content

Updated by Christophe Bliard 7 months 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 are removed or if a predecessor is deleted

* if
deleted, and the successor is automatically scheduled and would then lose its dates, then it does lose its dates.

* If it was the last predecessor that was removed, it
will switch to manual mode and keep to preserve its dates if any.

dates.

* A dialog will be added in feature #59731 to ask user confirmation.


##### **Migration from an earlier version**

* Dates will **NOT** change automatically. All existing dates are preserved.

* Manually scheduled work packages remain so.

* 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 in automatic mode (as is the case now) and the children follow the rules above.

* If the successor has no dates

* The successor is switched to automatic mode and continues to have no dates, regardless of having predecessor with dates or not.

* The successor 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

* If the successor has dates and some predecessors have dates too

* The successor is switched to automatic mode

* A lag is set on the closest relation to preserve dates

* The closest relation is the one with the least distance between all predecessors and the successor, and with 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?

<br>


##### **Date picker**

* The date picker will be Primerised.

* There is a new segmented control with label &quot;Scheduling mode&quot;

* There is a help icon next to the label. On hover, it displays a tooltip with this text: &quot;‘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.&quot;

* Options: &quot;Manual&quot; and &quot;Automatic&quot;

* The &quot;Working days only&quot; 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&#39;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&#39;s moved to the past

* In **Automatic** mode:

* The _Start date_ and _Finish date_ fields are read-only

* The &quot;Today&quot; links under the date fields are disabled (but not removed so that elements in the date picker don&#39;t move when changing modes)

* Duration remains editable (unless it&#39;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 &quot;parent&quot; 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>

Back

Loading...