Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/release/14.2' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
oliverguenther committed Jun 17, 2024
2 parents a6b449c + 3bba924 commit 8461369
Show file tree
Hide file tree
Showing 48 changed files with 242 additions and 62 deletions.
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ gem "dry-container"
gem "store_attribute", "~> 1.0"

# Appsignal integration
gem "appsignal", "~> 3.0", require: false
gem "appsignal", "~> 3.8.1", require: false

gem "view_component"
# Lookbook
Expand Down
4 changes: 2 additions & 2 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@ GEM
airbrake-ruby (6.2.2)
rbtree3 (~> 0.6)
android_key_attestation (0.3.0)
appsignal (3.7.6)
appsignal (3.8.1)
rack
ast (2.4.2)
attr_required (1.0.2)
Expand Down Expand Up @@ -1159,7 +1159,7 @@ DEPENDENCIES
acts_as_tree (~> 2.9.0)
addressable (~> 2.8.0)
airbrake (~> 13.0.0)
appsignal (~> 3.0)
appsignal (~> 3.8.1)
auto_strip_attributes (~> 2.5)
awesome_nested_set (~> 3.6.0)
aws-sdk-core (~> 3.107)
Expand Down
2 changes: 1 addition & 1 deletion app/components/projects/table_component.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -104,5 +104,5 @@ See COPYRIGHT and LICENSE files for more details.
</div>

<% if paginated? %>
<%= helpers.pagination_links_full model, allowed_params: %i[query_id filters columns sortBy] %>
<%= helpers.pagination_links_full model, pagination_options %>
<% end %>
16 changes: 14 additions & 2 deletions app/components/projects/table_component.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ class TableComponent < ::TableComponent
options :current_user # adds this option to those of the base class
options :query

def initialize(**options)
super(rows: [], **options)
def initialize(**)
super(rows: [], **)
end

def before_render
Expand Down Expand Up @@ -82,6 +82,18 @@ def paginated?
true
end

def pagination_options
default_pagination_options.merge(optional_pagination_options)
end

def default_pagination_options
{ allowed_params: %i[query_id filters columns sortBy] }
end

def optional_pagination_options
{}
end

def deactivate_class_on_lft_sort
if sorted_by_lft?
"spot-link_inactive"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@

dialog.with_header(
show_divider: false,
visually_hide_title: false
visually_hide_title: false,
variant: :large
)

primer_form_with(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,23 @@ def columns
def sortable?
false
end

# @override optional_pagination_options are passed to the pagination_options
# which are passed to #pagination_links_full in pagination_helper.rb
#
# In Turbo streamable components, we need to be able to specify the url_for(action:) so that links are
# generated in the context of the component index action, instead of any turbo stream actions performing
# partial updates on the page.
#
# params[:url_for_action] is passed to the pagination_options making it's way down to any pagination links
# that are generated via link_to which calls url_for which uses the params[:url_for_action] to specify
# the controller action that link_to should use.
#
def optional_pagination_options
return super unless params[:url_for_action]

super.merge(params: { action: params[:url_for_action] })
end
end
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def link
include_sub_projects: include_sub_projects?)
.call

create_service.on_success { render_project_list }
create_service.on_success { render_project_list(url_for_action: :project_mappings) }

