Skip to content

Commit 2ca2e9a

Browse files
Release OpenProject 15.4.2
2 parents 39f86a4 + 57fe1e8 commit 2ca2e9a

File tree

41 files changed

+265
-87
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+265
-87
lines changed

Diff for: app/components/work_packages/date_picker/form_component.html.erb

-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
qa_selected: !schedule_manually
4040
},
4141
test_selector: "op-datepicker-modal--scheduling_automatic",
42-
disabled: work_package.new_record?,
4342
label: I18n.t("work_packages.datepicker_modal.mode.automatic"),
4443
selected: !schedule_manually
4544
)

Diff for: app/models/work_package/pdf_export/work_package_list_to_pdf.rb

+5-1
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,15 @@ def initialize(object, options = {})
7474
end
7575

7676
def get_columns
77-
return [] if query.column_names.empty? && wants_report?
77+
return [] if wants_report? && without_columns?
7878

7979
super
8080
end
8181

82+
def without_columns?
83+
ActiveModel::Type::Boolean.new.cast(options[:no_columns])
84+
end
85+
8286
def export!
8387
file = render_work_packages query.results.work_packages
8488
success(file)

Diff for: app/services/work_packages/create_service.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,13 @@ def create(attributes, work_package)
6060
end
6161

6262
if result.success?
63-
result.merge!(reschedule_related(work_package))
64-
63+
# update ancestors before rescheduling, as the parent might switch to automatic mode
6564
update_ancestors_all_attributes(result.all_results).each do |ancestor_result|
6665
result.merge!(ancestor_result)
6766
end
6867

68+
result.merge!(reschedule_related(work_package))
69+
6970
set_user_as_watcher(work_package)
7071
end
7172

Diff for: app/views/admin/settings/work_package_priorities/edit.html.erb

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@ See COPYRIGHT and LICENSE files for more details.
4343
end
4444
%>
4545

46-
<%= primer_form_with(model: @enumeration, url: url_for(action: :update, id: @enumeration)) do |f| %>
46+
<%= primer_form_with(model: @enumeration, scope: :enumeration, url: url_for(action: :update, id: @enumeration)) do |f| %>
4747
<%= render(Admin::Enumerations::ItemForm.new(f)) %>
4848
<% end %>

Diff for: config/initializers/retry_failed_jobs_with_name_error.rb

+10-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
Rails.application.configure do
3232
config.after_initialize do
33-
# Retry jobs that failed with "NameError: uninitialized constant ...Job" as
33+
# Retry jobs that failed with "NameError: uninitialized constant ..." as
3434
# the worker may have failed to load it because the job class did not exist
3535
# at the time of execution. This can happen on upgrades when the worker is
3636
# still running the previous version while a migration is enqueuing jobs defined
@@ -42,8 +42,15 @@
4242

4343
GoodJob::Job
4444
.discarded
45-
.where("error LIKE ?", "NameError: uninitialized constant %Job")
46-
.find_each do |job|
45+
.where("error LIKE ?", "NameError: uninitialized constant %")
46+
.filter do |job|
47+
# Only retry jobs with NameError related to the job class name.
48+
# For instance, error is "NameError: uninitialized constant WorkPackages::AutomaticMode"
49+
# and the job class name is "WorkPackages::AutomaticMode::MigrateValuesJob".
50+
name = job.error.delete_prefix("NameError: uninitialized constant ")
51+
job.job_class.include?(name)
52+
end # rubocop:disable Style/MultilineBlockChain
53+
.each do |job|
4754
job.retry_job
4855
Rails.logger.info("Successfully enqueued job for retry #{job.display_name} (job id: #{job.id})")
4956
rescue StandardError => e

