Content
View differences
Updated by Oliver Günther about 5 hours ago
This feature covers **global** sub-types, managed by instance administrators and available to every project. Project-owned sub-types, the project permission, in-project visibility isolation, and promotion to global are a separate, larger feature (to be creatd)
**As an** OpenProject administrator
**I want to** create and manage global sub-types under an existing work package type
**so that** I can offer instance-wide variations of a type that present as the parent but can behave differently.
## Acceptance criteria
* I can create a global sub-type under any root type. _(F0-C1, F0-C4)_
* A sub-type cannot itself have sub-types. The application sub-types; the system enforces a single level. _(F0-C1)_
* A sub-type cannot be its own parent, and standard types cannot be sub-typed or re-parented. _(F0-C1)_
* A new sub-type starts with every aspect (workflow, form configuration, settings) linked to its parent, so it behaves exactly like the parent until I change it. _(F0-C1, F0-C2)_
* A sub-type appears in administration nested under its parent and labelled with its composite name ("Bug: Hardware"). _(F0-C3, F0-C4)_
* A sub-type inherits has its core settings from the parent and cannot edit them: color, `is_milestone`, `is_in_roadmap`, and `is_default` are shown read-only and always follow the parent. _(F0-C3)_
* A sub-type carries only its own variant label, used in administration, hover, and the composite name; the displayed type administrative name but no own color; its display always resolves to uses the parent. parent's color. _(F0-C3)_
* The system prevents creating a cyclic dependency between reuse sources. _(F0-C2)_
* The entire capability is hidden and inert unless the `work_package_subtypes` feature flag is enabled. _(F0-C0)_
## Permissions and visibility considerations
* **To whom is this feature visible?** Instance administrators (the existing global type administration).
* **When is it not visible?** Feature Flag turned off, off; all non-admin users.
## Translation considerations
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><thead class="op-uc-table--head"><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">English</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">German (verify)</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">French (verify)</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Spanish (verify)</p></th></tr></thead><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Sub-type</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Untertyp</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Sous-type</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Subtipo</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Parent type</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Übergeordneter Typ</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Type parent</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Tipo principal</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Source type</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Quelltyp</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Type source</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Tipo de origen</p></td></tr></tbody></table></figure>
* Document the hierarchical name (`"TYPE: SUBTYPE"`) used in admin, possibly on hover, and API.
## Out of scope
* Project-owned sub-types, the `:manage_subtypes` project permission, in-project visibility isolation, and promotion to global (Feature 8).
* Per-aspect reuse behavior beyond the default parent links (Features 1, 2, 3).
* Project activation and the one-per-family rule (Feature 5).
* Display routing across the product (Feature 4).
**As an** OpenProject administrator
**I want to** create and manage global sub-types under an existing work package type
**so that** I can offer instance-wide variations of a type that present as the parent but can behave differently.
## Acceptance criteria
* I can create a global sub-type under any root type. _(F0-C1, F0-C4)_
* A sub-type cannot itself have sub-types. The application
* A sub-type cannot be its own parent, and standard types cannot be sub-typed or re-parented. _(F0-C1)_
* A new sub-type starts with every aspect (workflow, form configuration, settings) linked to its parent, so it behaves exactly like the parent until I change it. _(F0-C1, F0-C2)_
* A sub-type appears in administration nested under its parent and labelled with its composite name ("Bug: Hardware"). _(F0-C3, F0-C4)_
* A sub-type inherits
* A sub-type carries only its own variant label, used in administration, hover, and the composite name; the displayed type
* The system prevents creating a cyclic dependency between reuse sources. _(F0-C2)_
* The entire capability is hidden and inert unless the `work_package_subtypes` feature flag is enabled. _(F0-C0)_
## Permissions and visibility considerations
* **To whom is this feature visible?** Instance administrators (the existing global type administration).
* **When is it not visible?** Feature Flag turned off,
## Translation considerations
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><thead class="op-uc-table--head"><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">English</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">German (verify)</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">French (verify)</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Spanish (verify)</p></th></tr></thead><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Sub-type</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Untertyp</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Sous-type</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Subtipo</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Parent type</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Übergeordneter Typ</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Type parent</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Tipo principal</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Source type</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Quelltyp</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Type source</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Tipo de origen</p></td></tr></tbody></table></figure>
* Document the hierarchical name (`"TYPE: SUBTYPE"`) used in admin, possibly on hover, and API.
## Out of scope
* Project-owned sub-types, the `:manage_subtypes` project permission, in-project visibility isolation, and promotion to global (Feature 8).
* Per-aspect reuse behavior beyond the default parent links (Features 1, 2, 3).
* Project activation and the one-per-family rule (Feature 5).
* Display routing across the product (Feature 4).