Content
View differences
Updated by Niels Lindenthal about 1 year ago
**As** a project portfolio manager
**I want to** have filters for phases stages and gates on the project list
**so that** I can drill down on projects falling into a category (e..g all projects currently being closed)
**Acceptance criteria**
* The project list offers filters on stages and gates
* Available filters:
1. Projects that are in any phase/gate stage/gate
* Name: "Lifecycle: Any phase stage or gate"
2. Projects that are in a specific phase/gate Stage/Gate
* This will require having one filter per phase/gate Stage/Gate that are dynamically added/removed when new phase/gates stages/gates are added.
* The activation/deactivation of a phase/gate Stage/Gate within a project does not factor into the availability of the filter. As soon as the phase/gate stage/gate is created in the administration, the filter is available.
* Name for a stage: "Lifecycle stage: \[Name of the phase\]" stage\]"
* Name for a gate: "Lifecycle gate: \[Name of the gate\]"
* Operators for both filters:
* today - no value required: Matches if the specified phase/gate stage/gate (for 2.) or if any phase/gate stage/gate (for 1.) has a start date lower and an end date higher than today.
* this week - no value required: Matches if the specified phase/gate's stage/gate's (for 2.) or if any phase/gate's stage/gate's (for 1.) interval formed by start and end date overlap the date interval created by the current week.
* The calculation for the current week takes the "Week starts on" Setting into account.
* on - one value required: Matches if the specified phase/gate stage/gate (for 2.) or if any phase/gate stage/gate (for 1.) has a start date lower and an end date higher than the provided date.
* between - two values: Matches if the specified phase/gate's stage/gate's (for 2.) or if any phase/gate's stage/gate's (for 1.) interval formed by start and end date are within the date interval created by the two values. If only the lower value is provided, it matches if the stage/gate's values are higher than the value. If only the upper value is provided, it matches if the phase/gate's stage/gate's values are lower than the value.
* is empty - no value required: Matches if the specified phase/gate stage/gate (for 2.) or if any phase/gate stage/gate (for 1.) has no value set.
* Restrictions
* In case a phase/gate stage/gate is disabled in a project the value that stage/gate might have set in the project is not found.
* The filters are only available if the user has the "View project phases and gates" permission in any project.
* Only values set for stages/gates within a project are only filtered on if the user has the "View project phases and gates" in that project.
* The filters are also available via the API v3.
* Those added filters need to be documented in the API documentation.
**Assumptions**
* A stage will always have no date or both dates set. It will never be the case that only the start or only the end date are set.
**Note**
* the filter for lifecycle columns has been [hard-coded to be disabled](https://github.com/opf/openproject/pull/17400). Remove the comment in `sort_helper`.
**I want to** have filters for phases
**so that** I can drill down on projects falling into a category (e..g all projects currently being closed)
**Acceptance criteria**
* The project list offers filters on stages and gates
* Available filters:
1. Projects that are in any phase/gate
* Name: "Lifecycle: Any phase
2. Projects that are in a specific phase/gate
* This will require having one filter per phase/gate
* The activation/deactivation of a phase/gate
* Name for a stage: "Lifecycle stage: \[Name of the phase\]"
* Name for a gate: "Lifecycle gate: \[Name of the gate\]"
* Operators for both filters:
* today - no value required: Matches if the specified phase/gate
* this week - no value required: Matches if the specified phase/gate's
* The calculation for the current week takes the "Week starts on" Setting into account.
* on - one value required: Matches if the specified phase/gate
* between - two values: Matches if the specified phase/gate's
* is empty - no value required: Matches if the specified phase/gate
* Restrictions
* In case a phase/gate
* The filters are only available if the user has the "View project phases and gates" permission in any project.
* Only values set for stages/gates within a project are only filtered on if the user has the "View project phases and gates" in that project.
* The filters are also available via the API v3.
* Those added filters need to be documented in the API documentation.
**Assumptions**
* A stage will always have no date or both dates set. It will never be the case that only the start or only the end date are set.
**Note**
* the filter for lifecycle columns has been [hard-coded to be disabled](https://github.com/opf/openproject/pull/17400). Remove the comment in `sort_helper`.