# Epic SSI-1 - Multi-level selection fields to support custom hierarchical attributes

Project: Stream Storage Integrations
Status: closed
URL: https://community.openproject.org/work_packages/SSI-1

## Detailed specification

### Motivation and background information

In some scenarios, users are required to manage complex information that naturally fits into a hierarchical structure. e.g.

*   Real Estate: Property -&gt; Buildings -&gt; Floors -&gt; Rooms
    
*   Geographical Data: Continent -&gt; Country -&gt; Federal State -&gt; County
    
*   Organizational Structures: Organization -&gt; Department -&gt; Team -&gt; User
    
*   Product Components: Parts list of a machine
    

Currently, only flat lists are available. Flat lists can be challenging in managing and navigating through this information. Without a hierarchical view, it becomes difficult to maintain, locate, and work with these datasets effectively.

This avoids the following pain points:

*   Users, particularly project managers and project members, need a way to save and organize information in work packages using hierarchical structures.
    
*   A hierarchical representation would allow them to focus on relevant subsets of information, making navigation more intuitive and information retrieval easier.

### Acceptance criteria

*   Enable filtering on custom fields of type hierarchy
    
*   Validate uniqueness of short names of hierarchy items
    
*   Enable assignment of hierarchy values to work packages
    
*   Enable ordering of hierarchy values of same level
    
*   Create and edit custom field of type hierarchy

### Out of scope

*   Drill down selector. A component like a location/file picker. The user can click on nodes to go one level deeper on the hierarchy.
    
*   Multiple changes to the hierarchy get saved in one transaction instead of multiple ones.
    
*   Allow the same custom field to be active on work packages AND projects, or any other entity type we allow custom fields for.
    
*   Change parent of hierarchy item in administration.
    
*   Support hierarchies of more than 1k items (due to current limitations in API).
    
*   Enable Hierarchies for other custom field types that are not work packages, e.g. projects.
    
*   Configuration of value representation (complex formatting of strings that identify the item)
    
    *   A selected value can have multiple value representation
        
        *   Node ID
            
        *   Full path long: Europe -&gt; Germany -&gt; Bavaria
            
        *   Full path short: EU-DE-BY
            
        *   Selected long: Bavaria
            
        *   Selected short: BY

| Attribute | Value |
| --- | --- |
| Mockups | https://www.figma.com/design/oTMDTvcwrx35qExTkkSKBn/Custom-fields?node-id=386-8676&t=F9b5GLm3QqZWEdB1-0 |

## Planning

| Attribute | Value |
| --- | --- |
| Roadmap |  |
| Date |  |
| Votes |  |
| List | cProject |
| Target versions | 15.1.0 |
| Relevance |  |

## Subitems

| ID | Type | Subject | Status | Assignee | Target versions | Project | Priority | Spent time |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| SSI-88 | Feature | Create and edit custom field of type hierarchy | closed |  | 15.1.0 | Stream Storage Integrations | Medium |  |
| SSI-98 | Feature | Enable ordering of hierarchy values of same level | closed |  | 15.1.0 | Stream Storage Integrations | Medium |  |
| SSI-102 | Feature | Enable assignment of hierarchy values to work packages | closed |  | 15.1.0 | Stream Storage Integrations | Medium |  |
| SSI-103 | Feature | Enable filtering on custom fields of type hierarchy | closed |  | 15.1.0 | Stream Storage Integrations | Medium |  |
| SSI-130 | Feature | Move primary action to subheader | closed |  | 15.1.0 | Stream Storage Integrations | Medium |  |
| SSI-132 | Implementation | Add tests for items controller | closed |  | 15.1.0 | Stream Storage Integrations | Medium |  |
| SSI-143 | Feature | Validate uniqueness of short names of hierarchy items | closed |  | 15.1.0 | Stream Storage Integrations | Medium |  |
| SSI-146 | Feature | Add enterprise gateway to creation of custom fields of type hierarchy | closed |  | 15.1.0 | Stream Storage Integrations | Medium |  |
| SSI-188 | Feature | Remove feature flag custom_field_of_type_hierarchy | closed |  | 15.1.0 | Stream Storage Integrations | Medium |  |
| SSI-181 | Feature | Enable ordering for work packages on values of custom fields of type hierarchy | closed |  | 15.2.0 | Stream Storage Integrations | Medium |  |
| SSI-82 | Open Point | Which filters will we have? | decided |  |  | Stream Storage Integrations | Medium |  |
| SSI-86 | Open Point | Which data architecture will we use for hierarchical structures? | decided |  |  | Stream Storage Integrations | Medium |  |
| SSI-110 | Open Point | How should an option/item/node of a hierarchy/list be called? | decided | Dominic Bräunlein |  | Stream Storage Integrations | Medium |  |
| SSI-141 | Open Point | [API] What are the permissions for fetching custom field items via the API? | new |  |  | Stream Storage Integrations | Medium |  |
| SSI-145 | Open Point | Are CFs of type Hierarchy an Enterprise feature | decided |  |  | Stream Storage Integrations | Medium |  |