Diff for: config/locales/crowdin/cs.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ cs:
346346
placeholder: "Nový seznam projektů"
347347
delete_modal:
348348
title: "Odstranit seznam projektů"
349-
heading: "Delete this project list?"
349+
heading: "Smazat tento seznam projektů?"
350350
text: "Tato akce neodstraní žádný projekt, který seznam obsahuje. Opravdu chcete tento seznam projektů smazat?"
351351
settings:
352352
change_identifier: Změnit identifikátor
@@ -492,7 +492,7 @@ cs:
492492
my:
493493
access_token:
494494
create_dialog:
495-
title: Token generated
495+
title: Token vygenerován
496496
header: '%{type} token byl vygenerován'
497497
warning: Note that this is the only time you will see this token, make sure to copy it now.
498498
errors:

Diff for: config/locales/crowdin/de.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -4375,7 +4375,7 @@ de:
43754375
enterprise_features:
43764376
baseline_comparison: Grundlinie (Planungsvergleich)
43774377
board_view: Board Ansicht
4378-
conditional_highlighting: Conditional Highlighting
4378+
conditional_highlighting: Bedingte Hervorhebung
43794379
custom_actions: Benutzerdefinierte Aktionen
43804380
custom_field_hierarchies: Selbstdefinierte Felder vom Typ Hierarchie
43814381
customize_life_cycle: Projektlebenszyklus anpassen
@@ -4395,4 +4395,4 @@ de:
43954395
virus_scanning: Virus-Scan von Anhängen
43964396
work_package_query_relation_columns: Arbeitspaket-Relationsspalten
43974397
work_package_sharing: Teilen von Arbeitspaketen
4398-
work_package_subject_generation: Work Package Subject Generation
4398+
work_package_subject_generation: Arbeitspaket-Betreff Generierung

Diff for: config/locales/crowdin/js-ru.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -995,7 +995,7 @@ ru:
995995
manually_sorted: "Новый запрос с ручной сортировкой"
996996
latest_activity: "Последние действия"
997997
created_by_me: "Создано мной"
998-
assigned_to_me: "Предназначено для меня"
998+
assigned_to_me: "Назначены мне"
999999
recently_created: "Недавно созданное"
10001000
all_open: "Все открытые"
10011001
overdue: "Просрочено"

Diff for: config/locales/crowdin/js-tr.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ tr:
506506
label_sort_lower: "Aşağı taşı"
507507
label_sorting: "Sıralama"
508508
label_spent_time: "Harcanan zaman"
509-
label_star_query: "avantajlı"
509+
label_star_query: "Favori"
510510
label_press_enter_to_save: "Kaydetmek için enter tuşuna basın."
511511
label_public_query: "Herkese Açık"
512512
label_sum: "toplam\n"

Diff for: config/locales/crowdin/ru.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -908,7 +908,7 @@ ru:
908908
widgets: "Виджеты"
909909
journal:
910910
notes: "Примечания"
911-
cause_type: "Cause type"
911+
cause_type: "Причина"
912912
ldap_auth_source:
913913
account: "Аккаунт"
914914
attr_firstname: "Атрибут имени"
@@ -2454,7 +2454,7 @@ ru:
24542454
label_applied_status: "Прикладной статус"
24552455
label_archive_project: "Архивировать проект"
24562456
label_ascending: "По возрастанию"
2457-
label_assigned_to_me_work_packages: "Переданные мне пакеты работ"
2457+
label_assigned_to_me_work_packages: "Пакеты работ, назначенные мне"
24582458
label_associated_revisions: "Связанные изменения"
24592459
label_attachment_plural: "Вложения"
24602460
label_attribute: "Атрибут"

