# Feature PIR-61 - Required project attributes (which are not activated for all project)

Project: Project Inititation Requests
Status: closed
URL: https://community.openproject.org/work_packages/PIR-61

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | Medium |
| Target versions | 17.0.0 |
| List |  |
| Roadmap |  |
| Relevance |  |

## OPEN POINTS / FEEDBACK

_No work packages_

## Features and Chunks

_No work packages_

## Bugs and other work packages

| ID | Type | Subject | Status | Assignee | Target versions | Spent time | Module |
| --- | --- | --- | --- | --- | --- | --- | --- |
| SPPM-284 | Bug | Missing/wrong translations for required project attributes | closed |  | 17.0.0 |  | Modules and project features / Project attributes |
| OP-18509 | Bug | Required project attribute with default value (not for all) showing up in list of required attributes on project creation  | closed |  | 17.0.0 |  | Modules and project features / Project attributes, Modules and project features / Project creation |
| OP-18510 | Bug | Required project attributes not enforced on POST /api/v3/projects | closed |  | 17.0.1 |  | Modules and project features / Project attributes, Modules and project features / Project creation, API |

## Technical Details

| Attribute | Value |
| --- | --- |
| Module |  |
| Feature Flag |  |
| Requires doc change | Yes |
| Enterprise plan |  |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |

## People

| Attribute | Value |
| --- | --- |
| Assignee |  |
| Accountable |  |
| Product manager |  |
| Developers | Tobias Dillmann |
| Designer |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| Work |  |
| Labor costs |  |

## Description

**As** a portfolio manager  
**I want to** to have a separate setting to make project attributes mandatory  
**so that** I can deactivate mandatory fields in all projects where this field is irrelevant.

**Acceptance criteria**

  - For project attributes there are two settings:
    
      - New: Required (same behaviour as for e.g. work package custom fields)
    
      - Existing: For all projects

  - For calculated and boolean custom fields (regardless of what they are defined on - project, work package, user) required can no longer be set

  - This has consequences in some places of the application:
    
      - When **creating** a new blank project, only attributes that are configured for **all** **projects** as well as **required** will be shown in the last step of the creation wizard
    
      - When **copying** a project, attributes that are active and required in the source project will be presented in the form.
    
      - When **creating** a project from a template with PIR active, attributes that are enabled within the PIR will be shown.
        
          - Will not work until a bug is resolved: <mention class="mention" data-id="69796" data-type="work_package" data-text="###69796">\#\#\#69796</mention>
    
      - When **creating** a project from a template with PIR inactive, attributes that are active and required in the template will be shown.
    
      - When **configuring** project attributes for a project, attributes that are set "for all projects" cannot be disabled in an individual project.
    
      - When **configuring** PIR for a project, attributes that are "required" in the project cannot be disabled.

  - Migration
    
      - Project attributes which are "For all projects" are set required.
    
      - Required boolean and calculated custom fields loose their required state.

**Permissions and visibility considerations**

  - *To whom is this feature visible?*

  - *When is it not visible?*

**Translation considerations**

  - Same translation strings which are used for work package attributes

  - In some cases, new strings have to be defined:
    
      - `settings.project_attributes.label_for_all_projects`
    
      - `projects.settings.project_custom_fields.is_for_all_blank_slate.heading`
    
      - `projects.settings.project_custom_fields.is_for_all_blank_slate.description`