create_service.on_failure do
update_flash_message_via_turbo_stream(
Expand All @@ -96,7 +96,7 @@ def unlink
.new(user: current_user, model: @project_custom_field_mapping)
.call

delete_service.on_success { render_project_list }
delete_service.on_success { render_project_list(url_for_action: :project_mappings) }

delete_service.on_failure do
update_flash_message_via_turbo_stream(
Expand Down Expand Up @@ -147,7 +147,7 @@ def destroy

private

def render_project_list
def render_project_list(url_for_action: action_name)
update_via_turbo_stream(
component: Settings::ProjectCustomFields::ProjectCustomFieldMapping::NewProjectMappingComponent.new(
project_mapping: ProjectCustomFieldProjectMapping.new(project_custom_field: @custom_field),
Expand All @@ -157,7 +157,7 @@ def render_project_list
update_via_turbo_stream(
component: Settings::ProjectCustomFields::ProjectCustomFieldMapping::TableComponent.new(
query: project_custom_field_mappings_query,
params: { custom_field: @custom_field }
params: { custom_field: @custom_field, url_for_action: }
)
)
end
Expand Down
4 changes: 2 additions & 2 deletions docs/glossary/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ In OpenProject, a [project](../user-guide/projects/) is defined as an individual

### Project attribute

A project attribute in OpenProject is a [custom field](#custom-field) that applies to an entire project. It is displayed in the right-hand column on the project overview page and can be divided into sections for a better structure.
A project attribute in OpenProject is a [custom field](#custom-field) that applies to an entire project. It is displayed in the right-hand column on the project overview page and can be divided into sections for a better structure. Project attributes can be activated and deactivated either on the respective [project overview](#project-overview) page or, for managing multiple projects at once, in the global administration.

### Project folder

Expand Down Expand Up @@ -405,7 +405,7 @@ In OpenProject, a wiki is defined as a [module](#module) that allows to use wiki

### Work, Remaining Work and % Complete

In OpenProject, '**Work**' refers to a work package attribute indicating the estimated hours needed to complete a task.
In OpenProject, '**Work**' refers to a work package attribute indicating the estimated hours and days needed to complete a task.
'**Remaining work**' is a work package attribute that shows how much work is left to finish the work package. It is automatically calculated if you work with [status-based progress reporting](../user-guide/time-and-costs/progress-tracking/#status-based-progress-reporting). And '**% Complete**' is an automatically calculated work package attribute that shows in percentage how much work is already completed. All three attributes are important for [progress reporting with OpenProject](https://www.openproject.org/blog/changes-progress-work-estimates/).

To make it easier for project managers to work with work package hierarchies, OpenProject also displays a value (in blue) for the total amount of work in the Work field for parent work packages – next to the value for the dedicated work package. This **total work value** is the sum of the work value of the parent work package and all the work values of its children. The same principle applies to the work package attribute Remaining Work. [Read in our user guide about how to configure a work package](../user-guide/work-packages/work-package-table-configuration/)
Expand Down
6 changes: 3 additions & 3 deletions docs/release-notes/12/12-3-0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ We have now released [OpenProject 12.3.0](https://community.openproject.org/vers

This release **improves the scheduling of work packages significantly** and will consequently save you a lot of time and make your scheduling more accurate.

With OpenProject 12.3, administrators can define the [global work week](../../../system-admin-guide/calendars-and-dates/#working-days). That means which days of the week are working days and which are non-working days. The default setting for the work week is Monday-Friday. But you can set it according to your needs and define work week and weekends as needed.
With OpenProject 12.3, administrators can define the [global work week](../../../system-admin-guide/calendars-and-dates/#working-days-and-hours). That means which days of the week are working days and which are non-working days. The default setting for the work week is Monday-Friday. But you can set it according to your needs and define work week and weekends as needed.

OpenProject 12.3 also adds [duration](../../../user-guide/work-packages/set-change-dates/#duration) to work packages. Thereby, the duration is bound to the start and the finish date.

Expand All @@ -32,7 +32,7 @@ This helps you to create more accurate project schedules and avoid having start

![work-week-administration](work-week-administration.png)

You can find out [how to set working and non-working days](../../../system-admin-guide/calendars-and-dates/#working-days) and [how to schedule your work packages within and without working and non-working days](../../../user-guide/work-packages/set-change-dates/#working-days) in our documentation.
You can find out [how to set working and non-working days](../../../system-admin-guide/calendars-and-dates/#working-days-and-hours) and [how to schedule your work packages within and without working and non-working days](../../../user-guide/work-packages/set-change-dates/#working-days) in our documentation.

## Duration of work packages

Expand Down Expand Up @@ -66,7 +66,7 @@ These changes to scheduling will not impact work packages created before the rel

## Tool tips for most essential actions

The new and additional tool tips in the OpenProject application will make the navigation easier for users that are not yet very familiar with OpenProject. The tool tips make clear what happens when the user clicks on a certain button.
The new and additional tool tips in the OpenProject application will make the navigation easier for users that are not yet very familiar with OpenProject. The tool tips make clear what happens when the user clicks on a certain button.

![hover over select a project and tool tip view all projects comes up](tool-tip.png)

Expand Down
78 changes: 68 additions & 10 deletions docs/release-notes/14-2-0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,74 @@ title: OpenProject 14.2.0
sidebar_navigation:
title: 14.2.0
release_version: 14.2.0
release_date: 2024-06-07
release_date: 2024-06-19
---

# OpenProject 14.2.0

Release date: 2024-06-19

We released [OpenProject 14.2.0](https://community.openproject.org/versions/2040).
The release contains several bug fixes and we recommend updating to the newest version.
We released [OpenProject 14.2.0](https://community.openproject.org/versions/2040). The release contains several bug fixes and we recommend updating to the newest version. In these Release Notes, we will give an overview of important feature changes. At the end, you will find a complete list of all changes and bug fixes.

## Important updates and breaking changes
## Important feature changes

<!-- Remove this section if empty, add to it in pull requests linking to tickets and provide information -->
### Display Work and Remaining work in days and hours

<!--more-->
With OpenProject 14.2, we enhanced the accuracy of progress reporting. Previously, time for Work, Remaining work, and spent time could only be specified in hours. Now, it is also possible to specify these units in days. Administrators of the instance can set the number of hours that constitute a day under administration/calendars-and-dates.

A work package table displaying Work and Remaining work might now look like this:

![Work package table showing Work and Remaining work in days and hours](openproject-14-2-progress-reporting-work-package-table-highlighted.png)

For more information, see [#50954](https://community.openproject.org/wp/50954).

### Exclude by status some work packages from the calculation of totals for % Complete and work estimates

Project managers can now exclude rejected or duplicate work packages from the calculation of total Work, total Remaining work and total % Complete for the parent / ancestors work packages. This allows them to clean up estimates and progress when rejecting child work packages or marking them as duplicates.

Learn more in our [documentation about work package settings](https://www.openproject.org/docs/system-admin-guide/manage-work-packages/work-package-settings/).

### Warn admins about potential data loss when changing progress calculation modes

To avoid loosing data when switching from Work- to Status-based progress calculation, OpenProject will now show you a warning banner if you select a different mode than the current. If you switch from Work- to Status-based progress calculation, please note that:

* Existing % Complete values are overwritten by status (or set to 0 when a corresponding value does not exist).

* Remaining work is automatically updated.

![Warning banner when changing progress reporting from work-based to status-based](openproject-14-2-changing-work-based-status-based-progress-reporting.png)

### Configure which projects are activated for a project attribute

With OpenProject 14.2, administrators can now save time by enabling or disabling project attributes across multiple projects simultaneously. For instance, if you want to adjust the 'Due date' attribute for all projects, the setting looks like this:

![Configure which projects are activated for a project attribute](openproject-14-2-project-attributes-settings-highlighted.png)

In the screenshot, the three-dot menu on the right is selected. With one click, you can deactivate the attribute for the entire project and its subprojects.

### Avoid redundant emails in case of @mentions and email reminder

With the release of OpenProject 14.2, we avoid sending redundand emails: Users who are @mentioned in a work package will still receive immediate emails based on their email reminder settings. But if an email has already been sent for an @mention (assuming the user has activated the option ‘Immediately when someone @mentions me’ in the email notifications), subsequent notifications with mentions as the primary reason will not be included in the email reminder.

### Allow renaming persisted project lists

Regarding project portfolio management, users can now not only create and save a private custom project list, but also rename it. This saves time since previously, you would have had to create a new project list to change the name.

![Rename private persisted project lists](openproject-14-2-rename-persisted-lists.png)

### Allow meeting invite to be sent out when creating meetings

The Meeting module has been further improved with OpenProject 14.2: When users create a new meeting in OpenProject, they will now see a checkbox allowing them to choose whether to email the invited users. If checked, OpenProject will send invitation emails to all new participants.

![Checkbox on OpenProject's Meetings module to send emails upon creating a new meeting](openproject-14-2meeting-invitation-mail-highlighted.png)

In addition to this feature, the default view for meetings module was changed to display the upcoming invitations.

### Embedded work package attributes in PDF export

With OpenProject 14.2, [embedded attributes within a work package description](https://www.openproject.org/docs/user-guide/wysiwyg/#embedding-of-work-package-attributes-and-project-attributes) (and long text custom fields) are displayed in the PDF export as on OpenProject. This means you can reference values from work packages with placeholders, and on export these are replaced by their actual value of a project or work package attributes.

![Two screenshos, one showing embedded work package attributes and the other the exported PDF](openproject-14-2-pdf-export-attributes.png)

## Bug fixes and changes

Expand Down Expand Up @@ -61,9 +114,14 @@ The release contains several bug fixes and we recommend updating to the newest v
<!-- END AUTOMATED SECTION -->
<!-- Warning: Anything above this line will be automatically removed by the release script -->

#### Contributions
A big thanks to community members for reporting bugs and helping us identifying and providing fixes.
## Contributions
A very special thank you goes to our sponsors for features and improvements of this release:

- German Federal Ministry of the Interior and Home Affairs (BMI) for sponsoring the features on progress reporting
- City of Cologne for sponsoring features on project attributes

Also a big thanks to our Community members for reporting bugs and helping us identify and provide fixes. Special thanks for reporting and finding bugs go to Ricardo Brenner and Sven Kunze.

Special thanks for reporting and finding bugs go to
Last but not least, we are very grateful for our very engaged translation contributors on Crowdin, who translated quite a few OpenProject strings! This release we would like to highlight user [aniessalam](https://crowdin.com/profile/aniessalam) who has done an outstanding number of translations for the Malay language in recent weeks.

Ricardo Brenner, Sven Kunze
Would you like to help out with translations yourself? Then take a look at our [translation guide](https://www.openproject.org/docs/development/translate-openproject) and find out exactly how you can contribute. It is very much appreciated!
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions docs/system-admin-guide/calendars-and-dates/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,19 @@ Navigate to **Administration → Calendar and dates**.

| Topic | Content |
| ------------------------------------------------- | ------------------------------------------------------------ |
| [Working days](#working-days) | Define which days of the week are considered working days for scheduling and calculation of duration. |
| [Working days](#working-days-and-hours) | Define which days of the week are considered working days for scheduling and calculation of duration. |
| [Date format](#date-format) | Change time and date formats. |
| [Calendar subscriptions](#calendar-subscriptions) | Allow users to subscribe to calendars. |

## Working days
## Working days and hours

Administrators are able to define which days of the week are considered working days at an instance level. In other words, this setting defines what OpenProject should consider to be a normal work week when scheduling work packages.
Administrators are able to define how many hours are considered a day and which days of the week are considered working days at an instance level. In other words, this setting defines what OpenProject should consider to be a normal work week when scheduling work packages.

To change this setting, navigate to **Working days** inside of the **Calendar and dates** settings.

> **Note:** By default, the five days from Monday–Friday are considered working days, and Saturday and Sunday are considered non-working days.
> **Note:** By default, a working day is considered to have 8 hours, the five days from Monday–Friday are considered working days, and Saturday and Sunday are considered non-working days.
![The 'Working days' entry in Calendar and dates settings ](admin-working-days.png)
![The 'Working days' entry in Calendar and dates settings ](admin-working-days-hours.png)

To change this setting, unselect days that you would like to define as non-working, and select ones that you would like to consider working, and click on **Save**.

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/system-admin-guide/calendars-and-dates/date-format.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 8461369

Please sign in to comment.