Diff for: config/locales/crowdin/tr.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3895,7 +3895,7 @@ tr:
38953895
text_no_notes: "Bu çalışma paketi için bir yorum bulunmuyor."
38963896
text_notice_too_many_values_are_inperformant: "Not: Her sayfada 100'den fazla öğe gösterildiğinde, sayfa yükleme süresi artabilir."
38973897
text_notice_security_badge_displayed_html: >
3898-
Not: Etkinleştirildiğinde, bu, <a href="%{information_panel_path}">%{information_panel_label}</a> yönetim panelinde ve giriş sayfasında yükleme durumunuzla birlikte bir rozet görüntüler. Sadece yöneticilere gösterilir. <br/> Rozet, mevcut OpenProject sürümünüzü resmi OpenProject sürüm veritabanına karşı kontrol eder ve sizi herhangi bir güncelleme veya bilinen güvenlik açığı hakkında uyarır. Çekin sağladığı, mevcut güncellemeleri sağlamak için hangi verilerin gerekli olduğu ve bu kontrolün nasıl devre dışı bırakılacağı hakkında daha fazla bilgi için lütfen <a href="%{more_info_url}"> yapılandırma belgelerini </a> ziyaret edin.
3898+
Not: Etkinleştirildiğinde, bu, <a href="%{information_panel_path}">%{information_panel_label}</a> yönetim panelinde ve giriş sayfasında yükleme durumunuzla birlikte bir rozet görüntüler. Sadece yöneticilere gösterilir. <br/> Rozet, mevcut OpenProject sürümünüzü resmi OpenProject sürüm veritabanına karşı kontrol eder ve sizi herhangi bir güncelleme veya bilinen güvenlik açığı hakkında uyarır. Çekin sağladığı, mevcut güncellemeleri sağlamak için hangi verilerin gerekli olduğu ve bu kontrolün nasıl devre dışı bırakılacağı hakkında daha fazla bilgi için lütfen <a href="%{more_info_url}">yapılandırma belgelerini</a> ziyaret edin.
38993899
text_own_membership_delete_confirmation: "İzinlerinizden bazılarını veya tümünü kaldırmak üzeresiniz ve bundan sonra bu projeyi düzenleyemeyebilirsiniz. Devam etmek istediğine emin misin?"
39003900
text_permanent_delete_confirmation_checkbox_label: "Bu silme işleminin geri alınamayacağını anlıyorum"
39013901
text_plugin_assets_writable: "Plugin assets dizini yazılabilir"

