# Feature OP-14021 - Global project attributes administration

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

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | Medium |
| Target versions | 14.0.0 |
| Sprint | 14.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 | Yes |
| 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 | Jonas Jabari |
| Designer | Marc Alcobé |
| Ordered by |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

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

## Description

### Acceptance Criteria:

  - **Sections**: Project attributes are shown in their sections. A project attribute is always a part of a section.
      - Sections can be re-ordered via drag and drop or action or menu buttons
      - The order of the sections defines the display order of the sections globally (project settings, project overview page)
      - Sections can be deleted but only if no project attribute is assigned to them
      - A new section can be created by clicking on the "+ Section" button on the PageHeader. This will display a modal with an input field to name the section.
          - This section will be added to the top of the list.
      - The More (..) button to the right of a section will display a drop-box with these options:
          - Edit title (displays a dialog with an input field with the current tile pre-filled)
          - Move to top (unless already at the top)
          - Move up (unless already at the top)
          - Move down (unless already at the bottom)
          - Move to bottom (unless already at the bottom)
          - Delete (requires confirmation)
  - **Individual attributes:**
      - Within a section box, all assigned project attributes are shown with their:
          - Name
          - Type (String, User, List...)
          - the number of projects using this attribute
          - a required label, if required
      - Individual project attributes within a section can be re-ordered via drag and drop or action menu buttons
      - The More (..) button to the right of an individual attribute will display a drop-box with these options:
          - Edit (redirects to the edit attribute page)
          - Move to top (unless already at the top)
          - Move up (unless already at the top)
          - Move down (unless already at the bottom)
          - Move to bottom (unless already at the bottom)
          - Delete (requires confirmation)
      - The order of the project attributes defines the display order of the project attributes globally (project settings, project overview page)
      - A project attribute can be moved to another section via drag and drop
      - A project attribute can be deleted (after confirmation), even when it's used in a project (associated custom values will be deleted permanently\!)
  - **Creating project attributes:** A new attribute can be created by clicking on the "+ Project attribute" button on the PageHeader. This will direct to a blank project attribute form.
      - Changing the project attribute type (e.g. to list), will change the input fields directly
      - Saving this form redirects back to list page, showing the new project attribute in the selected section
      - If a project attribute is set to required, it gets automatically activated in all projects after create (with no option to disable it at a project-level)
      - The visible setting behaves as it does currently (if "Visible" us unchecked, the attribute is visible only to admins).
  - An empty section additionally shows a button for project attribute creation
  - **Editing project attributes:** Each attribute can be edited by clicking on its name or clicking on the "Edit" action on the More dropdown menu
      - On the edit page, the existing "project custom field" form (as seen for all other custom field types, e.g. WorkPackage) is rendered with a new header
      - In contrast to the typical custom field form, a select box for the "Section" assignment is shown below the name form
          - Changing this moves the project attribute to a different section (as an alternative to the above described drag and drop approach)
      - Saving the form does not redirect back to the list page
      - If a project attribute is updated to be required, it gets automatically activated in all projects after save (and can no longer be disabled at a project level)
      - The visible setting behaves as it does currently (if "Visible" us unchecked, the attribute is visible only to admins).
  - URL routing: `admin/settings/project_custom_fields`
  - Only accessible to admins
