Content
View differences
Updated by Oliver Günther about 2 hours ago
**As an** administrator configuring any work package type (sub-type or plain type)
**I want to** link a type's form configuration to a source type or make it independent
**so that** I can reuse a canonical form across many types, or own a form outright.
## Acceptance criteria
* For any type, I can set its form configuration to
* to **Linked** (choosing a source type) _or_
* **Independent**
* or **Independent**. A sub-type defaults to Linked to its parent parent. _(F2-C0)_
* A Linked form resolves to its source at runtime; when I change the source's form, every linked type reflects it immediately immediately. _(F2-C1)_
* Custom fields associated with the source type are visible on a linked type's work packages, subject to the existing per-project custom field rules rules. _(F2-C2)_
* When I switch a form to Independent, the system copies the current source's configuration once and then severs the link link. _(F2-C3)_
* The system prevents me from creating a cyclic dependency between form sources sources. _(F0-C2)_
* Linking a form never changes the type's display name or color color. _(F0-C3)_
## Permissions and visibility considerations
* **To whom is this feature visible?** Admins and, later, project admins (via `:manage_subtypes`).
* **When is it not visible?**
* Feature flag turned off
* off, without management rights
* Enterprise-guarded actions
rights; Enterprise-gated portions remain gated by license.
## Translation considerations
All non-English wording is tentative and to be confirmed via Crowdin.
<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</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">Form configuration</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Formularkonfiguration</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Configuration du formulaire</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Configuración del formulario</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Linked to {{type}}</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Verknüpft mit {{type}}</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Lié à {{type}}</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Vinculado a {{type}}</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><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Use independent form configuration</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Unabhängige Formularkonfiguration verwenden</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Utiliser une configuration de formulaire indépendante</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Usar una configuración de formulario independiente</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Copy form configuration from type (one time)</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Formularkonfiguration einmalig von Typ kopieren</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Copier la configuration du formulaire depuis un type (une fois)</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Copiar la configuración del formulario de un tipo (una vez)</p></td></tr></tbody></table></figure>
## Out of scope
* Any third mode such as "extend" or a per-field deactivation mask (only Linked or Independent for now). To diverge from a source, switch to Independent.
* Reordering or adding fields relative to a linked source.
<br>
**I want to** link a type's form configuration to a source type or make it independent
**so that** I can reuse a canonical form across many types, or own a form outright.
## Acceptance criteria
* For any type, I can set its form configuration to
*
* **Independent**
*
* A Linked form resolves to its source at runtime; when I change the source's form, every linked type reflects it immediately
* Custom fields associated with the source type are visible on a linked type's work packages, subject to the existing per-project custom field rules
* When I switch a form to Independent, the system copies the current source's configuration once and then severs the link
* The system prevents me from creating a cyclic dependency between form sources
* Linking a form never changes the type's display name or color
## Permissions and visibility considerations
* **To whom is this feature visible?** Admins and, later, project admins (via `:manage_subtypes`).
* **When is it not visible?**
* Feature flag turned off
*
* Enterprise-guarded actions
All non-English wording is tentative and to be confirmed via Crowdin.
<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</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">Form configuration</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Formularkonfiguration</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Configuration du formulaire</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Configuración del formulario</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Linked to {{type}}</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Verknüpft mit {{type}}</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Lié à {{type}}</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Vinculado a {{type}}</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><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Use independent form configuration</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Unabhängige Formularkonfiguration verwenden</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Utiliser une configuration de formulaire indépendante</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Usar una configuración de formulario independiente</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Copy form configuration from type (one time)</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Formularkonfiguration einmalig von Typ kopieren</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Copier la configuration du formulaire depuis un type (une fois)</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Copiar la configuración del formulario de un tipo (una vez)</p></td></tr></tbody></table></figure>
## Out of scope
* Any third mode such as "extend" or a per-field deactivation mask (only Linked or Independent for now). To diverge from a source, switch to Independent.
* Reordering or adding fields relative to a linked source.
<br>