Diff for: docs/installation-and-operations/system-requirements/README.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ In the _packaged installation_ you can have multiple servers running OpenProject
6464
> [!NOTE]
6565
>
6666
> We recommend to run OpenProject in a [Kubernetes deployment using our Helm charts](../installation/helm-chart), or in smaller environments, [docker compose](../installation/docker-compose) or [docker Swarm](../installation/docker/#docker-swarm). Kubernetes and Docker swarm are fully horizontally scalable
67-
67+
6868
[For more information on applying scaling options depending on your installation method, please see this document](../operation/scaling/).
6969

7070

@@ -162,7 +162,6 @@ The [package-based installation](../installation/packaged) requires one of the f
162162
| Debian 12 Bookworm |
163163
| Debian 11 Bullseye |
164164
| CentOS/RHEL 9.x |
165-
| CentOS/RHEL 8.x |
166165
| Suse Linux Enterprise Server 15 |
167166

168167
The [docker-based installation](../installation/docker) requires a system with Docker installed. Please see the [official Docker page](https://docs.docker.com/install/) for the list of supported systems.

Diff for: docs/release-notes/15-4-2/README.md

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
title: OpenProject 15.4.2
3+
sidebar_navigation:
4+
title: 15.4.2
5+
release_version: 15.4.2
6+
release_date: 2025-03-26
7+
---
8+
9+
# OpenProject 15.4.2
10+
11+
Release date: 2025-03-26
12+
13+
We released OpenProject [OpenProject 15.4.2](https://community.openproject.org/versions/2184).
14+
The release contains several bug fixes and we recommend updating to the newest version.
15+
In these Release Notes, we will give an overview of important feature changes.
16+
At the end, you will find a complete list of all changes and bug fixes.
17+
18+
<!--more-->
19+
20+
## Bug fixes and changes
21+
22+
<!-- Warning: Anything within the below lines will be automatically removed by the release script -->
23+
<!-- BEGIN AUTOMATED SECTION -->
24+
25+
- Bugfix: Inconsistent behaviour for switching to automatic mode in WP create form \[[#61960](https://community.openproject.org/wp/61960)\]
26+
- Bugfix: WP can&#39;t be transformed to a Milestone if it is automatically scheduled \[[#62190](https://community.openproject.org/wp/62190)\]
27+
- Bugfix: Many WP fields are visually misaligned when populated with data \[[#62249](https://community.openproject.org/wp/62249)\]
28+
- Bugfix: PDF Export Report: no attributes are exported if the default columns of a query is used \[[#62316](https://community.openproject.org/wp/62316)\]
29+
- Bugfix: Error 500 when updating names, color tags, or status of Work Package &quot;Priorities&quot; \[[#62459](https://community.openproject.org/wp/62459)\]
30+
- Bugfix: Migration job WorkPackages::AutomaticMode::MigrateValuesJob not properly retried \[[#62479](https://community.openproject.org/wp/62479)\]
31+
- Bugfix: Creating a child from work package list does not properly update parent&#39;s dates \[[#62487](https://community.openproject.org/wp/62487)\]
32+
33+
<!-- END AUTOMATED SECTION -->
34+
<!-- Warning: Anything above this line will be automatically removed by the release script -->
35+
36+
## Contributions
37+
A big thanks to our Community members for reporting bugs and helping us identify and provide fixes.
38+
This release, special thanks for reporting and finding bugs go to Robb E.

Diff for: docs/release-notes/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ Stay up to date and get an overview of the new features included in the releases
1313
<!--- New release notes are generated below. Do not remove comment. -->
1414
<!--- RELEASE MARKER -->
1515

16+
## 15.4.2
17+
18+
Release date: 2025-03-26
19+
20+
[Release Notes](15-4-2/)
21+
22+
1623
## 15.4.1
1724

1825
Release date: 2025-03-20

Diff for: docs/user-guide/account-settings/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ keywords: my account, account settings, change language
88

99
# Account settings
1010

11-
Change your personal settings un der Account settings (earlier called My account). Here you can adapt, e.g. the language, edit notifications, or add an avatar. Moreover you can manage access tokens and sessions.
11+
Change your personal settings under Account settings (earlier called My account). Here you can adapt, e.g. the language, edit notifications, or add an avatar. Moreover you can manage access tokens and sessions.
1212

1313
| Topic | Content |
1414
| ------------------------------------------------------------ | ------------------------------------------------------------ |

Diff for: docs/user-guide/file-management/file-management-faq/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ It can also be that case, that a project admin revoked your permission to view f
2020

2121
Yes, that is possible. If you work with automatically managed folders, the corresponding project folder will also be renamed automatically after a few minutes.
2222

23-
## Can I copy a project, including the OneDrive/SharePoint file storage?
23+
## Can I copy a project, including the file storage?
2424

25-
Yes, you can. If the OneDrive/SharePoint file storage in your project had the automatically managed folders selected during the set-up, the folder with all files will be copied. If the file storage was added with manual managed folders, the new copy of the project will have the same file storage setup and reference the original folder without copying it. Read more about copying projects [here](../../projects/#copy-a-project).
25+
Yes, you can. If the file storage in your project had the automatically managed folders selected during the set-up, the folder with all files will be copied. If the file storage was added with manual managed folders, the new copy of the project will have the same file storage setup and reference the original folder without copying it. Read more about copying projects [here](../../projects/#copy-a-project).
2626

2727
> [!IMPORTANT]
2828
> In Sharepoint you can add (custom) columns in addition to the ones shown by default (*Modified* and *Modified by*). Please keep in mind if these custom columns are added, OpenProject integration can no longer copy the automatically managed project folders. The columns will have to be de-activated, or ideally not be created in the first place.

Diff for: docs/user-guide/file-management/one-drive-integration/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ In addition to listing files directly attached to a work package, the **Files**
4949

5050
To link a SharePoint file to the current work package, you can either:
5151

52-
- select a local file, which will be uploaded to OneDrive/SharePoint storage and linked to this work package
52+
- select a local file, which will be uploaded to OneDrive/SharePoint storage and linked to this work package
5353
- select an existing file in OneDrive/SharePoint to link to
5454

5555
![Link existing files to OneDrive/SharePoint from an OpenProject work package](openproject_onedrive_link_existing_files_link.png)

Diff for: docs/user-guide/meetings/classic-meetings/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ You can then specify the following:
6161

6262
If you want to change the details of a meeting, for example its time or location, open the meetings details view by clicking on the title in the overview list and click on **Edit** next to the meeting’s name.
6363

64-
![edit-meeting](edit-meeting.png)
64+
![Edit icon a classic meeting in OpenProject](edit-meeting.png)
6565

6666
An edit screen is displayed and the meeting information can be adjusted.
6767

Diff for: docs/user-guide/meetings/one-time-meetings/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ An editor will appear, allowing you to enter and format text, similar to editing
145145

146146
Click **Save** to add the outcome agenda.
147147

148-
After saving an agenda item outcome, you can still edit it. Click the **More** (three dots) menu on the right edge of each outcome item and select *Edit outocme*.
148+
After saving an agenda item outcome, you can still edit it. Click the **More** (three dots) menu on the right edge of each outcome item and select *Edit outcome*.
149149

150150
![Edit an agenda item outcome in OpenProject meetings](openproject_userguide_meetings_agenda_outcome_more_menu.png)
151151

@@ -217,7 +217,7 @@ You can send an email reminder to all the meeting participants. Select the dropd
217217

218218
## Meeting attachments
219219

220-
You can attachments in the meetings in the **Attachments** section in the right bottom corner. You can either user the **+Attach files** link to select files from your computer or drag and drop them.
220+
You can add attachments in the meetings in the **Attachments** section in the right bottom corner. You can either user the **+Attach files** link to select files from your computer or drag and drop them.
221221

222222
Added attachments can be added to the Notes section of agenda packages by dragging and dropping them from the Attachments section.
223223

Diff for: docs/user-guide/projects/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ Under the **Copy options** section you can select what additional project data a
138138
![Copy options when copying a project in OpenProject](project-settings-copy-project-copy-options.png)
139139

140140
> [!NOTE]
141-
> The File storages options only apply if the template project had [OneDrive/SharePoint](../../system-admin-guide/integrations/one-drive) with automatically managed folders activated.
141+
> The File storages options only apply if the template project had a file storage with automatically managed folders activated.
142142
143143
If you select the **File Storages: Project folders** option, both the storage and the storage folders are copied into the new project if automatically managed project folders were selected for the original file storage. For storages with manually managed project folders setup the copied storage will be referencing the same folder as the original project.
144144

Diff for: docs/user-guide/projects/project-lists/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ There are several ways to get an overview of all your projects. You can press th
3030
![project lists button](Project-list-button.png)
3131

3232
> [!TIP]
33-
>If you have already selected a project, the **x** icon next to that project will navigate you away from that selected project.
33+
> If you have already selected a project, the **x** icon next to that project will navigate you away from that selected project.
3434
3535
![Close an already selected project](openproject_user_guide_project_project_list.png)
3636

Diff for: docs/user-guide/work-packages/duplicate-move-delete/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Copying a work package allows to easily create and adjust new work packages base
3434

3535
## Copy link to clipboard
3636

37-
This option copies a short link to the work package to your clipboard so you can quickly paste it elsewhere. It can also be useful when you want to quickly copy links to multiple work packages without having to open the detailed view of each one.
37+
This option copies a short link to the work package to your clipboard so you can quickly paste it elsewhere. It can also be useful when you want to quickly copy links to multiple work packages without having to open the detailed view of each one.
3838

3939
## Move a work package to a different project
4040

0 commit comments

Comments
 (0)