Content
View differences
Updated by Christophe Bliard over 3 years ago
**As** an OpenProject user
**I want to** make sure that changing start/finish dates of a preceding preceeding work package won't change the start/finish dates of following work packages _only_ if the changes violate the relationship
**so that** dates of following work packages are not automatically changed when I don't expect them to
### Current behaviour
Today, when **adding** a follows/precedes relationship, assuming A is preceding preceeding and B is following:
When B has no dates:
* If A only has a finish start date and B has no dates, **B will derive its start date from the finish start date of B A (n+1 day)**
* This is true regardless of A having a start date or not
* If A only has a start finish date and B has no dates, **B will derive its start date from the start finish date of A B (n+1 day)**
* This is also true if A has both start and finish dates
When A has no dates but B has start/finish dates:
* If A has no dates but B has a start date _or_ finish date _or_ both, A will not derive any dates (empty start/finish).
When both A and B both have dates:
* If the start _and_ _or_ finish date of B are is later than the start _and_ _or_ finish date of A, the dates of both work packages will be conserved.
* If the start _or_ finish date of B is earlier later than the start _or_ finish date of A, **B will derive its start date based on the soonest start finish date of A (finish date of A + 1, A, or start date of A + 1 if finish date is does not set)**. exist**.
Until here, things make sense. However, the problematic behaviour is this:
When A has dates (start, finish or both):
* When B only has a finish date (anytime in the future), when simply _moving A_, **B will derive its start date based on the finish date of A, or start date if finish date does not exist**.
* When B has no dates at all, simple _moving A_, **B will derive its start date based on the finish date of A, or start date if finish date does not exist**.
Here's a screencap of this behaviour:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/38584/content">
### **Acceptance criteria**
To make this behaviour more consistent, and in line with <mention class="mention" data-id="44053" data-type="work_package" data-text="#44053">#44053</mention> (where moving a following/preceding will conserve dates and not moving related work packages around unless that relationship is violated):
* When A has dates (start, finish or both) and B either does not have dates:
* Moving A has no effect on the dates of B
* When A has dates (start, finish or both) and B has a finish date:
* Moving A will only mean a start date will be derived for B if it is moved _after_ this finish date (thereby preventing a violation of violating the follows relationship)
*
**I want to** make sure that changing start/finish dates of a preceding
**so that** dates of following work packages are not automatically changed when I don't expect them to
### Current behaviour
Today, when **adding** a follows/precedes relationship, assuming A is preceding
When B has no dates:
* If A
* This is true regardless of A having a start date or not
* If A only has a start
* This is also true if A has both start and finish dates
When A has no dates but B has start/finish dates:
* If A has no dates but B has a start date _or_ finish date _or_ both, A will not derive any dates (empty start/finish).
When both A and B both have dates:
* If the start _and_
* If the start _or_ finish date of B is earlier
Until here, things make sense. However, the problematic behaviour is this:
When A has dates (start, finish or both):
* When B only has a finish date (anytime in the future), when simply _moving A_, **B will derive its start date based on the finish date of A, or start date if finish date does not exist**.
* When B has no dates at all, simple _moving A_, **B will derive its start date based on the finish date of A, or start date if finish date does not exist**.
Here's a screencap of this behaviour:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/38584/content">
### **Acceptance criteria**
To make this behaviour more consistent, and in line with <mention class="mention" data-id="44053" data-type="work_package" data-text="#44053">#44053</mention> (where moving a following/preceding will conserve dates and not moving related work packages around unless that relationship is violated):
* When A has dates (start, finish or both) and B either does not have dates:
* Moving A has no effect on the dates of B
* When A has dates (start, finish or both) and B has a finish date:
* Moving A will only mean a start date will be derived for B if it is moved _after_ this finish date (thereby preventing a violation of
*