# _embedded.results._embedded.elements[].subject
Delete project via project settings by non admins

# _embedded.results._embedded.elements[].description.raw
**As** a project admin  
**I want** to delete my project myself  
**so that** I don’t need to ask the admin to do that.

**Acceptance criteria**

*   Delete link in project settings
*   Deletion only possible for users having the “delete\_project” permission
*   Deletion possible through APIv3
*   In case subprojects are present:
    *   If the user has the “delete\_project” permission in all of the subprojects, the user is notified (a statement listing all the projects that are going to be deleted) and asked again whether he wants to delete all the projects
    *   In case the user lacks the “delete\_project” permission in any of the subprojects, the user is notified that a deletion is currently impossible as he is lacking permissions in one of the subprojects
*   “manager” role in default data receives “delete\_project” permission by default

**Wireframes**

*   See attachments

# _embedded.results._embedded.elements[].description.html
As a project admin
I want to delete my project myself
so that I don’t need to ask the admin to do that.

Acceptance criteria

Delete link in project settings

Deletion only possible for users having the “delete_project” permission

Deletion possible through APIv3

In case subprojects are present:

If the user has the “delete_project” permission in all of the subprojects, the user is notified (a statement listing all the projects that are going to be deleted) and asked again whether he wants to delete all the projects

In case the user lacks the “delete_project” permission in any of the subprojects, the user is notified that a deletion is currently impossible as he is lacking permissions in one of the subprojects

“manager” role in default data receives “delete_project” permission by default

Wireframes

See attachments

# _embedded.results._embedded.elements[]._links.self.title
Delete project via project settings by non admins

# _embedded.results._embedded.elements[].subject
Show meetings in time tracking calendar and project calendar

# _embedded.results._embedded.elements[].description.raw
**As** an OpenProject user  
**I want** to see my meetings also in the calendar views (project calendar, time tracking calendar)  
**so that** I can better plan my week and I can better find the meetings.

**Open**

*   [ ] Meeting quick filter
*   [ ] Meeting create action
*   [ ] Meeting preview/hover card

# _embedded.results._embedded.elements[].description.html
As an OpenProject user
I want to see my meetings also in the calendar views (project calendar, time tracking calendar)
so that I can better plan my week and I can better find the meetings.

Open

Meeting quick filter

Meeting create action

Meeting preview/hover card

# _embedded.results._embedded.elements[].customField401.raw
*   All project meetings are displayed in the project calendar (filtered by the project). It shows all meetings independently of the individual participation.
    
*   Meetings can be filtered:
    
    *   All meetings
        
    *   My meetings
        
    *   No meetings (hide meetings)

# _embedded.results._embedded.elements[].customField401.html
All project meetings are displayed in the project calendar (filtered by the project). It shows all meetings independently of the individual participation.

Meetings can be filtered:

All meetings

My meetings

No meetings (hide meetings)

# _embedded.results._embedded.elements[].customField403.raw
*   A lot of the planning and coordination work in project teams is done in meetings.
    
*   A lot of users are confused because they miss the meetings in the project calendar.
    
*   If we want to log time on meetings we need to be able to see them in the personal planner/calendar view.

# _embedded.results._embedded.elements[].customField403.html
A lot of the planning and coordination work in project teams is done in meetings.

A lot of users are confused because they miss the meetings in the project calendar.

If we want to log time on meetings we need to be able to see them in the personal planner/calendar view.

# _embedded.results._embedded.elements[].customField400.html
Log time on meetings

# _embedded.results._embedded.elements[]._links.self.title
Show meetings in time tracking calendar and project calendar

# _embedded.results._embedded.elements[].description.raw
I’d like to see work package relations be able to be defined with a query so that they are automatically updated as new tasks are added or updated to fit the criteria of the query. I’ve started tracking event type tasks and those events require keeping up with multiples of different types of tasks that meet the same criteria. Right now I have to daily go in and query to find tasks meeting that criteria and manually adding them to the task as a related work package.

Having the query defined with the WP to dynamically populate the related work package list would be most excellent.

# _embedded.results._embedded.elements[].description.html
I’d like to see work package relations be able to be defined with a query so that they are automatically updated as new tasks are added or updated to fit the criteria of the query. I’ve started tracking event type tasks and those events require keeping up with multiples of different types of tasks that meet the same criteria. Right now I have to daily go in and query to find tasks meeting that criteria and manually adding them to the task as a related work package.

Having the query defined with the WP to dynamically populate the related work package list would be most excellent.

# _embedded.results._embedded.elements[].description.raw
I’d like to see a way to link a Forum discussion to a work package such that when viewing the forum you can quickly see the status of the work package (perhaps tagged in the subject line with a link to the WP). In addition I’d like to have the forum discussion embedded in the work package such that when I’m viewing a work package with a related forum discussion I can easily expand the discussion to view and reply in line if needed.

# _embedded.results._embedded.elements[].description.html
I’d like to see a way to link a Forum discussion to a work package such that when viewing the forum you can quickly see the status of the work package (perhaps tagged in the subject line with a link to the WP). In addition I’d like to have the forum discussion embedded in the work package such that when I’m viewing a work package with a related forum discussion I can easily expand the discussion to view and reply in line if needed.

# _embedded.results._embedded.elements[].description.raw
When specifying the work package query filters, we need the ability to either add the same field twice, once for \<= and once for \>= or have another filter option that allows you to specify something between two values.

For example, if a Custom Field of type float has values 1.4, 2.0, 2.5, 2.7, 3.0 you should be able to apply a filter that only shows 2.0, 2.5 and 2.7.

# _embedded.results._embedded.elements[].description.html
When specifying the work package query filters, we need the ability to either add the same field twice, once for <= and once for >= or have another filter option that allows you to specify something between two values.

For example, if a Custom Field of type float has values 1.4, 2.0, 2.5, 2.7, 3.0 you should be able to apply a filter that only shows 2.0, 2.5 and 2.7.

# _embedded.results._embedded.elements[].subject
Move Work Package should allow setting of Custom Fields

# _embedded.results._embedded.elements[].description.raw
When moving a work package to another project and type, custom fields for the selected destination should be shown and be able to be completed by the user.

