Content
View differences
Updated by Parimal Satyal 2 days ago
#### **Context**
**Goal 1: Architecture**
The goal is to assess the requirements in the original epic (#AUTOWORK-283) and come up with a coherent approach and UX flow that is:
* as easy to understand as possible
* plays well with other changes we're planning, notably:
* Independent form objects
* Project-level type variants
* can proper scale and extend when we extend this feature:
* by introducing other planes of contextualisation (eg. status-based rather than project-based)
* allowing additive contextualisation (add additional fields instead of only being able to disable them)
**Goal 2: Update mockups**
Marc's original mockups are quite detailed already and very well thought-out. However, the data (and indeed mental) model was a bit different back then, and variants did not quite exist. We need to update the mockups accordingly.
#### Overview
It's useful to be able to compare where we are at the moment and where we want to be.
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Theme</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Current</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Future (v1)</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Thoghts and remarks</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Custom fields</strong></p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e83dbfec6af0e33a496bddd87952ae079"><p class="op-uc-p">Defined an admin level, added to projects via types</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="ee99dfa5f21a9a2a49f57eb866a633d57"><p class="op-uc-p">Each type defines a form with a set of custom fields</p></li><li class="op-uc-list--item" data-list-item-id="ebe34e9a11e175a02fdbf7028a5b08104"><p class="op-uc-p">Variants can inherit from types but disable individual fields</p></li></ul></li><li class="op-uc-list--item" data-list-item-id="e02f1e59b2d5d083bf2a099d9b327e11e"><p class="op-uc-p">Project admins can already hide a certain custom field, even if that custom field is enabled for a type that's used in that project. </p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e6dc4229f96d4cfb36368930caa17d12f"><p class="op-uc-p">By going to <i>Project settings → Work packages → Custom fields</i> and unchecking 'Enabled in project' for that custom field</p></li></ul></li></ul></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e0e7c87ee249d64f4582827bac55a958f"><p class="op-uc-p">Custom fields are defined at an admin level</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e7ef944de0c7309e8a900007bf9d8fb1c"><p class="op-uc-p">Admin can choose to let project-level or type-level override of <i>items</i></p></li></ul></li><li class="op-uc-list--item" data-list-item-id="e137912129f94b150e53c38d48f6bc86c"><p class="op-uc-p">[open] We have to decide if we want project-level control at the Type/Variant level or Form level, since we'll have this object too.</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Custom field of type list (flat)</strong></p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e8c28778091254ed2ef09fc72ad6ce324"><p class="op-uc-p">Admin level: Multi-select options are defined as a flat list</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="eba0269ca0d2e3fac30e863288878a3fd"><p class="op-uc-p">All projects using the field see the same values</p></li></ul></li></ul></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e369183c9007c3313b2886c0a7c6886c9"><p class="op-uc-p">Project admins can choose to display just a subset of the available values</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="ec18880c1ba7ed03b98d3361e81e315c6"><p class="op-uc-p">They cannot add new values</p></li></ul></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Custom field of type hierarchy (nested)</strong></p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e191e3dd63913ef25848a8ea64e64c91a"><p class="op-uc-p">Admin level: Multi-select options can be organised in a nested hierarcharchy</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e9af98730e7349f3b410ca5085d287718"><p class="op-uc-p">All projects using the field see the same values</p></li></ul></li></ul></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e2a4add01b0b4d2be56b41dc234433dd4"><p class="op-uc-p">Project admins can choose to display just a subset of the available values</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e6964afb398fc17b9819dd88a739d3992"><p class="op-uc-p">This can be removing entire nodes or removing specific leaves (single values)</p></li><li class="op-uc-list--item" data-list-item-id="e1eda7682b6fcd8a0ccf71d06a8e5b90b"><p class="op-uc-p">[open] Possible to hide a node but show just one leaf</p></li><li class="op-uc-list--item" data-list-item-id="e2d2c35273f4af1fdff6c9839bd0b0f7d"><p class="op-uc-p">They cannot add new values</p></li></ul></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr></tbody></table></figure><br>
**Use cases**
* As a global admin, I can create global list of values for certain fields by the admin.
* As a global admin, I would like to define which of those values are visible in which projects.
* As a global admin, I would like to decide if I delegate the project-specific selection values (subtractive) that are visible in a project to projects (with a permission).
* As a project admin, when I'm given the ability to do so, I can go to a custom field and activate/deactivate certain values.
* Later: can also add values.
<br>
**We are not changing:**
* Enabling/disabling custom fields per project remains as it is (i.e, affects all types in that project)
**Type-level:**
* As a global admin, I should be able to define values per custom field are visible per type/variant.
* eg. Bug mobile: resolutions relevant for mobile devices and for web, other resolutions.
* _\[As for project_ and _type, See how Jira solves it\]_
* As a project admin, I should be able to go to a custom field and configure which fields are visible.
* As a project admin, I should _also_ be able to go a type, and then configure both:
* fields
* values for these fields per type
<br>
**Feature/Epic:** <mention class="mention" data-id="53806" data-type="work_package" data-text="###AUTOWORK-283" data-display-id="AUTOWORK-283">###AUTOWORK-283</mention>
**Figma mockups:** workPackageValue:Mockups
**Research work:** Client interviews scheduled
<br>
**Goal 1: Architecture**
The goal is to assess the requirements in the original epic (#AUTOWORK-283) and come up with a coherent approach and UX flow that is:
* as easy to understand as possible
* plays well with other changes we're planning, notably:
* Independent form objects
* Project-level type variants
* can proper scale and extend when we extend this feature:
* by introducing other planes of contextualisation (eg. status-based rather than project-based)
* allowing additive contextualisation (add additional fields instead of only being able to disable them)
**Goal 2: Update mockups**
Marc's original mockups are quite detailed already and very well thought-out. However, the data (and indeed mental) model was a bit different back then, and variants did not quite exist. We need to update the mockups accordingly.
#### Overview
It's useful to be able to compare where we are at the moment and where we want to be.
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Theme</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Current</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Future (v1)</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Thoghts and remarks</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Custom fields</strong></p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e83dbfec6af0e33a496bddd87952ae079"><p class="op-uc-p">Defined an admin level, added to projects via types</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="ee99dfa5f21a9a2a49f57eb866a633d57"><p class="op-uc-p">Each type defines a form with a set of custom fields</p></li><li class="op-uc-list--item" data-list-item-id="ebe34e9a11e175a02fdbf7028a5b08104"><p class="op-uc-p">Variants can inherit from types but disable individual fields</p></li></ul></li><li class="op-uc-list--item" data-list-item-id="e02f1e59b2d5d083bf2a099d9b327e11e"><p class="op-uc-p">Project admins can already hide a certain custom field, even if that custom field is enabled for a type that's used in that project. </p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e6dc4229f96d4cfb36368930caa17d12f"><p class="op-uc-p">By going to <i>Project settings → Work packages → Custom fields</i> and unchecking 'Enabled in project' for that custom field</p></li></ul></li></ul></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e0e7c87ee249d64f4582827bac55a958f"><p class="op-uc-p">Custom fields are defined at an admin level</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e7ef944de0c7309e8a900007bf9d8fb1c"><p class="op-uc-p">Admin can choose to let project-level or type-level override of <i>items</i></p></li></ul></li><li class="op-uc-list--item" data-list-item-id="e137912129f94b150e53c38d48f6bc86c"><p class="op-uc-p">[open] We have to decide if we want project-level control at the Type/Variant level or Form level, since we'll have this object too.</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Custom field of type list (flat)</strong></p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e8c28778091254ed2ef09fc72ad6ce324"><p class="op-uc-p">Admin level: Multi-select options are defined as a flat list</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="eba0269ca0d2e3fac30e863288878a3fd"><p class="op-uc-p">All projects using the field see the same values</p></li></ul></li></ul></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e369183c9007c3313b2886c0a7c6886c9"><p class="op-uc-p">Project admins can choose to display just a subset of the available values</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="ec18880c1ba7ed03b98d3361e81e315c6"><p class="op-uc-p">They cannot add new values</p></li></ul></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Custom field of type hierarchy (nested)</strong></p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e191e3dd63913ef25848a8ea64e64c91a"><p class="op-uc-p">Admin level: Multi-select options can be organised in a nested hierarcharchy</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e9af98730e7349f3b410ca5085d287718"><p class="op-uc-p">All projects using the field see the same values</p></li></ul></li></ul></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e2a4add01b0b4d2be56b41dc234433dd4"><p class="op-uc-p">Project admins can choose to display just a subset of the available values</p><ul class="op-uc-list"><li class="op-uc-list--item" data-list-item-id="e6964afb398fc17b9819dd88a739d3992"><p class="op-uc-p">This can be removing entire nodes or removing specific leaves (single values)</p></li><li class="op-uc-list--item" data-list-item-id="e1eda7682b6fcd8a0ccf71d06a8e5b90b"><p class="op-uc-p">[open] Possible to hide a node but show just one leaf</p></li><li class="op-uc-list--item" data-list-item-id="e2d2c35273f4af1fdff6c9839bd0b0f7d"><p class="op-uc-p">They cannot add new values</p></li></ul></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr></tbody></table></figure><br>
**Use cases**
* As a global admin, I can create global list of values for certain fields by the admin.
* As a global admin, I would like to define which of those values are visible in which projects.
* As a global admin, I would like to decide if I delegate the project-specific selection values (subtractive) that are visible in a project to projects (with a permission).
* As a project admin, when I'm given the ability to do so, I can go to a custom field and activate/deactivate certain values.
* Later: can also add values.
* Enabling/disabling custom fields per project remains as it is (i.e, affects all types in that project)
**Type-level:**
* As a global admin, I should be able to define values per custom field are visible per type/variant.
* eg. Bug mobile: resolutions relevant for mobile devices and for web, other resolutions.
* _\[As for project_ and _type, See how Jira solves it\]_
* As a project admin, I should be able to go to a custom field and configure which fields are visible.
* As a project admin, I should _also_ be able to go a type, and then configure both:
* fields
* values for these fields per type
<br>
**Feature/Epic:** <mention class="mention" data-id="53806" data-type="work_package" data-text="###AUTOWORK-283" data-display-id="AUTOWORK-283">###AUTOWORK-283</mention>
**Figma mockups:** workPackageValue:Mockups
**Research work:** Client interviews scheduled
<br>