Content
View differences
Updated by Parimal Satyal almost 4 years ago
**As** an OpenProject user
**I want** to calculate the work package start and end dates based on the duration
**so** that I only have to set the duration.
# **Acceptance criteria:**
The duration feature affects a range of views and modules:
### Work package attributes and date picker
* In the date picker modal there is a text field `duration`.
* When the user enters a duration and at least one of the dates is set, the other is derived:
* The contrary is also true: when a user enters dates, the duration is derived.
* The duration represents the amount of days between the start and the finish date (inclusive):
* Monday to Tuesday: 2 days
* Monday to Monday (same day): 1 day
* Duration is always in full days (never floating point values).
* Once configuring non-working days is implemented (<mention class="mention" data-id="18416" data-type="work_package" data-text="#18416">#18416</mention>), these non-working days are _skipped_ _over_ and do not count towards the total duration:
* Friday to Monday: 2 days _(Saturday and Sunday are skipped over)_
* The user is able to override configured non-working days per work package by choosing to include them via the date-picker (more details on [this feature describing the datepicker](https://community.openproject.org/work_packages/41341): <mention class="mention" data-id="41341" data-type="work_package" data-text="#41341">#41341</mention>).
* When an administrator changes non-working days via instance admin settings (adds or removes a working day), this will affect dates of scheduled work packages. If non-working days are added or removed for the instance by an admin, the _duration_ is preserved, which might mean the start and finish dates might change:
* The user is warned that changing which days are considered working days (eg. adding/removing Friday as a non-working day) will affect the dates of all work packages of all project in the the instance, and that there is no preview of what these changes will be.
* This warning is specified in the feature concerning the new "Working days" admin settings page (<mention class="mention" data-id="42316" data-type="work_package" data-text="#42316">#42316</mention>).
* If a work package included a date that is now a non-working day, the finish date moves to the corresponding number of now-excluded days to maintain duration.
* If a work package was scheduled to start on a date it is now a non-working day, the start date moves to the earliest working day in the future (and the finish date changes by consequence).
* Even if a work package does not span or included a day that is now a non-working day, it might nevertheless be affected because of relations.
* Eg. A preceeding work package has pushed its dates forwards or backwards such that it now spans a non-working day. In this case, the work package will be pushed/pulled as it does today, and the work package will be rescheduled as any other work package (it adapt it start and finish dates to maintain duration).
* The journal will be displayed to the user for _affected_ work packages only, attributed to the author (admin who make the change), like so:
* For changes to the work week:
* _**Working days** changed (Friday is now non-working) by Jean-Cérien._
* _**Start date** changed from {old date} to {new date}._
* _**Finish date** changed from {old date} to {new date}._
* <mention class="mention" data-id="87" data-type="user" data-text="@Jens Ulferts">@Jens Ulferts</mention>: Does this phrase work for change in working days? To what kind of information do we have access?
* ~~For changes to individual non-working days: "Jean Cérien has configured 2022-10-10 as a non-working day. Duration changed from 2 to 3 days."~~ (descoped)
* ~~The only exception is if a start/end date of a work package falls on a date that is now configured to be a non-working day; in this case, the duration is unchanged and the "Include non-working days" option is checked to allow the the duration to be preserved.~~
* In all cases, the duration is consistent with the start and the finish date. Updating dates will update duration, and updating duration will update dates.
* It will not possible, for example, to specify a duration of 8 days for a task that starts and finishes the same week.
* For a work package that has a start date, a finish date and thus also a duration, removing one of the dates (start or finish) will also remove the duration
* Of course, clicking on a second date (or manually adding a second date) will add a new duration and the duration will be changed and all three fields will now be complete.
* This also means that it is not possible to conserve duration when deleting dates, since deleting one date will also delete duration. To remove start and finish dates from a work package that already has these fields but keep the duration, the duration will then have to be re-entered after removing the dates.
* It is not possible to remove duration from a field that has start and end dates. (For example, if the user clears the text field manually, the value will automatically be re-entered on blur based on start and finish dates).
* The duration and the position of the start and finish dates can not be configured via the form configuration. They are always present at the same place within the work package show page and form.
* This will be later updated with <mention class="mention" data-id="40539" data-type="work_package" data-text="#40539">#40539</mention>.
* New work packages have an empty (not set) default duration.
* Certain date/duration information is derived (third value when two fields are filled).
* Setting start _and_ end dates automatically sets duration.
* Setting only one of the dates does not automatically set duration (unable to derive).
* Setting only one of the dates plus the duration sets the other date (derived).
* It is possible to have _no attributes_, _only one attribute_ or all three. It is not possible to have just two (since the third will be derived from the other two).
* Concretely, these are **possible**:
* No start date, no finish date; no duration -- is possible.
* No start date; no finish dates; duration set -- is possible
* Start date specified; no finish date; no duration -- is possible.
* No start date; finish date specified; no duration -- is possible
* But these are **not possible**:
* Start date specified; no finish date; duration specified -- is _not possible_. (End date is derived)
* No start date; finish date specified; duration specified -- is _not possible_. (Start date is derived)
* Start date specified; no finish date; duration specified -- is _not possible_. (End date is derived)
* No start date; finish date specified; duration specified -- is _not possible_. (Start date is derived).
### Single-date work packages (milestones)
* Milestone-typed work packages don't have a duration field (see <mention class="mention" data-id="41341" data-type="work_package" data-text="#41341">#41341</mention> for details).
* In 12.2 and 12.3, they will internally have a value of 1 day and behave as it does today.
* This means that when a milestone has a follows/precedes relation with a work package, there will still be a minimum gap of a day between them.
* GANTT chart: a milestone is still displayed as a diamond.
* Team planner: a milestone spans 1 day.
* Uses the "simple" date picker, with just one date field and no duration.
* Concerning following/preceeding relations:
* If a "following" or "preceding" relationship is added to a work package without dates or duration, this will not automatically give it a duration.
* When adding a relationship leads to a derivation of a date (start or finish), the duration is still not set (empty), since only one date is available.
### Manual scheduling and non-working days
* Scheduling modes (manual/automatic scheduling) are independent of non-working days (and thus constrained by it)
* A work package that is manually scheduled does not automatically also include non-working days; in other words, a manually scheduled work package ignores relations (parent/child, following/preceeding) but nevertheless skips weekends.
* **Eg.** A manually scheduled work package that starts on Thursday, Feb 11, 20211 and has a duration of 4 days still ends on Tuesday, Feb 16, 2011.
* Dragging a manually-scheduled work package (that does not already have the option to including non-working days enabled) into a non-working day in the GANTT or the team planner does is not possible.
* The same goes for dragging the edges into a non-working day; this is also not possible unless the option to include non-working days is already enabled.
* Should the user want a manually scheduled work package to start on a Saturday (for example), they can do so by enabline the option to include non-working days for that work package and selecting the desired date (that is normally non-working).
### Duration and work package relations
* If children only have duration (no dates), then the parent cannot have start/end dates, nor duration.
* The duration of a parent is _à minima_ a sum of the duration of the children, but this cannot be inferred, since there can be a gap between children. Therefore, duration will be left plank.
* For parent work packages, "Include weekends" is automatically enabled if _any_ of the children have this enabled.
* This is notably important when children with the earliest start date and the latest finish date (that define the start and finish date for the parent) have this option enabled. But the rule is general; even a "middle" child that does not normally affect the start and finish date that is set to "include weekends" will apply this setting to the parent.
* If a "following" or "preceding" relationship is added to a work package without dates or duration, this will not automatically give it a duration.
* When adding a relationship leads to a derivation of one date (start or finish), the duration is still not set (empty), since only one date is available.
* Current behaviour is maintained for date changes to a work package as a result of the date change of a preceeding/following work package. Some precisions:
* If a date change is a result of enabling "include weekend" on a preceeding work package, the start date of the following work package can move backwards in time (earlier). Its duration and delay are conserved, as it is today.
* If a date change is a result of disabling "include weekend" on a preceeding work package, the start date of the following work package can move forwards in time (later). Its duration and delay are conserved, as it is today.
* The same rules apply to a preceeding work package when a date change is required by the modification of a following work package.
### Work package table view
* In the work packages list there is a column "duration". When clicking on this, the date modal with the date picker is opened, with the focus on the duration field.
* Ideally the value is displayed with the value followed by the unit as a full word "days" (and "jours", "Tage" and so forth) handling pluralisation correctly. If we don't already have a system in place to do that, we can fall back on "d" (and "j", and "t" and so forth)
* Filtering by duration is possible.
* Sorting by duration is possible.
### GANTT chart
* For work packages without start/finish dates but _with_ duration, the width of a "strip" representing such a work package on hover on a GANTT view has a width that is relative to its total duration (on drag over GANTT).
* "Relative" because width depends on the zoom level of the GANTT chart.
* On click, end date is calculated based on the the start date selected.
* If the duration is very long one (finish date is outside of current view), the user will first have to click to commit, and then zoom out or scroll to view the finish date.
* If the user modifies a work package via the drag handles on the left/right edges of the strips the in Gantt chart, both the start/finish date as well as the duration are altered in lockstep, based on which side is dragged.
* If non-working are included for that work package (via the date-picker), they will need to be taken into account in the GANTT too (for example, the work package should span the weekend if the weekend is included).
* For how work packages in GANTT view are affected by non-working days, refer to <mention class="mention" data-id="43637" data-type="work_package" data-text="#43637">#43637</mention>
### Team planner
* For work packages without start/finish dates but _with_ duration:
* they are not visible on the Team planner calendar until a date is specified (they can of course be accessed using the "Add Existing" function)
* the width of a card that is dragged onto the team planner (from the left-hand "Add Existing" panel, for example) is relative to the total duration of that work package (within the limits of the viewport, of course).
* Once dragged, the start date is set and therefore the finish date is also derived.
* If the user modifies a work package via the drag handles on the left/right edges of the cards on the Team planner, both the start/finish date as well as the duration are altered in lockstep.
* For how work packages in the team planner are affected by non-working days, refer to <mention class="mention" data-id="43638" data-type="work_package" data-text="#43638">#43638</mention>.
### Activity log # Open questions answered
* Visuals for the rework and repositioning of the dates & duration fields in a work package are handled separately (<mention class="mention" data-id="40539" data-type="work_package" data-text="#40539">#40539</mention>)
* Inheritance of the duration between a work package and its children:
* As is the case today, the parent's start and end dates dates (and thus also duration) are derived from the children.
* It is nevertheless possible to enable manual scheduling, in which case the user has full agency to change the dates as they please (on working days, or any day if non-working days are included); however, the dates of children will no longer affect the parent, and will no longer be constrainted by them.
* If children only have duration, then the parent cannot have start/end dates, nor duration.
* The duration of a parent is _à minima_ a sum of the duration of the children, but this cannot be inferred, since there can be a gap between children. Therefore, this information will be left blank,
* How will the duration be reflected in the activity, assuming that duration should be part of the activity? (<mention class="mention" data-id="42924" data-type="work_package" data-text="#42924">#42924</mention> )
* If dates are changed (which affects duration), or duration is changed (which affects dates), then that will considered both a date and duration change:
* **"Finish **Finish date** changed from {date} to {date}"
{date}.
* **"Duration** **Duration** changed to {n} days"
days.
* For work packages with only duration, then the duration will be an independent journal entry:
* **"Duration** **Duration** changed to {n} days" days.
### Change # Still open questions
**Duration/NWD in set of working days (instance admin) parents**
* When an administrator changes non-working days via instance admin settings (adds or removes There's a working day), this will affect dates particular challenge in determining the duration (and sometimes, start/finish dates) of scheduled parent work packages. If packages when some children include non-working days are added or removed for the instance by an admin, the _duration_ is preserved, which might mean the start and finish dates might change: some don't. Take this case:
* A parent has two children:
* The user is warned that changing which days are considered working days (eg. adding/removing Friday as a non-working day) will affect the dates of all work packages of all project in the the instance, and that there is no preview of what these changes will be.
Task 1: Thursday 4 – Tuesday 9 (4 days, NWD not included)
* This warning is specified in the feature concerning the new "Working days" admin settings page (<mention class="mention" data-id="42316" data-type="work_package" data-text="#42316">#42316</mention>). Task 2: Wednesday 10 – Saturday 13 (4 days, NWD included)
Questions:
* Does this parent cover:
* Thursday 4 – Friday 12 (NWD not included, duration: 7) or
* Thursday 4 – Saturday 13 (NWD included, duration: 10 days)?
* If a work package included a date the former, this would mean that is now a non-working day, children with NWDs are an exception and that they don't affect the finish date moves to the corresponding number of now-excluded days to maintain duration. parents.
* If a work package was scheduled to start In this case, should we display the this difference on a the GANTT view (the finsh date it is now a non-working day, of Task 2 that ends beyond the start finish date moves to of the earliest working day parent) in the future (and the finish date changes same way we show descrepencies caused by consequence).
* Even if a work package does not span or included a day manual scheduling? (Lines that is now a non-working day, it might nevertheless be affected because of relations.
can extend from the actual WP block).
* Eg. A preceeding work package has pushed its dates forwards or backwards such If the second, this means that it now spans a non-working day. In this case, any children including non-workging days will automatically mean the work package parents will be pushed/pulled as it does today, and include non-working days (whilst still taking the work package will be rescheduled as any other work package (it adapt it start and finish dates to maintain duration).
* The journal date of the earlier and latest child, the duration will then be displayed affected to the user for _affected_ work packages only, attributed to the author (admin who make the change), like so:
count all non-working days in between):
* For changes to the work week:
* "_**Working days** changed (Friday is now non-working) by Jean-Cérien_"
* "_**Start date** changed from {old date} to {new date}_"
* "_**Finish date** changed from {old date} to {new date}_"
* <mention class="mention" data-id="87" data-type="user" data-text="@Jens Ulferts">@Jens Ulferts</mention>: Does this phrase work for change in working days? To what kind of information do we This would have access?
* ~~For changes to individual non-working days: "Jean Cérien has configured 2022-10-10 as a non-working day. Duration changed from 2 to 3 days."~~ (descoped)
* ~~The only exception is be even if a start/end date of a work package falls on a date that the only child including non-working days is now configured to be a non-working day; in this case, between and does not normally affect the duration is unchanged start and the "Include non-working days" option is checked to allow the the duration to be preserved.~~ finish date of parents.
# Visuals
#### **The new date picker drop modal**
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/37929/content">
Additional visuals for the date picker are in the related work package describing the date picker <mention class="mention" data-id="41341" data-type="work_package" data-text="#41341">#41341</mention>.
#### Duration column in a work package table view
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/36703/content">
#### The date picker drop modal in the work package table view (duration)
Note that the "duration" field is focused when opening the drop modal by clicking on a duration value.
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/37930/content">
#### The duration column can also be used to adjust the GANTT chart
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/36705/content">
# Seed Data
**Static queries in section "Default data":**
* Gantt chart: Add duration column after column finish date:
**Queries in section favorite views**
* Project plan (Query ID 1): Add duration column after column finish date
* Project plan (Query ID 14): Add duration column after column finish date
# Full screen view
* Currently the status selection is below the subject at the same position for all work package types.
* We also move the dates and the curation to this area (visuals tbd).
* For milestones there is no duration by definition.
# Out-of-Scope
* Consider weekends and holidays (for this ticket, will normally already have been dealt with by <mention class="mention" data-id="18416" data-type="work_package" data-text="#18416">#18416</mention>)
* Summing duration _(need clarification)_
* Grouping by durations _(need clarification)_
**I want** to calculate the work package start and end dates based on the duration
**so** that I only have to set the duration.
# **Acceptance criteria:**
The duration feature affects a range of views and modules:
### Work package attributes and date picker
* In the date picker modal there is a text field `duration`.
* When the user enters a duration and at least one of the dates is set, the other is derived:
* The contrary is also true: when a user enters dates, the duration is derived.
* The duration represents the amount of days between the start and the finish date (inclusive):
* Monday to Tuesday: 2 days
* Monday to Monday (same day): 1 day
* Duration is always in full days (never floating point values).
* Once configuring non-working days is implemented (<mention class="mention" data-id="18416" data-type="work_package" data-text="#18416">#18416</mention>), these non-working days are _skipped_ _over_ and do not count towards the total duration:
* Friday to Monday: 2 days _(Saturday and Sunday are skipped over)_
* The user is able to override configured non-working days per work package by choosing to include them via the date-picker (more details on [this feature describing the datepicker](https://community.openproject.org/work_packages/41341): <mention class="mention" data-id="41341" data-type="work_package" data-text="#41341">#41341</mention>).
*
* The user is warned that changing which days are considered working days (eg. adding/removing Friday as a non-working day) will affect the dates of all work packages of all project in the the instance, and that there is no preview of what these changes will be.
* This warning is specified in the feature concerning the new "Working days" admin settings page (<mention class="mention" data-id="42316" data-type="work_package" data-text="#42316">#42316</mention>).
* If a work package included a date that is now a non-working day, the finish date moves to the corresponding number of now-excluded days to maintain duration.
* If a work package was scheduled to start on a date it is now a non-working day, the start date moves to the earliest working day in the future (and the finish date changes by consequence).
* Even if a work package does not span or included a day that is now a non-working day, it might nevertheless be affected because of relations.
* Eg. A preceeding work package has pushed its dates forwards or backwards such that it now spans a non-working day.
* The journal will be displayed to the user for _affected_ work packages only, attributed to the author (admin who make the change), like so:
* For changes to the work week:
* _**Working days** changed (Friday is now non-working) by Jean-Cérien._
* _**Start date** changed from {old date} to {new date}._
* _**Finish date** changed from {old date} to {new date}._
* <mention class="mention" data-id="87" data-type="user" data-text="@Jens Ulferts">@Jens Ulferts</mention>: Does this phrase work for change in working days? To what kind of information do we have access?
* ~~For changes to individual non-working days: "Jean Cérien has configured 2022-10-10 as a non-working day. Duration changed from 2 to 3 days."~~ (descoped)
* ~~The only exception is if a start/end date of a work package falls on a date that is now configured to be a non-working day; in this case, the duration is unchanged and the "Include non-working days" option is checked to allow the the duration to be preserved.~~
* In
* It will not possible, for example, to specify a duration of 8 days for a task that starts and finishes the same week.
* For a work package that has a start date, a finish date and thus also a duration, removing one of the dates (start or finish) will also remove the duration
* Of course, clicking on a second date (or manually adding a second date) will add a new duration and the duration will be changed and all three fields will now be complete.
* This also means that it is not possible to conserve duration when deleting dates, since deleting one date will also delete duration. To remove start and finish dates from a work package that already has these fields but keep the duration, the duration will then have to be re-entered after removing the dates.
* It is not possible to remove duration from a field that has start and end dates. (For example, if the user clears the text field manually, the value will automatically be re-entered on blur based on start and finish dates).
* The duration and the position of the start and finish dates can not be configured via the form configuration. They are always present at the same place within the work package show page and form.
* This will be later updated with <mention class="mention" data-id="40539" data-type="work_package" data-text="#40539">#40539</mention>.
* New work packages have an empty (not set) default duration.
* Certain date/duration information is derived (third value when two fields are filled).
* Setting start _and_ end dates automatically sets duration.
* Setting only one of the dates does not automatically set duration (unable to derive).
* Setting only one of the dates plus the duration sets the other date (derived).
* It is possible to have _no attributes_, _only one attribute_ or all three. It is not possible to have just two (since the third will be derived from the other two).
* Concretely, these are **possible**:
* No start date, no finish date; no duration -- is possible.
* No start date; no finish dates; duration set -- is possible
* Start date specified; no finish date; no duration -- is possible.
* No start date; finish date specified; no duration -- is possible
* But these are **not possible**:
* Start date specified; no finish date; duration specified -- is _not possible_. (End date is derived)
* No start date; finish date specified; duration specified -- is _not possible_. (Start date is derived)
* Start date specified; no finish date; duration specified -- is _not possible_. (End date is derived)
* No start date; finish date specified; duration specified -- is _not possible_. (Start date is derived).
### Single-date work packages (milestones)
* In 12.2 and 12.3, they will internally have a value of 1 day and behave as it does today.
* This means that when a milestone has a follows/precedes relation with a work package, there will still be a minimum gap of a day between them.
* GANTT chart: a milestone is still displayed as a diamond.
* Team planner: a milestone spans 1 day.
* Uses the "simple" date picker, with just one date field and no duration.
* Concerning following/preceeding relations:
* If a "following" or "preceding" relationship is added to a work package without dates or duration, this will not automatically give it a duration.
* When adding a relationship leads to a derivation of a date (start or finish), the duration is still not set (empty), since only one date is available.
### Manual scheduling and non-working days
* Scheduling modes (manual/automatic scheduling) are independent of non-working days (and thus constrained by it)
* A work package that is manually scheduled does not automatically also include non-working days; in other words, a manually scheduled work package ignores relations (parent/child, following/preceeding) but nevertheless skips weekends.
* **Eg.** A manually scheduled work package that starts on Thursday, Feb 11, 20211 and has a duration of 4 days still ends on Tuesday, Feb 16, 2011.
* Dragging a manually-scheduled work package (that does not already have the option to including non-working days enabled) into a non-working day in the GANTT or the team planner does is not possible.
* The same goes for dragging the edges into a non-working day; this is also not possible unless the option to include non-working days is already enabled.
* Should the user want a manually scheduled work package to start on a Saturday (for example), they can do so by enabline the option to include non-working days for that work package and selecting the desired date (that is normally non-working).
### Duration and work package relations
* If children only have duration (no dates), then the parent cannot have start/end dates, nor duration.
* The duration of a parent is _à minima_ a sum of the duration of the children, but this cannot be inferred, since there can be a gap between children. Therefore, duration will be left plank.
* For parent work packages, "Include weekends" is automatically enabled if _any_ of the children have this enabled.
* This is notably important when children with the earliest start date and the latest finish date (that define the start and finish date for the parent) have this option enabled. But the rule is general; even a "middle" child that does not normally affect the start and finish date that is set to "include weekends" will apply this setting to the parent.
* If a "following" or "preceding" relationship is added to a work package without dates or duration, this will not automatically give it a duration.
* When adding a relationship leads to a derivation of one date (start or finish), the duration is still not set (empty), since only one date is available.
* Current behaviour is maintained for date changes to a work package as a result of the date change of a preceeding/following work package. Some precisions:
* If a date change is a result of enabling "include weekend" on a preceeding work package, the start date of the following work package can move backwards in time (earlier). Its duration and delay are conserved, as it is today.
* If a date change is a result of disabling "include weekend" on a preceeding work package, the start date of the following work package can move forwards in time (later). Its duration and delay are conserved, as it is today.
* The same rules apply to a preceeding work package when a date change is required by the modification of a following work package.
### Work package table view
* In the work packages list there is a column "duration". When clicking on this, the date modal with the date picker is opened, with the focus on the duration field.
* Ideally the value is displayed with the value followed by the unit as a full word "days" (and "jours", "Tage" and so forth) handling pluralisation correctly. If we don't already have a system in place to do that, we can fall back on "d" (and "j", and "t" and so forth)
* Filtering by duration is possible.
* Sorting by duration is possible.
### GANTT chart
* For work packages without start/finish dates but _with_ duration, the width of a "strip" representing such a work package on hover on a GANTT view has a width that is relative to its total duration (on drag over GANTT).
* "Relative" because width depends on the zoom level of the GANTT chart.
* On click, end date is calculated based on the the start date selected.
* If the duration is very long one (finish date is outside of current view), the user will first have to click to commit, and then zoom out or scroll to view the finish date.
* If the user modifies a work package via the drag handles on the left/right edges of the strips the in Gantt chart, both the start/finish date as well as the duration are altered in lockstep, based on which side is dragged.
* If non-working are included for that work package (via the date-picker), they will need to be taken into account in the GANTT too (for example, the work package should span the weekend if the weekend is included).
* For how work packages in GANTT view are affected by non-working days, refer to <mention class="mention" data-id="43637" data-type="work_package" data-text="#43637">#43637</mention>
### Team planner
* For work packages without start/finish dates but _with_ duration:
* they are not visible on the Team planner calendar until a date is specified (they can of course be accessed using the "Add Existing" function)
* the width of a card that is dragged onto the team planner (from the left-hand "Add Existing" panel, for example) is relative to the total duration of that work package (within the limits of the viewport, of course).
* Once dragged, the start date is set and therefore the finish date is also derived.
* If the user modifies a work package via the drag handles on the left/right edges of the cards on the Team planner, both the start/finish date as well as the duration are altered in lockstep.
* For how work packages in the team planner are affected by non-working days, refer to <mention class="mention" data-id="43638" data-type="work_package" data-text="#43638">#43638</mention>.
### Activity log
*
* Inheritance of the duration between a work package and its children:
* As is the case today, the parent's start and end dates dates (and thus also duration) are derived from the children.
* It is nevertheless possible to enable manual scheduling, in which case the user has full agency to change the dates as they please (on working days, or any day if non-working days are included); however, the dates of children will no longer affect the parent, and will no longer be constrainted by them.
*
* The duration of a parent is _à minima_ a sum of the duration of the children, but this cannot be inferred, since there can be a gap between children. Therefore, this information will be left blank,
* How will the duration be reflected in the activity, assuming that duration should be part of the activity? (<mention class="mention" data-id="42924" data-type="work_package" data-text="#42924">#42924</mention> )
* If
### Change
**Duration/NWD
* When an administrator changes non-working days via instance admin settings (adds or removes
* A parent has two children:
* The user is warned that changing which days are considered working days (eg. adding/removing Friday as a non-working day) will affect the dates of all work packages of all project in the the instance, and that there is no preview of what these changes will be.
Questions:
* Does this parent cover:
*
* Thursday 4 – Saturday 13 (NWD included, duration: 10 days)?
*
* If a work package was scheduled to start
* Even if a work package does not span or included a day
* The journal
* "_**Working days** changed (Friday is now non-working) by Jean-Cérien_"
* "_**Start date** changed from {old date} to {new date}_"
* "_**Finish date** changed from {old date} to {new date}_"
* <mention class="mention" data-id="87" data-type="user" data-text="@Jens Ulferts">@Jens Ulferts</mention>: Does this phrase work for change in working days? To what kind of information do we
* ~~For changes to individual non-working days: "Jean Cérien has configured 2022-10-10 as a non-working day. Duration changed from 2 to 3 days."~~ (descoped)
* ~~The only exception is
# Visuals
#### **The new date picker drop modal**
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/37929/content">
Additional visuals for the date picker are in the related work package describing the date picker <mention class="mention" data-id="41341" data-type="work_package" data-text="#41341">#41341</mention>.
#### Duration column in a work package table view
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/36703/content">
#### The date picker drop modal in the work package table view (duration)
Note that the "duration" field is focused when opening the drop modal by clicking on a duration value.
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/37930/content">
#### The duration column can also be used to adjust the GANTT chart
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/36705/content">
# Seed Data
**Static queries in section "Default data":**
* Gantt chart: Add duration column after column finish date:
**Queries in section favorite views**
* Project plan (Query ID 1): Add duration column after column finish date
* Project plan (Query ID 14): Add duration column after column finish date
# Full screen view
* Currently the status selection is below the subject at the same position for all work package types.
* We also move the dates and the curation to this area (visuals tbd).
* For milestones there is no duration by definition.
# Out-of-Scope
* Consider weekends and holidays (for this ticket, will normally already have been dealt with by <mention class="mention" data-id="18416" data-type="work_package" data-text="#18416">#18416</mention>)
* Summing duration _(need clarification)_
* Grouping by durations _(need clarification)_