## Bugs and other work packages

| ID | Type | Subject | Status | Assignee | Target versions | Module |
| --- | --- | --- | --- | --- | --- | --- |
| SSI-206 | Bug | Form buttons are left aligned and not right aligned in hierarchy items form | closed |  | 15.1.0 |  |
| SSI-189 | Bug | Empty values for short names of hierarchy items are considered duplicates if editing | closed |  | 15.1.0 |  |
| SSI-186 | Bug | Multiselect hierarchy CF cannot be filled from WP list | closed |  | 15.1.0 |  |
| SSI-180 | Bug | Custom fields of type hierarchy are configurable as searchable | closed |  | 15.1.0 |  |
| SSI-177 | Bug | Hierarchy is not displayed in the Move Project form | closed |  | 15.1.0 |  |
| SSI-176 | Bug | Hierarchy items not correctly displayed if custom field is shown in wp table | closed |  | 15.1.0 |  |
| SSI-160 | Bug | Hierarchy custom fields causing 500 on custom actions | closed |  | 15.1.0 |  |
| SSI-152 | Bug | When opening the item form no focus is set | closed |  | 15.1.0 |  |
| SSI-139 | Bug | Breadcrumb of hierarchy items has left margin | closed |  | 15.1.0 |  |
| SSI-129 | Bug | Using multi-select and required options do not work | closed |  | 15.1.0 |  |
| SSI-119 | Bug | Item add form disappears after added a new item to a custom field of type hierarchy | closed |  | 15.1.0 |  |
| SSI-118 | Bug | Info box on new custom field of type hierarchy is permanent | closed |  | 15.1.0 |  |
| SSI-108 | Documentation | Add custom field of type "Hierarchy" and changes in "List" to documentation | closed |  | 15.1.0 |  |
| SSI-207 | Bug | Hierarchy custom fields: Can circumvent enterprise restrictions | closed |  | 15.1.1 |  |
| SSI-187 | Bug | Activity only shows 1 value even if several were updated | closed |  | 15.2.0 |  |
| OP-16079 | Bug | Kebab menu on work package list is unresponsive when custom field of type hierarchy is added to project | closed |  |  |  |
| SSI-164 | Bug | Global search on custom values of type hierarchy not working | rejected |  |  |  |
| SSI-127 | Open Point | How do we handle the challenge, that custom fields are currently only configurable for a single entity type? | rejected |  |  |  |
| SSI-115 | Open Point | Should short form be limited by allowed characters or length | rejected |  |  |  |
| SSI-89 | Open Point | Do we support other types of custom fields? (SpentTime, Versions, Users, Groups) | rejected |  |  |  |
| SSI-78 | Open Point | Should we have a "expand all" view in the "Values"-tab to see the whole tree at once to gain an overview? | rejected |  |  |  |
| SSI-77 | Open Point | What happens with CF List "Possible values", when we add the "Values" tab for Custom Field of type Hierarchy? | rejected |  |  |  |
| SSI-76 | Open Point | Is redesign of Custom Field index page and sub pages part of EPIC? | rejected |  |  |  |
| SSI-145 | Open Point | Are CFs of type Hierarchy an Enterprise feature | decided |  |  |  |
| SSI-110 | Open Point | How should an option/item/node of a hierarchy/list be called? | decided | Dominic Bräunlein |  |  |
| SSI-86 | Open Point | Which data architecture will we use for hierarchical structures? | decided |  |  |  |
| SSI-82 | Open Point | Which filters will we have? | decided |  |  |  |
| SSI-141 | Open Point | [API] What are the permissions for fetching custom field items via the API? | new |  |  |  |

## Details

| Attribute | Value |
| --- | --- |
| Module |  |
| Enterprise plan |  |
| Labels |  |

## People

| Attribute | Value |
| --- | --- |
| Assignee |  |
| Accountable | Dominic Bräunlein |
| Product manager |  |
| Designer | Marc Alcobé |
| Developers | Dominic Bräunlein, Andreas Pfohl, Eric Schubert, Marcello Rocha Pereira |
| Requested by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| Work | 120d 0h · Σ 120d 0h |

## Description

As an OpenProject Admin

I want to create custom fields of type hierarchy for work packages

So that the users in my environment can more easily organize and navigate complex data in structured, multi-level formats within work packages, making information retrieval more intuitive and manageable.

<img class="image_resized op-uc-image op-uc-image_inline" style="width:223px;" src="/api/v3/attachments/240492/content">
