# Feature OP-6929 - Adhere to scheduling mode when scheduling

Project: OpenProject
Status: closed
URL: https://community.openproject.org/work_packages/OP-6929

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | Medium |
| Target versions | 11.0.0 |
| Sprint | 11.0.0 |
| Backlog bucket |  |
| Votes |  |
| List |  |
| Roadmap |  |
| Relevance |  |

## OPEN POINTS / FEEDBACK

_No work packages_

## Features and Chunks

_No work packages_

## Bugs and other work packages

_No work packages_

## Technical Details

| Attribute | Value |
| --- | --- |
| Module |  |
| Feature Flag |  |
| Requires doc change | No |
| Enterprise plan |  |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |
| Found in mobile app version |  |
| Follow-up feedback e-mail |  |
| Accessibility | No |

## People

| Attribute | Value |
| --- | --- |
| Assignee |  |
| Accountable |  |
| Product manager |  |
| Developers |  |
| Designer |  |
| Ordered by |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| PD (min) |  |
| PD (max) |  |
| Work |  |
| Labor costs |  |

## Description

### Acceptance criteria

*   Whenever a work package scheduling is triggered (creation, update by children, follows/precedes, ...)
    *   work packages that are manually scheduled are not updated
    *   work packages that are connected to a scheduled sub tree only via manually scheduled work packages are not updated, e.g. 
        *   A precedes B (manually scheduled) precedes C (automatically scheduled) -&gt; If A is updated, B and C are not affected
        *   A is child of B (manually scheduled) is child of C (automatically scheduled) -&gt; If A is updated, B and C are not affected
        *   A is child of B (manually scheduled) precedes C (automatically scheduled) -&gt; If A is updated, B and C are not affected

### Implementation notes

*   Currently, whole subtrees are fetched from the database via typed\_dag. Doing this is efficient but disregards the attributes of the transient work packages. Upon fetching a subtree, whenever a work package with manual scheduling is returned, all transitively connected work packages must be disregarded.
*   If possible, improve the performance of fetching the work packages
    *   Check using CTEs
    *   Check fetching fewer attributes
