Content
View differences
Updated by Parimal Satyal over 1 year ago
**As a** project manager
**I want to** enter lag to follow/precedes relations
**so that** this is included in the scheduling of work packages.
#### **Note**
Since we are changing the relations tab to include lag, we are also Primerising it without adding any additional functionality apart from the ability to add and edit lag.
#### **Acceptance criteria (high-level)**
* The lag is shown in the relations tab for predecessor/sucessor follow-precedess relations.
* The default is 0 days (unset).
* Users with the permissions "Manage work package relations" can edit the lag.
* ~~The lag can also be negative.~~
* The lag only considers working days in (for the current scope. scope).
##### Blank state
If a work package has no relations, a Blankslate is displayed:
* Title: No relations
* Caption: Add relations to other work packages to create a link between them.
* Action (primary): Add relation (dropdown)
##### Viewing relations
When relations exist,
* The top of the tab has a caption with a "+ Add relation" button (secondary)
* This is only visible to users with the permission to create work packages.
* Each type of existing relation is contained in a box section
* The title is the relation type followed by a badge of the number of relations (eg. "Related to (2)"
* Each relation includes:
* Work package info line (type, ID, status) Type
* #ID
* Status
* See ##58734 for existing implementation This will use the same Label component as in ##58512
* Work package name
* Description (optional, if it exists)
* More icon (...) with two options: Edit and Delete (danger)
* Children have no Edit option, just Delete.
* Predecessor/Successor relations include:
* The words "(before)" for Predecssors and "(after)" for Successors after the section titles for additional clarity
* Start and end date of the related work package (if it exists)
* Indication of manual scheduling (pin icon) if (if that's the case case)
* Lag (if it exists), expressed simply as "(Lag: 3 days)" after the date
* If a relation contains multiple relation types, each type is contained in its own box
* Apart from the relation types, children are also displayed in an individual box section, at the end.
**Adding relations**
* The "+ Add relation" allows the user to add a new relation
* Click on the button will trigger a flat Action menu to select relation types. Each relation has a title and a short caption that describes the relation type:
* **Related to**
Creates a visible link between the two work packages with no additional effect
* **Predecessor (before)**
The related work package necessarily needs to finish before this one can start
* **Successor (after)**
The related work package necessarily needs to start after this one finishes
* **Child**
Makes the related a work package a sub-item of the current (parent) work package
* **Duplicates**
This is a copy of the related work package.
* **Duplicated by**
The related work package is a copy of this.
* **Blocks**
The related work package cannot be closed until this one is closed first
* **Blocked by**
This work package cannot be closed until the related one is closed first
* **Includes**
Marks the related work package as including this one with no additional effect
* **Part of**
Marks the related work package as being part of this one with no additional effect
* **Requires**
Marks the related work package as a requirement to this one
* **Required by**
Marks this work package as being a requirement to the related one
* Selecting a relation type will display a dialog:
* Title: "Add {relation type}"
* Body:
* Work package search input
* Description: input field Action (secondary): "+ Add description"
* One-line This adds a new text input line titled "Description"
* Lag: input field (only for Predecessor and Successor relations) Action (secondary): "+ Add lag"
* Default: This adds a new text input line titled "Lag"
* Defaut: "0 days"
* Caption: "The gap in number of working days in between the two work packages"
* Validation: The field has to be an integer (whole numbers: negative, 0 or positive)
* Selecting "Child" will display a dialog:
* Title: "Add child"
* Body:
* Work package search input
**Editing relations**
* Relations can also be edited
* The More (⋯) action on relations displays a drop-down with two options:
* Edit relation
* Delete relation
* The "Edit relation" modal displays the Edit modal
* This is a variation of the add relation modal
* The work package field is inactive (it is not possible to modify this)
* Lag The user can add or edit lag (if available) and description can be modified
* Child relations only have the "Delete" relation option; they cannot be edited (because they can have neither lag nor description)
**Empty state**
##### Blank state
* If a work package has no relations, a Blankslate is displayed:
relations:
* Title: No relations
The top of the tab will still have a caption with a "+ Add relation" button (secondary)
* Caption: This will be followed with a Blankslate informing the user that the work package does not yet have any relations yet.
relations.
#### **Visuals and Figma mockups**
The UX/UI is a work in progress. For the most up-to-date mockups, please refer to the Figma document:
workPackageValue:"Figma wireframes"
<br> **Blank state:**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:446px;" src="/api/v3/attachments/210175/content">
**Add relations drop-down:**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:433px;" src="/api/v3/attachments/234378/content">
<br>
**Add successor dialog** dialog** ("+ Add lag" has already been clicked to show the Lag input):
<img class="image_resized op-uc-image op-uc-image_inline" style="width:515px;" src="/api/v3/attachments/238431/content"> style="width:524px;" src="/attachments/188273/Add_relation_-_Successor__with_lag_.png">
**Multiple relations visible:**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:450px;" src="/api/v3/attachments/234377/content">
**Edit relation modal:**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:508px;" src="/api/v3/attachments/238432/content"> style="width:485px;" src="/api/v3/attachments/236682/content">
#### **Anticipated UX issues**
* A user, especially one who is not familiar with the concept of lag, might not understand the concept.
* We've added a caption We might have to explain what it is in the create/edit relations modal.
this better.
* In a Gantt view, when a user moves a work package into the future, certain other work packages might be pushed. Based on the lag set for those relations, some might move by keeping a certain distance (3 days in between), some might move with no distance (the next day) and some might move with negative distance (-2 days). How should the user understand this inconsistent behaviour, especially if she cannot see that lag has been set inside the work packages?
* How can we make lag more visible in the Gantt view itself? It would have to be in the lines connected the work packages, but we know that there are technical limitations to how much we can do here.
#### Reference
**MS Project:**
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/95368/content"></div><figcaption class="op-uc-figure--description">Example (MS Project):</figcaption></figure>
#### Out of scope
* Making lag visible in the Gantt chart
* Negative lag: ##58011
* Displaying ghost relations, described separately: ##58427
* The option to include non-working days in lag (option to select/deselect "Working days" next to Lag in the relation edit modal)
* Scheduling modes, which will worked on after this feature: ##42388
* ###42388
**I want to** enter lag to follow/precedes relations
**so that** this is included in the scheduling of work packages.
#### **Note**
Since we are changing the relations tab to include lag, we are also Primerising it without adding any additional functionality apart from the ability to add and edit lag.
#### **Acceptance criteria (high-level)**
* The lag is shown in the relations tab for predecessor/sucessor
* The default is 0 days (unset).
* Users with the permissions "Manage work package relations" can edit the lag.
*
*
#####
If a work package has no relations, a Blankslate is displayed:
* Title: No relations
* Caption: Add relations to other work packages to create a link between them.
* Action (primary): Add relation (dropdown)
#####
When relations exist,
* The top of the tab has a caption with a "+ Add relation" button (secondary)
* This is only visible to users with the permission to create work packages.
* Each type of existing relation is contained in a box section
* The title is the relation type followed by a badge of the number of relations (eg. "Related to (2)"
* Each relation includes:
* Work package info line (type, ID, status)
* #ID
* Status
* See ##58734 for existing implementation
* Work package name
* Description (optional, if it exists)
* More icon (...) with two options: Edit and Delete (danger)
* Children have no Edit option, just Delete.
* Predecessor/Successor relations include:
* The words "(before)" for Predecssors and "(after)" for Successors after the section titles for additional clarity
* Start and end date of the related work package (if it exists)
* Indication of manual scheduling (pin icon) if
* Lag (if it exists), expressed simply as "(Lag: 3 days)" after the date
* If a relation contains multiple relation types, each type is contained in its own box
* Apart from the relation types, children are also displayed in an individual box section, at the end.
**Adding relations**
* The "+ Add relation" allows the user to add a new relation
* Click on the button will trigger a flat Action menu to select relation types. Each relation has a title and a short caption that describes the relation type:
* **Related to**
Creates a visible link between the two work packages with no additional effect
* **Predecessor (before)**
The related work package necessarily needs to finish before this one can start
* **Successor (after)**
The related work package necessarily needs to start after this one finishes
* **Child**
Makes the related a work package a sub-item of the current (parent) work package
* **Duplicates**
This is a copy of the related work package.
* **Duplicated by**
The related work package is a copy of this.
* **Blocks**
The related work package cannot be closed until this one is closed first
* **Blocked by**
This work package cannot be closed until the related one is closed first
* **Includes**
Marks the related work package as including this one with no additional effect
* **Part of**
Marks the related work package as being part of this one with no additional effect
* **Requires**
Marks the related work package as a requirement to this one
* **Required by**
Marks this work package as being a requirement to the related one
* Selecting a relation type will display a dialog:
* Title: "Add {relation type}"
* Body:
* Work package search input
* Description: input field
* One-line
* Lag: input field (only for Predecessor and Successor relations)
* Default:
* Defaut:
* Caption: "The gap in number of working days in between the two work packages"
* Validation: The field has to be an integer (whole numbers: negative, 0 or positive)
* Selecting "Child" will display a dialog:
* Title: "Add child"
* Body:
* Work package search input
* Relations can also be edited
* The More (⋯) action on relations displays a drop-down with two options:
* Edit relation
* Delete relation
* The "Edit relation" modal displays the Edit modal
* This is a variation of the add relation modal
* The work package field is inactive (it is not possible to modify this)
* Lag
* Child relations only have the "Delete" relation option; they cannot be edited (because they can have neither lag nor description)
**Empty state**
##### Blank state
The UX/UI is a work in progress. For the most up-to-date mockups, please refer to the Figma document:
workPackageValue:"Figma wireframes"
<br>
<img class="image_resized op-uc-image op-uc-image_inline" style="width:433px;" src="/api/v3/attachments/234378/content">
<br>
**Add successor dialog**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:515px;" src="/api/v3/attachments/238431/content">
**Multiple relations visible:**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:450px;" src="/api/v3/attachments/234377/content">
**Edit relation modal:**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:508px;" src="/api/v3/attachments/238432/content">
#### **Anticipated UX issues**
* A user, especially one who is not familiar with the concept of lag, might not understand the concept.
* We've added a caption
* How can we make lag more visible in the Gantt view itself? It would have to be in the lines connected the work packages, but we know that there are technical limitations to how much we can do here.
#### Reference
**MS Project:**
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/95368/content"></div><figcaption class="op-uc-figure--description">Example (MS Project):</figcaption></figure>
#### Out of scope
* Making lag visible in the Gantt chart
* Negative lag: ##58011
* Displaying ghost relations, described separately: ##58427
* The option to include non-working days in lag (option to select/deselect "Working days" next to Lag in the relation edit modal)
* Scheduling modes, which will worked on after this feature: ##42388
* ###42388