Currently if there are any required custom fields in the destination project and type, the work package cannot be moved and an error message is returned.

# _embedded.results._embedded.elements[].description.html
When moving a work package to another project and type, custom fields for the selected destination should be shown and be able to be completed by the user.

Currently if there are any required custom fields in the destination project and type, the work package cannot be moved and an error message is returned.

# _embedded.results._embedded.elements[]._links.self.title
Move Work Package should allow setting of Custom Fields

# _embedded.results._embedded.elements[].description.raw
There should be a top level Forums page that brings in the forums from the entire project tree into a single page shown as a tree layout.

\`- Project A

*   forum 1
    
*   forum 2
    
*   Project B
    
    *   forum 1
        
*   Project C
    
    *   forum 1
        
    *   forum 2 \`

# _embedded.results._embedded.elements[].description.html
There should be a top level Forums page that brings in the forums from the entire project tree into a single page shown as a tree layout.

`- Project A

forum 1

forum 2

Project B

forum 1

Project C

forum 1

forum 2 `

# _embedded.results._embedded.elements[].subject
Moving Forum Messages Across Project Boundaries

# _embedded.results._embedded.elements[].description.raw
We’re getting a large number of forum messages posted to the wrong project and would like to move them to the correct location. There is already the capability to move to another forum within the same project but it appears that you can’t move it to a forum in another project. The move function should allow for moving to any forum on any project which the user has rights to see.

# _embedded.results._embedded.elements[].description.html
We’re getting a large number of forum messages posted to the wrong project and would like to move them to the correct location. There is already the capability to move to another forum within the same project but it appears that you can’t move it to a forum in another project. The move function should allow for moving to any forum on any project which the user has rights to see.

# _embedded.results._embedded.elements[]._links.self.title
Moving Forum Messages Across Project Boundaries

# _embedded.results._embedded.elements[].description.raw
Add plugin for PlantUML. It is great not just for creating UML inside Wiki page, but it can do GUI mocks, too.

# _embedded.results._embedded.elements[].description.html
Add plugin for PlantUML. It is great not just for creating UML inside Wiki page, but it can do GUI mocks, too.

# _embedded.results._embedded.elements[].description.raw
Hello

I suggest adding “view only own work packages” into permissions options. With this functionality I could create user accounts to my customers. It’s very important for me that customers have access only to their work packages.

Regards  
Krzysztof

# _embedded.results._embedded.elements[].description.html
Hello

I suggest adding “view only own work packages” into permissions options. With this functionality I could create user accounts to my customers. It’s very important for me that customers have access only to their work packages.

Regards
Krzysztof

# _embedded.results._embedded.elements[]._links.customField110.title
6.0 = Impacts a large percentage (~50% to ~80%)

# _embedded.results._embedded.elements[].subject
Work packages with reduced visibility (private work packages)

# _embedded.results._embedded.elements[].description.raw
**As** an OpenProject user  
**I want** to be able to limit the visibility of work packages to users and groups which I specify  
**so that** I can have private work packages.

**Acceptance criteria**

*   Restrict WorkPackage visibility by role, independend of project (see Redmine screenshot for Roles configuration)
*   Private tickets cannot be seen / edited by users who are not allowed to see them:
    *   Not shown in work package list
    *   Links to those work packages (e.g. via Wiki syntax) are not functional
    *   Related work packages, parent &amp; child work packages which are private are not shown

<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/attachments/15713/Rollen-Ticket-Sichtbarkeit.jpg"></div></figure>

# _embedded.results._embedded.elements[].description.html
As an OpenProject user
I want to be able to limit the visibility of work packages to users and groups which I specify
so that I can have private work packages.

Acceptance criteria

Restrict WorkPackage visibility by role, independend of project (see Redmine screenshot for Roles configuration)

Private tickets cannot be seen / edited by users who are not allowed to see them:

Not shown in work package list

Links to those work packages (e.g. via Wiki syntax) are not functional

Related work packages, parent & child work packages which are private are not shown

# _embedded.results._embedded.elements[]._links.self.title
Work packages with reduced visibility (private work packages)

# _embedded.results._embedded.elements[].description.raw
**As** an OpenProject user  
**I want** the query selection to be the same as in the work package page  
**so that** only the current / important queries are displayed in the side menu.

**Acceptance criteria**

  - Implement query select (ui-select) in the cost report headline.
  - Add the option to add queries to the side menu.
  - Add a page configuration for making cost reports public / private.

**Business use case**

  - Having many cost reports (e.g. monthly and yearly reports for WDR, Yopeso reports for 3 teams for each sprints, …) it’s difficult to keep track of the currently relevant reports.
  - For documentation purposes, I don’t want to delete old reports but don’t want to display them in the side menu either.

**Screenshot**  
![](Cost-Reports.png)

# _embedded.results._embedded.elements[].description.html
As an OpenProject user
I want the query selection to be the same as in the work package page
so that only the current / important queries are displayed in the side menu.

Acceptance criteria

Implement query select (ui-select) in the cost report headline.

Add the option to add queries to the side menu.

Add a page configuration for making cost reports public / private.

Business use case

Having many cost reports (e.g. monthly and yearly reports for WDR, Yopeso reports for 3 teams for each sprints, …) it’s difficult to keep track of the currently relevant reports.

For documentation purposes, I don’t want to delete old reports but don’t want to display them in the side menu either.

Screenshot

# _embedded.results._embedded.elements[].description.raw
The `watchers` are already embedded into the work package resource. All that is missing for this embedding to be valid is a link (and the corresponding endpoint).

It should be added.

Please see https://github.com/opf/openproject/pull/2345 for specification.

# _embedded.results._embedded.elements[].description.html
The watchers are already embedded into the work package resource. All that is missing for this embedding to be valid is a link (and the corresponding endpoint).

It should be added.

Please see https://github.com/opf/openproject/pull/2345 for specification.

# _embedded.results._embedded.elements[].subject
Integrate project attributes in work packages filter

# _embedded.results._embedded.elements[].description.raw
**As an** OpenProject developer  

**I want to** filter my work packages on project attributes  

**so that** I can delete the timelines legacy code.



**Acceptance criteria**



  - Multi select filter on *project type*.

  - Multi select filter on subprojects of.

  - Multi select filter on project status.

  - Multi select filter on *project custom fields*.

      - User

      - List

  - Project should be displayed even if they do not contain any work packages.

  - Results displayed in existing work packages table.



<!-- end list -->



  - Examples

      - Filter all projects that are subprojects of project “IPTV Sytems” that have a work package of type “rollout” in Q3 2015.

      - Filter all project of type “EA” in project status “red”.

# _embedded.results._embedded.elements[].description.html
As an OpenProject developer
I want to filter my work packages on project attributes
so that I can delete the timelines legacy code.

Acceptance criteria

Multi select filter on project type.

Multi select filter on subprojects of.

Multi select filter on project status.

Multi select filter on project custom fields.

User

List

Project should be displayed even if they do not contain any work packages.

Results displayed in existing work packages table.

Examples

Filter all projects that are subprojects of project “IPTV Sytems” that have a work package of type “rollout” in Q3 2015.

Filter all project of type “EA” in project status “red”.

# _embedded.results._embedded.elements[]._links.self.title
Integrate project attributes in work packages filter

# _embedded.results._embedded.elements[].subject
Copy minutes instead of agenda when copying meeting

# _embedded.results._embedded.elements[].description.raw
**As** an OpenProject user  
**I want** to copy the minutes instead of the agenda when copying a meeting  
**so that** I can use this as a basis for a new meeting.

**Acceptance criteria**

  - When copying a meeting, the minutes of the old meeting are displayed as agenda in the new meeting instead of the agenda of the old meeting.
      - The minutes of the old meeting can be used as a basis for the agenda of the new meeting.

# _embedded.results._embedded.elements[].description.html
As an OpenProject user
I want to copy the minutes instead of the agenda when copying a meeting
so that I can use this as a basis for a new meeting.

Acceptance criteria

When copying a meeting, the minutes of the old meeting are displayed as agenda in the new meeting instead of the agenda of the old meeting.

The minutes of the old meeting can be used as a basis for the agenda of the new meeting.

# _embedded.results._embedded.elements[]._links.self.title
Copy minutes instead of agenda when copying meeting

# _embedded.results._embedded.elements[].subject
Make budgets assignable to Projects, not just Work Packages.

# _embedded.results._embedded.elements[].description.raw
**As** a user  
**I want** to be able to assign a single global Budget to the main Project, not just Work Packages.  
**so that** I can link the same budget to the Project’s Subprojects for accurate total cost and balance sheet for that one Budget.

# _embedded.results._embedded.elements[].description.html
As a user
I want to be able to assign a single global Budget to the main Project, not just Work Packages.
so that I can link the same budget to the Project’s Subprojects for accurate total cost and balance sheet for that one Budget.

# _embedded.results._embedded.elements[]._links.self.title
Make budgets assignable to Projects, not just Work Packages.

# _embedded.results._embedded.elements[].subject
Custom field format for eMail, URLs and Long Rich Text

# _embedded.results._embedded.elements[].description.raw
**Description**

**As** an OpenProject user
**I want** to be able to add custom fields for eMail, URL and Wiki styled long texts
**so that** directly eMail, link to Websites or have a customized entry in the corresponding format

**Further descryption**
This is a feature introduced to Redmine and Chiliproject and is missed in OpenProject.
It would be very handy to use for additional user details or project description.
Maybe it could also be implemented as plugin like the “Extended Fields Plugin”: http://www.redmine.org/plugins/extended\_fields

# _embedded.results._embedded.elements[].description.html
Description

As an OpenProject user
I want to be able to add custom fields for eMail, URL and Wiki styled long texts
so that directly eMail, link to Websites or have a customized entry in the corresponding format

Further descryption
This is a feature introduced to Redmine and Chiliproject and is missed in OpenProject.
It would be very handy to use for additional user details or project description.
Maybe it could also be implemented as plugin like the “Extended Fields Plugin”: http://www.redmine.org/plugins/extended_fields

# _embedded.results._embedded.elements[]._links.self.title
Custom field format for eMail, URLs and Long Rich Text

# _embedded.results._embedded.elements[].description.raw
**Description**

**As** na OpenProject user
**I want** to have the possibility to add a Custom Field for Log Unit Cost window
**so that** I can i.e. categorize the comments based on their importance.

The format should include at least ‘Text’, ‘Integer’, ‘Date’ and ‘List’.

# _embedded.results._embedded.elements[].description.html
Description

As na OpenProject user
I want to have the possibility to add a Custom Field for Log Unit Cost window
so that I can i.e. categorize the comments based on their importance.

The format should include at least ‘Text’, ‘Integer’, ‘Date’ and ‘List’.

# _embedded.results._embedded.elements[].description.raw
**Description**

**As** na OpenProject user
**I want** to be able to create custom button with links
**so that** I can easily and quickly navigate to the pages of most interest.

The button should be situated next to the Modules button.

# _embedded.results._embedded.elements[].description.html
Description

As na OpenProject user
I want to be able to create custom button with links
so that I can easily and quickly navigate to the pages of most interest.

The button should be situated next to the Modules button.

# _embedded.results._embedded.elements[].description.raw
**As an** administrator of a OpenProject SaaS tenant  
**I like to** be able to see which users I already have invited and to resend invitations.  
**so that** I can better support users which have problems to login.

# _embedded.results._embedded.elements[].description.html
As an administrator of a OpenProject SaaS tenant
I like to be able to see which users I already have invited and to resend invitations.
so that I can better support users which have problems to login.

# _embedded.results._embedded.elements[].description.raw
As a  
user/manager

I like to  
modify the list of watchers when doing bulk edits of work packages.

# _embedded.results._embedded.elements[].description.html
As a
user/manager

I like to
modify the list of watchers when doing bulk edits of work packages.

# _embedded.results._embedded.elements[].subject
Reauthentication ("danger zone") on critical operations

# _embedded.results._embedded.elements[].description.raw
**As an** OpenProjectc.com user  
**I want to** be forced to reauthenticate  
**so that** someone taking over my session can not make those changes and I think twice before making those changes.

**Acceptance criteria**

  - There is a “danger zone” (like in GitHub) for critical commands where the user has to provide his password again such as:
      - Changing email address
      - Changing password
      - Deleting organization
      - Deleting repository
      - \[…\]

**Note**  
This is split off from \#16546

# _embedded.results._embedded.elements[].description.html
As an OpenProjectc.com user
I want to be forced to reauthenticate
so that someone taking over my session can not make those changes and I think twice before making those changes.

Acceptance criteria

There is a “danger zone” (like in GitHub) for critical commands where the user has to provide his password again such as:

Changing email address

Changing password

Deleting organization

Deleting repository

[…]

Note
This is split off from #16546

# _embedded.results._embedded.elements[]._links.self.title
Reauthentication ("danger zone") on critical operations

# _embedded.results._embedded.elements[].description.raw
**As** an OpenProject  
**I want to** have a custom field API endpoint  
**so that** I can easily CRUD custom fields or their values (for list custom fields) via API.

**Acceptance criteria**

*   Custom field API endpoint (administration)

# _embedded.results._embedded.elements[].description.html
As an OpenProject
I want to have a custom field API endpoint
so that I can easily CRUD custom fields or their values (for list custom fields) via API.

Acceptance criteria

Custom field API endpoint (administration)

# _embedded.results._embedded.elements[].subject
Add maximum number of events in activity page

# _embedded.results._embedded.elements[].description.raw
**Current situation**

  - Loading of the page gets very slow if a lot of things happened the last couple of days.

**Expected behavior**

  - There should be a pagination that limits the maximum number of activity items shown on one page.
  - Place menu item “Activities” inside the “Modules” menu (split off of \#20512)
  - Uses aggregated journals (\#\#20690)

**Open**

  - What is a good number of maximum items for one page?

**Out of scope**

  - Styling
  - Configuration

# _embedded.results._embedded.elements[].description.html
Current situation

Loading of the page gets very slow if a lot of things happened the last couple of days.

Expected behavior

There should be a pagination that limits the maximum number of activity items shown on one page.

Place menu item “Activities” inside the “Modules” menu (split off of #20512)

Uses aggregated journals ()

Open

What is a good number of maximum items for one page?

Out of scope

Styling

Configuration

# _embedded.results._embedded.elements[]._links.self.title
Add maximum number of events in activity page

# _embedded.results._embedded.elements[].description.raw
**As** a developer  
**I want** to know when an API endpoint expects a payload  
**so that** I can make sure to properly get the most out of the API

**Acceptance criteria**

  - Link objects specify whether they expect a payload to be transmitted
      - This doesn’t have to be realised via the existing payload attribute
      - A separate (boolean) attribute can be sufficient.
  - Link objects which use the HTTP verbs GET or DELETE cannot receive a payload and therefore don’t necessarily need to specify that they do not expect one.
      - This should be explained at a rather prominent position within the API documentation.

# _embedded.results._embedded.elements[].description.html
As a developer
I want to know when an API endpoint expects a payload
so that I can make sure to properly get the most out of the API

Acceptance criteria

Link objects specify whether they expect a payload to be transmitted

This doesn’t have to be realised via the existing payload attribute

A separate (boolean) attribute can be sufficient.

Link objects which use the HTTP verbs GET or DELETE cannot receive a payload and therefore don’t necessarily need to specify that they do not expect one.

This should be explained at a rather prominent position within the API documentation.

# _embedded.results._embedded.elements[].subject
Remove time sheet information and work package statistics from versions show view

# _embedded.results._embedded.elements[].description.raw
This information does not add any value. We should remove it.

![](Versions_Additional-Information.PNG)

# _embedded.results._embedded.elements[].description.html
This information does not add any value. We should remove it.

# _embedded.results._embedded.elements[]._links.self.title
Remove time sheet information and work package statistics from versions show view

# _embedded.results._embedded.elements[].description.raw
Currently, every plugins wanting to add a configuration setting has to patch OpenProject::Configuration itself leading to high code complexity and the need for changes at multiple places if OpenProject::Configuration ever changes.

One example for this is in the [reporting engine](https://github.com/finnlabs/openproject-reporting/pull/69/files#diff-3a6b42471443f0cca8c239e25b8ecc84R43). This example might also serve as a template for the implementation.

**Acceptance criteria**

  - The core provides an API which the plugins can use to add a configuration setting.

# _embedded.results._embedded.elements[].description.html
Currently, every plugins wanting to add a configuration setting has to patch OpenProject::Configuration itself leading to high code complexity and the need for changes at multiple places if OpenProject::Configuration ever changes.

One example for this is in the reporting engine. This example might also serve as a template for the implementation.

Acceptance criteria

The core provides an API which the plugins can use to add a configuration setting.

# _embedded.results._embedded.elements[].subject
Move tab "Versions" from project settings to the project module

# _embedded.results._embedded.elements[].description.raw
**Current situation**

*   The versions tab provides the following features:
    *   Create versions
    *   Delete versions
    *   Close completed versions
*   There is no overview of the versions accessible from the project module.

**Objectives**

*   Improve usability for users new to OpenProject
*   Reduce maintenance effort for code maintenance by removing duplicate views.

**Acceptance criteria**

*   Move versions table to project module.
*   Add toolbar to versions list with the button “Create”.
*   Add delete button to versions details view.
*   Remove feature “Close completed versions”.

# _embedded.results._embedded.elements[].description.html
Current situation

The versions tab provides the following features:

Create versions

Delete versions

Close completed versions

There is no overview of the versions accessible from the project module.

Objectives

Improve usability for users new to OpenProject

Reduce maintenance effort for code maintenance by removing duplicate views.

Acceptance criteria

Move versions table to project module.

Add toolbar to versions list with the button “Create”.

Add delete button to versions details view.

Remove feature “Close completed versions”.

# _embedded.results._embedded.elements[]._links.self.title
Move tab "Versions" from project settings to the project module

# _embedded.results._embedded.elements[].description.raw
**As** an Open Project User  
**I want** to have the possibility to save Calendar queries  
**So that** the calendar feature would be usable in a much faster way

It would be great to have the possibility to save Calendar filter configuration because as now the calendar function is not very usefull as it take time to configure the filter each time we need different queries.  
It could be great it we can save the queries in the same manner as with Work Packages views.  
As now nobody in our company use the calendar feature as it is too time consuming but it would be helpful to use the feature in order to have a better view of the work packages.

# _embedded.results._embedded.elements[].description.html
As an Open Project User
I want to have the possibility to save Calendar queries
So that the calendar feature would be usable in a much faster way

It would be great to have the possibility to save Calendar filter configuration because as now the calendar function is not very usefull as it take time to configure the filter each time we need different queries.
It could be great it we can save the queries in the same manner as with Work Packages views.
As now nobody in our company use the calendar feature as it is too time consuming but it would be helpful to use the feature in order to have a better view of the work packages.

# _embedded.results._embedded.elements[].description.raw
# Examples

## Team collaboration

*   Show me all work packages that were assigned to me yesterday.
*   Show me all work packages that had a specific status transition
    *   New -&gt; all other status
    *   all other status -&gt; closed
    *   ...
*   Show me all tickets from yesterday a user was involved in (#26324)

## Project management

*   Show me all phases and milestones that were postponed last week (due date has been increased)
*   Show me all rollouts that were deployed last week and all rollouts planned for the next to months (status new, scheduled, to be scheduled).

## Release management

*   Show me all work packages that were planned for a version at a specific time
*   Show me all work packages that were removed from a version since a specific time.
*   Show me all work packages that were added to a version after a specific date.

## **Incident Management**

*   Number of incidents in a specific status at a specific date.
*   Number of work packages that were resolved per day (Status changed from new or in progress to resolved, not from closed to resolved).

## **QA**

*   Number of open bugs at a specific date across a set of projects.
*   Number of work packages that were changed from “developed” to “test failed” per week.

# _embedded.results._embedded.elements[].description.html
Examples

Team collaboration

Show me all work packages that were assigned to me yesterday.

Show me all work packages that had a specific status transition

New -> all other status

all other status -> closed

...

Show me all tickets from yesterday a user was involved in (#26324)

Project management

Show me all phases and milestones that were postponed last week (due date has been increased)

Show me all rollouts that were deployed last week and all rollouts planned for the next to months (status new, scheduled, to be scheduled).

Release management

Show me all work packages that were planned for a version at a specific time

Show me all work packages that were removed from a version since a specific time.

Show me all work packages that were added to a version after a specific date.

Incident Management

Number of incidents in a specific status at a specific date.

Number of work packages that were resolved per day (Status changed from new or in progress to resolved, not from closed to resolved).

QA

Number of open bugs at a specific date across a set of projects.

Number of work packages that were changed from “developed” to “test failed” per week.

# _embedded.results._embedded.elements[].description.raw
**As an** Administrator  
**I want to** define more than referencing and fixing keywords.  
**So that i** can define another keyword with another applied status  
e.g

  - keyword: closes -\> AppliedStatus: closed -\> 100% done
  - keyword: to test -\> AppliedStatus: to test -\> 50% done
  - keyword: in work -\> Applied Status: in work -\> % (no change)
  - keyword: 50%done -\> Applied Staus: (no change) -\> 50% done  
    …

This could be realized with a “+” Button, to add a new keyword for a new status.

# _embedded.results._embedded.elements[].description.html
As an Administrator
I want to define more than referencing and fixing keywords.
So that i can define another keyword with another applied status
e.g

keyword: closes -> AppliedStatus: closed -> 100% done

keyword: to test -> AppliedStatus: to test -> 50% done

keyword: in work -> Applied Status: in work -> % (no change)

keyword: 50%done -> Applied Staus: (no change) -> 50% done
…

This could be realized with a “+” Button, to add a new keyword for a new status.

# _embedded.results._embedded.elements[].subject
Custom fields of type version should include shared versions

# _embedded.results._embedded.elements[].description.raw
**As** an OpenProject user  
**I want** custom fields of type “version” to include versions shared by other projects  
**so that** they can be used in place of versions.

**Acceptance criteria**

  - A custom field of type version includes not only the version of the project itself but also versions which have been shared with the project.
  - The available values for custom fields of type version are the same as for “normal” versions.

# _embedded.results._embedded.elements[].description.html
As an OpenProject user
I want custom fields of type “version” to include versions shared by other projects
so that they can be used in place of versions.

Acceptance criteria

A custom field of type version includes not only the version of the project itself but also versions which have been shared with the project.

The available values for custom fields of type version are the same as for “normal” versions.

# _embedded.results._embedded.elements[]._links.self.title
Custom fields of type version should include shared versions

# _embedded.results._embedded.elements[].description.raw
**As an** OpenProject User  
**I want to** enter a project name in a auto completion field (e.g. Relations, Parent)  
**so that** all/some/the newest workpackages in that project get offered

This would help, if you dont know the exact name of an workpackage, but you know in which project that workpackge is.

# _embedded.results._embedded.elements[].description.html
As an OpenProject User
I want to enter a project name in a auto completion field (e.g. Relations, Parent)
so that all/some/the newest workpackages in that project get offered

This would help, if you dont know the exact name of an workpackage, but you know in which project that workpackge is.

# _embedded.results._embedded.elements[].subject
Assign Custom Fields to sub workpackages

# _embedded.results._embedded.elements[].description.raw
**As an** Open Project User  
**I want to** create a custom field and want to choose if this field gets inherited to sub work packages  
**so that** i can see the the custom field value in the sub workpackage overview

# _embedded.results._embedded.elements[].description.html
As an Open Project User
I want to create a custom field and want to choose if this field gets inherited to sub work packages
so that i can see the the custom field value in the sub workpackage overview

# _embedded.results._embedded.elements[]._links.self.title
Assign Custom Fields to sub workpackages

# _embedded.results._embedded.elements[].subject
Category field (read-only) displayed in split screen/fullscreen when no category exists 

# _embedded.results._embedded.elements[].description.raw
**Preconditions**

  - Work package module activated.
  - No category exists in a project.

**Steps to reproduce**

1.  Open an existing work package in the project (full screen / split screen).
2.  Take a look at the field “Category” and try to edit it.

**Actual behavior**

  - Field category is displayed but cannot be edited.
      - It is unclear to the user why the attribute cannot be edited.

**Expected behavior**

  - Either do not display the category field unless at least one category exists in the project or notify the user why the field cannot be edited (i.e. at least one category needs to exist in the project in order to assign a value).

**Screenshot**  
![](Bug_Category.png)

**QA system**

  - org-dev.qa.finn.de
  - OpenProject 5.0.0

# _embedded.results._embedded.elements[].description.html
Preconditions

Work package module activated.

No category exists in a project.

Steps to reproduce

Open an existing work package in the project (full screen / split screen).

Take a look at the field “Category” and try to edit it.

Actual behavior

Field category is displayed but cannot be edited.

It is unclear to the user why the attribute cannot be edited.

Expected behavior

Either do not display the category field unless at least one category exists in the project or notify the user why the field cannot be edited (i.e. at least one category needs to exist in the project in order to assign a value).

Screenshot

QA system

org-dev.qa.finn.de

OpenProject 5.0.0

# _embedded.results._embedded.elements[]._links.self.title
Category field (read-only) displayed in split screen/fullscreen when no category exists 

# _embedded.results._embedded.elements[].subject
Show logged time (Spent time) in hours and days

# _embedded.results._embedded.elements[].description.raw
**As an** OpenProject user  
**I want to** be able to switch to days  
**so that** I get an better overview of the logged time for large numbers.

**Acceptance criteria**

  - There is a switch between days and hours.
      - Hours
      - Days
  - Roundings to two digits
  - There is a setting how many hours a day has (default 8 hours).
  - Default unit remains hours

# _embedded.results._embedded.elements[].description.html
As an OpenProject user
I want to be able to switch to days
so that I get an better overview of the logged time for large numbers.

Acceptance criteria

There is a switch between days and hours.

Hours

Days

Roundings to two digits

There is a setting how many hours a day has (default 8 hours).

Default unit remains hours

# _embedded.results._embedded.elements[]._links.self.title
Show logged time (Spent time) in hours and days

# _embedded.results._embedded.elements[].description.raw
Currently we have a cron job running dealing with incoming emails. We should make this happen in real time because it’s somehow confusing in the use-case where you just answered to a work package but then go there and you can’t see your comment.

# _embedded.results._embedded.elements[].description.html
Currently we have a cron job running dealing with incoming emails. We should make this happen in real time because it’s somehow confusing in the use-case where you just answered to a work package but then go there and you can’t see your comment.

# _embedded.results._embedded.elements[].subject
Copy project budget when copying a project

# _embedded.results._embedded.elements[].description.raw
**As a** project portfolio manager  
**I want** to select budgets to be copied when copying projects  
**so that** I can more easily create new projects based on a template.


> Former bug description  
> Current behavior: Work packages in the original project which had a budget assigned are not copied to the new project.  
> Expected behavior: All work packages are copied without a budget.

# _embedded.results._embedded.elements[].description.html
As a project portfolio manager
I want to select budgets to be copied when copying projects
so that I can more easily create new projects based on a template.

Former bug description
Current behavior: Work packages in the original project which had a budget assigned are not copied to the new project.
Expected behavior: All work packages are copied without a budget.

# _embedded.results._embedded.elements[]._links.self.title
Copy project budget when copying a project

# _embedded.results._embedded.elements[].description.raw
  - Show logged users in the project members table.
  - Indicate them as logged (styled similar to invited users).

# _embedded.results._embedded.elements[].description.html
Show logged users in the project members table.

Indicate them as logged (styled similar to invited users).

# _embedded.results._embedded.elements[].subject
Avoid confirmation dialog in WP edit when no content was added

# _embedded.results._embedded.elements[].description.raw
The following line sets wiki-textareas to dirty/changed immediately after their creation, resulting in the ‘confirm unsaved changes’ dialog in the force edit mode, even when no data has been entered.

Additionally, the dialog is not shown when the cancel button is shown. This is somewhat inconsistent and I suggest that we correct both these behaviors.

More information:  
Relevant line that sets the textarea to changed: https://github.com/opf/openproject/blob/dev/frontend/app/components/inplace-edit/directives/field-edit/edit-wiki-textarea/edit-wiki-textarea.directive.js\#L48

# _embedded.results._embedded.elements[].description.html
The following line sets wiki-textareas to dirty/changed immediately after their creation, resulting in the ‘confirm unsaved changes’ dialog in the force edit mode, even when no data has been entered.

Additionally, the dialog is not shown when the cancel button is shown. This is somewhat inconsistent and I suggest that we correct both these behaviors.

More information:
Relevant line that sets the textarea to changed: https://github.com/opf/openproject/blob/dev/frontend/app/components/inplace-edit/directives/field-edit/edit-wiki-textarea/edit-wiki-textarea.directive.js#L48

# _embedded.results._embedded.elements[]._links.self.title
Avoid confirmation dialog in WP edit when no content was added

# _embedded.results._embedded.elements[].subject
Work package autocompletion loading indicator

# _embedded.results._embedded.elements[].description.raw
The state of work package autocompletion is unclear when the latency until the server responds is non-negligible.

The autocompletion should feature a loading indicator to communicate the current state.

# _embedded.results._embedded.elements[].description.html
The state of work package autocompletion is unclear when the latency until the server responds is non-negligible.

The autocompletion should feature a loading indicator to communicate the current state.

# _embedded.results._embedded.elements[]._links.self.title
Work package autocompletion loading indicator

# _embedded.results._embedded.elements[].description.raw
Ich wünsche mir, das man eine Übersicht über die Forenbeiträge aus den Projekten in der “Meine Seite” Übersicht anzeigen lassen kann.

Man könnte noch Filter hinzufügen wie:

1.  Alle letzten Beiträge
2.  Nur abonnierte Beiträge
3.  Nur Beiträge bei denen man sich selbst Beteiligt hat

# _embedded.results._embedded.elements[].description.html
Ich wünsche mir, das man eine Übersicht über die Forenbeiträge aus den Projekten in der “Meine Seite” Übersicht anzeigen lassen kann.

Man könnte noch Filter hinzufügen wie:

Alle letzten Beiträge

Nur abonnierte Beiträge

Nur Beiträge bei denen man sich selbst Beteiligt hat

# _embedded.results._embedded.elements[].description.raw
In my department, we have something like 50 “Projects” with various “Work Orders” associated. We have to give monthly updates to both our users and upper management on progress and estimates of completion. Our IT department really likes the Timeline feature in OpenProject, however, it requires us to provide hard dates for Work Orders. That is not possible for us, as we are also a responsive team. It would be really be handy if we could instead set an estimated number of work-hours required (along with work-hours available) and have the timeline adjust accordingly, based on project priority and dependency.

Thanks\!  
Kendell

# _embedded.results._embedded.elements[].description.html
In my department, we have something like 50 “Projects” with various “Work Orders” associated. We have to give monthly updates to both our users and upper management on progress and estimates of completion. Our IT department really likes the Timeline feature in OpenProject, however, it requires us to provide hard dates for Work Orders. That is not possible for us, as we are also a responsive team. It would be really be handy if we could instead set an estimated number of work-hours required (along with work-hours available) and have the timeline adjust accordingly, based on project priority and dependency.

Thanks!
Kendell

# _embedded.results._embedded.elements[].description.raw
Hi All,

I know I’m being a pain this morning…I’d trade you places in a heartbeat :)

It would be nice if, when a Project or Work Package was updated, the email notifications came from the user, and not the general email address (i.e. currently I use “administrator@mycompany.com” but I’d rather it come from the user’s own email address, so any email replies went to it.) It could even be an optional setting at either the Project or Work Package level…one checkbox wouldn’t kill me.

Thanks\!  
Kendell

# _embedded.results._embedded.elements[].description.html
Hi All,

I know I’m being a pain this morning…I’d trade you places in a heartbeat :)

It would be nice if, when a Project or Work Package was updated, the email notifications came from the user, and not the general email address (i.e. currently I use “administrator@mycompany.com” but I’d rather it come from the user’s own email address, so any email replies went to it.) It could even be an optional setting at either the Project or Work Package level…one checkbox wouldn’t kill me.

Thanks!
Kendell

# _embedded.results._embedded.elements[].description.raw
**As an** User  
**I want to** define that specific workpackages (types) can have just childs of specific workpackages (types)  
**So that i** can ensure a high methodical consistency of the workpackage hierarchy

use case (example):

  - a user wants do define three types of a workpackage (“a”, “b”, “c”)
      - “a” can only have “a” and “b” as child (nice to have: + “a” can not be without child)
      - “b” can only have “c” as child
      - “c” can not have any childs

https://community.openproject.org/topics/5921 (the “verion-issue” mentioned in this discussion as well isn’t that important)

# _embedded.results._embedded.elements[].description.html
As an User
I want to define that specific workpackages (types) can have just childs of specific workpackages (types)
So that i can ensure a high methodical consistency of the workpackage hierarchy

use case (example):

a user wants do define three types of a workpackage (“a”, “b”, “c”)

“a” can only have “a” and “b” as child (nice to have: + “a” can not be without child)

“b” can only have “c” as child

“c” can not have any childs

https://community.openproject.org/topics/5921 (the “verion-issue” mentioned in this discussion as well isn’t that important)

# _embedded.results._embedded.elements[].subject
Make Open Project quick via Keyboard operations

# _embedded.results._embedded.elements[].description.raw
Being quick, or allowing the manipulation of work packages with as little friction as possible is important for project managers that don’t want to spend too much time in their project management software, and more actually doing actual work.



There are dozens of feature requests that [relate to keyboard shortcuts](https://community.openproject.org/projects/openproject/search?q=keyboard&scope=current_project&work_packages=1)



The current shortcut features in Open Project are limited to a small subset of navigation tasks and lack a focus on improving the speed to complete everyday tasks.



With the new Details view of the Work packages list, being able to do Work packages input and editing with only the keyboard becomes a clear possibility and would improve user experience when doing issue gardening, team reviews, new project setup or managing backlogs. It would probably allow to multiply the speed of creating and modifying issues by 5 to 10 times. An example of software which achieves this kind of agility on the keyboard is Asana. Here’s their [list of keyboard shortcuts](https://asana.com/guide/help/faq/shortcuts) and a [video which demonstrate a small subset of these shorcuts](https://fast.wistia.net/embed/iframe/2vnjo063z6)



A proposed approach could be to first focus on a typical user path such as:  

\- Login  

\- Project selection  

\- Work package view  

\- New WP in the package view  

\- Completion of WP fields and submission  

\- Navigation to other WP, edition and submission



A low hanging fruit approach to this could be to focus first only on the Work package details view and allow:  

\- Up and down arrows to WP  

\- Right arrow to focus the WP Edit box  

\- Left arrow to go back to the list (bonus point, left again would focus on the Project menu and allow up and down navigation between the Project modules)  

\- Tab to move between fields in the WP Edit box (This is pretty much already good apart from small details like when in edit mode, tab moving in the description box’s wysiwyg icons or multiple tab being needed to move forward from certain fields like Author)  

\- Ctrl-Enter to Save  

\- Esc to Cancel (this would be a good one to enforce with all shortcut, for instance if one uses the current Search shortcut then they are locked inside the search box having to reach for the mouse to cancel the action).



Hope this is helpful somehow and will be in a future release\!



Cheers,



Jun  

PS: Just reached subconsciously for Ctrl-Enter to Save this post… which didn’t work :)

# _embedded.results._embedded.elements[].description.html
Being quick, or allowing the manipulation of work packages with as little friction as possible is important for project managers that don’t want to spend too much time in their project management software, and more actually doing actual work.

There are dozens of feature requests that relate to keyboard shortcuts

The current shortcut features in Open Project are limited to a small subset of navigation tasks and lack a focus on improving the speed to complete everyday tasks.

With the new Details view of the Work packages list, being able to do Work packages input and editing with only the keyboard becomes a clear possibility and would improve user experience when doing issue gardening, team reviews, new project setup or managing backlogs. It would probably allow to multiply the speed of creating and modifying issues by 5 to 10 times. An example of software which achieves this kind of agility on the keyboard is Asana. Here’s their list of keyboard shortcuts and a video which demonstrate a small subset of these shorcuts

A proposed approach could be to first focus on a typical user path such as:
- Login
- Project selection
- Work package view
- New WP in the package view
- Completion of WP fields and submission
- Navigation to other WP, edition and submission

A low hanging fruit approach to this could be to focus first only on the Work package details view and allow:
- Up and down arrows to WP
- Right arrow to focus the WP Edit box
- Left arrow to go back to the list (bonus point, left again would focus on the Project menu and allow up and down navigation between the Project modules)
- Tab to move between fields in the WP Edit box (This is pretty much already good apart from small details like when in edit mode, tab moving in the description box’s wysiwyg icons or multiple tab being needed to move forward from certain fields like Author)
- Ctrl-Enter to Save
- Esc to Cancel (this would be a good one to enforce with all shortcut, for instance if one uses the current Search shortcut then they are locked inside the search box having to reach for the mouse to cancel the action).

Hope this is helpful somehow and will be in a future release!

Cheers,

Jun
PS: Just reached subconsciously for Ctrl-Enter to Save this post… which didn’t work :)

# _embedded.results._embedded.elements[]._links.self.title
Make Open Project quick via Keyboard operations

# _embedded.results._embedded.elements[].description.raw
Allowing to synchronise Tasks (or a configurable set of WP Types) and Events to a CalDav server would open up the possibility to use CalDav compliant apps for managing tasks (with DavDroid/OpenTasks on Android 2Do on OsX and iOS). Projects could be CalDav Task Lists (flattening the hierarchy).

# _embedded.results._embedded.elements[].description.html
Allowing to synchronise Tasks (or a configurable set of WP Types) and Events to a CalDav server would open up the possibility to use CalDav compliant apps for managing tasks (with DavDroid/OpenTasks on Android 2Do on OsX and iOS). Projects could be CalDav Task Lists (flattening the hierarchy).

# _embedded.results._embedded.elements[].description.raw
It would be great to have OP integrate with Slack for chat and as an option when watching tasks  
  
Additional request (by a user):

*   Allow the creation of work packages from Slack.

# _embedded.results._embedded.elements[].description.html
It would be great to have OP integrate with Slack for chat and as an option when watching tasks

Additional request (by a user):

Allow the creation of work packages from Slack.

# _embedded.results._embedded.elements[].subject
Remaining work should be calculated based on work and logged time

# _embedded.results._embedded.elements[].description.raw
**As** an OpenProject user  
**I want** remaining hours to be calculated based on the difference of estimated time and logged time (on the work package)  
**so that** I have an automatic way to calculate the remaining time.

**Acceptance criteria**

*   [x] When _Work_ is set for a work package, _Remaining work_ should be set accordingly. 
*   [ ] When time is logged on the work package, the _Remaining work_ should be reduced accordingly (_Remaining work_ = _Work_ - _Logged time_).
*   [ ] When _Work_ is edited, the _Remaining work_ should be adjusted accordingly.
*   [ ] When a user logs time on a work package the user can decide to reduce the _Remaining work_ accordingly.
*   [ ] All values need to be shown in one modal view (similar to the duration in the date picker)
    *   [ ] Work
    *   [ ] Spent time
    *   [ ] % Complete
    *   [ ] Remaining work
*   [ ] Spent time can be higher than estimated time. Example
    *   [ ] Logged time: 50 h
    *   [ ] Work: 40 h
    *   [ ] Remaining work: 0 h
*   [ ] Remaining work can not be higher than Work

# _embedded.results._embedded.elements[].description.html
As an OpenProject user
I want remaining hours to be calculated based on the difference of estimated time and logged time (on the work package)
so that I have an automatic way to calculate the remaining time.

Acceptance criteria

When Work is set for a work package, Remaining work should be set accordingly.

When time is logged on the work package, the Remaining work should be reduced accordingly (Remaining work = Work - Logged time).

When Work is edited, the Remaining work should be adjusted accordingly.

When a user logs time on a work package the user can decide to reduce the Remaining work accordingly.

All values need to be shown in one modal view (similar to the duration in the date picker)

Work

Spent time

% Complete

Remaining work

Spent time can be higher than estimated time. Example

Logged time: 50 h

Work: 40 h

Remaining work: 0 h

Remaining work can not be higher than Work

# _embedded.results._embedded.elements[]._links.self.title
Remaining work should be calculated based on work and logged time

# _embedded.results._embedded.elements[].subject
Google / Outlook calendar synchronization with OpenProject calendar

# _embedded.results._embedded.elements[].description.raw
The ability to organize and comunicate with all the team involved in the activities of a project is a very important task during Project planning.  
A very interesting add-on for OpenProject would be a couple of functions which allow to syncronize the project calendar with both a user calendar (i.e. google) or a shared one.  
Let’s start the discussion about this feature\!

# _embedded.results._embedded.elements[].description.html
The ability to organize and comunicate with all the team involved in the activities of a project is a very important task during Project planning.
A very interesting add-on for OpenProject would be a couple of functions which allow to syncronize the project calendar with both a user calendar (i.e. google) or a shared one.
Let’s start the discussion about this feature!

# _embedded.results._embedded.elements[]._links.self.title
Google / Outlook calendar synchronization with OpenProject calendar

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._embedded.query.name
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._embedded.query._links.self.title
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._links.query.title
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._embedded.query.name
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._embedded.query._links.self.title
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._links.query.title
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._embedded.query.name
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._embedded.query._links.self.title
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._links.query.title
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._embedded.query.name
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._embedded.query._links.self.title
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._links.query.title
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._embedded.query.name
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._embedded.query._links.self.title
Embedded table: Bugs and other work packages

# _embedded.results._embedded.schemas._embedded.elements[]._attributeGroups[]._links.query.title
Embedded table: Bugs and other work packages