Skip to content

Commit 432f3e6

Browse files
Release OpenProject 12.0.1
2 parents ad3df7f + 444753e commit 432f3e6

File tree

27 files changed

+216
-54
lines changed

27 files changed

+216
-54
lines changed

Gemfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,9 @@ gem 'mini_magick', '~> 4.11.0', require: false
188188

189189
# Sentry error reporting, loaded on demand
190190
group :sentry do
191-
gem "sentry-delayed_job", '~> 4.7.0', require: false
192-
gem "sentry-rails", '~> 4.7.0', require: false
193-
gem "sentry-ruby", '~> 4.7.0', require: false
191+
gem "sentry-delayed_job", '~> 4.8.0', require: false
192+
gem "sentry-rails", '~> 4.8.0', require: false
193+
gem "sentry-ruby", '~> 4.8.0', require: false
194194
end
195195

196196
group :test do

Gemfile.lock

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -875,17 +875,17 @@ GEM
875875
rexml (~> 3.2, >= 3.2.5)
876876
rubyzip (>= 1.2.2)
877877
semantic (1.6.1)
878-
sentry-delayed_job (4.7.3)
878+
sentry-delayed_job (4.8.0)
879879
delayed_job (>= 4.0)
880-
sentry-ruby-core (~> 4.7.0)
881-
sentry-rails (4.7.3)
880+
sentry-ruby-core (~> 4.8.0)
881+
sentry-rails (4.8.0)
882882
railties (>= 5.0)
883-
sentry-ruby-core (~> 4.7.0)
884-
sentry-ruby (4.7.3)
883+
sentry-ruby-core (~> 4.8.0)
884+
sentry-ruby (4.8.0)
885885
concurrent-ruby (~> 1.0, >= 1.0.2)
886886
faraday (>= 1.0)
887-
sentry-ruby-core (= 4.7.3)
888-
sentry-ruby-core (4.7.3)
887+
sentry-ruby-core (= 4.8.0)
888+
sentry-ruby-core (4.8.0)
889889
concurrent-ruby
890890
faraday
891891
shoulda-context (2.0.0)
@@ -1112,9 +1112,9 @@ DEPENDENCIES
11121112
secure_headers (~> 6.3.0)
11131113
selenium-webdriver (~> 4.0)
11141114
semantic (~> 1.6.1)
1115-
sentry-delayed_job (~> 4.7.0)
1116-
sentry-rails (~> 4.7.0)
1117-
sentry-ruby (~> 4.7.0)
1115+
sentry-delayed_job (~> 4.8.0)
1116+
sentry-rails (~> 4.8.0)
1117+
sentry-ruby (~> 4.8.0)
11181118
shoulda-context (~> 2.0)
11191119
shoulda-matchers (~> 5.0)
11201120
spring

app/controllers/errors_controller.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,17 @@ def unacceptable
1414
end
1515

1616
def internal_error
17-
render_500
17+
render_500 error_options
1818
end
1919

2020
private
2121

22+
def error_options
23+
{
24+
exception: request.env["action_dispatch.exception"] || request.env["sentry.rescued_exception"]
25+
}.compact
26+
end
27+
2228
def use_layout
2329
'only_logo'
2430
end

app/models/mail_handler.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class UnauthorizedAction < StandardError; end
3636

3737
class MissingInformation < StandardError; end
3838

39-
attr_reader :email, :user, :options
39+
attr_reader :email, :sender_email, :user, :options
4040

4141
##
4242
# Code copied from base class and extended with optional options parameter
@@ -69,7 +69,7 @@ def self.with_options(options)
6969
# Returns the created object (eg. an issue, a message) or false
7070
def receive(email)
7171
@email = email
72-
sender_email = email.from.to_a.first.to_s.strip
72+
@sender_email = email.from.to_a.first.to_s.strip
7373
# Ignore emails received from the application emission address to avoid hell cycles
7474
if sender_email.downcase == Setting.mail_from.to_s.strip.downcase
7575
log "ignoring email from emission address [#{sender_email}]"

app/models/user.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ class User < Principal
6666
class_name: 'Doorkeeper::Application',
6767
as: :owner
6868

69+
# Meeting memberships
70+
has_many :meeting_participants,
71+
class_name: 'MeetingParticipant',
72+
inverse_of: :user,
73+
dependent: :destroy
74+
6975
has_many :notification_settings, dependent: :destroy
7076

7177
# Users blocked via brute force prevention

config/initializers/sentry.rb

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
# as we're dynamically loading it
1111
# https://github.com/getsentry/sentry-ruby/blob/master/sentry-rails/lib/sentry/rails/railtie.rb#L8-L13
1212
OpenProject::Application.configure do |app|
13-
# need to be placed at first to capture as many errors as possible
14-
app.config.middleware.insert 0, Sentry::Rails::CaptureExceptions
1513
# need to be placed at last to smuggle app exceptions via env
1614
app.config.middleware.use(Sentry::Rails::RescuedExceptionInterceptor)
1715
end
@@ -24,10 +22,24 @@ class SentryJob < Sentry::SendEventJob
2422

2523
Sentry.init do |config|
2624
config.dsn = OpenProject::Logging::SentryLogger.sentry_dsn
27-
config.breadcrumbs_logger = [:active_support_logger]
25+
config.breadcrumbs_logger = OpenProject::Configuration.sentry_breadcrumb_loggers.map(&:to_sym)
2826

29-
# Submit events as delayed job
30-
config.async = lambda { |event, hint| ::SentryJob.perform_later(event, hint) }
27+
# Submit events as delayed job only when requested to do that
28+
if ENV['OPENPROJECT_SENTRY_DELAYED_JOB'] == 'true'
29+
config.async = lambda do |event, hint|
30+
::SentryJob.perform_later(event, hint)
31+
end
32+
end
33+
34+
# Output debug info for sentry
35+
config.before_send = lambda do |event, hint|
36+
Rails.logger.debug do
37+
payload_sizes = event.to_json_compatible.transform_values { |v| JSON.generate(v).bytesize }.inspect
38+
"[Sentry] will send event #{hint}. Payload sizes are #{payload_sizes.inspect}"
39+
end
40+
41+
event
42+
end
3143

3244
# Don't send loaded modules
3345
config.send_modules = false

config/locales/crowdin/js-it.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,8 @@ it:
291291
standard:
292292
learn_about_link: https://www.openproject.org/blog/openproject-12-0-release
293293
new_features_html: >
294-
The release contains various new features and improvements: <br> <ul class="%{list_styling_class}"> <li>With the new <b>in-app notifications</b> you receive all important updates directly in the application and don't get a flood of emails anymore.</li> <li>The new <b>notification center</b> shows all the changes, including intuitive filter options, e.g. by reason for notification or projects. It even allows editing directly in a split view.</li> <li>Improved <b>notification settings</b> allow to fine-tune for which actions and in which projects you want to receive a notification.</li> <li><b>Email reminders</b> can be configured to receive important updates via a daily email summary.</li> <li>The work package auto-completer for relations now also shows additional information (project name, status, ...) to easily identify the respective work package.</li> </ul>
294+
La nuova versione contiene varie nuove funzionalità e miglioramenti: <br> <ul class="%{list_styling_class}"> <li>Con le nuove <b>notifiche in-app</b> ricevi tutti gli aggiornamenti importanti direttamente nell'applicazione e non riceverai più una marea di email.</li> <li>Il nuovo <b>centro notifiche</b> mostra tutte le modifiche, comprese le opzioni di filtro intuitive, ad es. per motivo di notifica o progetti. Consente anche la modifica direttamente in una vista divisa.</li> <li>Le <b>impostazioni di notifica</b> migliorate consentono di mettere a punto per quali azioni e in quali progetti si desidera ricevere una notifica.</li> <li><b>I promemoria email</b> possono essere configurati per ricevere aggiornamenti importanti tramite un riepilogo email giornaliero</li> <li>Il completamento automatico delle macro-attività per le relazioni ora mostra anche informazioni aggiuntive (nome del progetto, stato, ...) per identificare facilmente la rispettiva macro-attività.</li> </ul>
295+
295296
bim:
296297
learn_about_link: https://www.openproject.org/blog/openproject-12-0-release
297298
new_features_html: >
@@ -557,7 +558,7 @@ it:
557558
description: 'Ricevi una notifica ogni volta che qualcuno ti menziona ovunque'
558559
involved:
559560
title: 'Assegnato a me o responsabile'
560-
description: 'Receive notifications for all activities on work packages for which I am assignee or accountable'
561+
description: 'Ricevi notifiche per tutte le attività sui pacchetti di lavoro di cui sei assegnatario o responsabile.'
561562
watched: 'Aggiornamenti sugli elementi osservati'
562563
work_package_commented: 'Tutti i nuovi commenti'
563564
work_package_created: 'Nuove macro-attività'
@@ -576,7 +577,7 @@ it:
576577
description: 'Queste impostazioni specifiche di progetto sostituiscono le impostazioni predefinite sopra'
577578
add: 'Aggiungi impostazione per il progetto'
578579
already_selected: 'Questo progetto è già selezionato'
579-
remove: 'Remove project settings'
580+
remove: 'Rimuovi impostazioni progetto'
580581
password_confirmation:
581582
field_description: 'È necessario inserire la password dell''account per confermare la modifica.'
582583
title: 'Confermare la password per continuare'

config/locales/crowdin/js-ru.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ ru:
290290
standard:
291291
learn_about_link: https://www.openproject.org/blog/openproject-12-0-release
292292
new_features_html: >
293-
The release contains various new features and improvements: <br> <ul class="%{list_styling_class}"> <li>With the new <b>in-app notifications</b> you receive all important updates directly in the application and don't get a flood of emails anymore.</li> <li>The new <b>notification center</b> shows all the changes, including intuitive filter options, e.g. by reason for notification or projects. It even allows editing directly in a split view.</li> <li>Improved <b>notification settings</b> allow to fine-tune for which actions and in which projects you want to receive a notification.</li> <li><b>Email reminders</b> can be configured to receive important updates via a daily email summary.</li> <li>The work package auto-completer for relations now also shows additional information (project name, status, ...) to easily identify the respective work package.</li> </ul>
293+
Релиз содержит различные новые функции и улучшения: <br> <ul class="%{list_styling_class}"> <li>С новыми <b>уведомлениями в приложении</b> вы получаете все важные обновления непосредственно в приложении и больше не получать письма от спама.</li> <li>Новый <b>центр уведомлений</b> показывает все изменения, включая интуитивные настройки фильтра. по причинам для уведомлений или проектов. Это даже позволяет редактировать непосредственно в виде раздельного просмотра.</li> <li>Улучшено <b>настройка уведомлений</b> позволяет тонкости, для каких действий и в каких проектах вы хотите получать уведомления.</li> <li><b>напоминания электронной почты</b> могут быть настроены на получение важных обновлений ежедневно по электронной почте.</li> <li>Пакет работ автоматически дополняет отношения теперь также показывает дополнительную информацию (название проекта, статус, . ), чтобы легко определить соответствующий пакет работ.</li> </ul>
294294
bim:
295295
learn_about_link: https://www.openproject.org/blog/openproject-12-0-release
296296
new_features_html: >
@@ -558,7 +558,7 @@ ru:
558558
description: 'Получать уведомления каждый раз, когда кто-то упоминает меня в любом месте'
559559
involved:
560560
title: 'Назначен мне или подотчетен'
561-
description: 'Receive notifications for all activities on work packages for which I am assignee or accountable'
561+
description: 'Получать уведомления о всех видах деятельности в пакетах работ, с которыми я связан.'
562562
watched: 'Обновления просмотренных элементов'
563563
work_package_commented: 'Все новые комментарии'
564564
work_package_created: 'Новые пакеты работ'
@@ -577,7 +577,7 @@ ru:
577577
description: 'Эти настройки специфического проекта переопределяют настройки по умолчанию'
578578
add: 'Добавить настройку для проекта'
579579
already_selected: 'Этот проект уже выбран'
580-
remove: 'Remove project settings'
580+
remove: 'Удалить настройки проекта'
581581
password_confirmation:
582582
field_description: 'Необходимо ввести свой пароль для подтверждения изменений.'
583583
title: 'Для продолжения введите свой пароль'

config/locales/crowdin/ru.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1381,18 +1381,18 @@ ru:
13811381
watched: "Вы просматриваете %{work_package}"
13821382
update_info_mail:
13831383
body: >
1384-
We are excited to announce the release of OpenProject 12.0. It's a major release that will hopefully significantly improve the way you use OpenProject.
1384+
Мы рады объявить о выпуске OpenProject 12.0. Это основной релиз, который, как мы надеемся, значительно улучшит процесс использования OpenProject.
13851385
1386-
Starting with this release, we are introducing in-app notifications. From now on, you will receive notifications for updates to work packages directly in OpenProject. You can mark these notifications as read, reply to a comment or even directly modify work package attributes without leaving the notification center.
1386+
Начиная с этого выпуска, мы представляем Центр уведомлений. Теперь вы будете получать уведомления об обновлениях для пакетов работ непосредственно в OpenProject. Вы можете отметить эти уведомления как прочитанные, ответить на комментарий или даже напрямую изменить атрибуты пакетов работ не выходя из Центра уведомлений.
13871387
1388-
This also means that we will no longer be using emails for notifications. We think the new notification center is a better place to view and act upon these updates. Nevertheless, if you would like continue receiving updates via email, you can choose to receive daily email reminders at particular times of your choosing.
1388+
Это также означает, что мы больше не будем использовать электронные письма для уведомлений. Мы считаем, что Центр уведомлений лучше просматривать и реагировать на эти обновления. Тем не менее, если вы хотите продолжать получать обновления по электронной почте, вы можете ежедневно получать напоминания по электронной почте в определенные моменты по вашему выбору.
13891389
1390-
Please make sure to verify your new default notification settings, and set your preferences for notifications and email reminders via your account settings. You can do this through the “Change email settings” button bellow.
1390+
Вы можете установить настройки уведомлений и напоминаний по электронной почте через настройки учетной записи, или оставить их без изменений, чтобы сохранить стандартные. Вы можете сделать это с помощью кнопки «Изменить настройки электронной почты» ниже.
13911391
1392-
We hope you find in-app notifications useful and that they makes you even more productive.
1392+
Мы надеемся, что вы найдете Центр уведомлений полезным и что он сделает вас еще более продуктивным.
13931393
1394-
Sincerely,
1395-
The OpenProject team
1394+
Искренне
1395+
Команда OpenProject
13961396
body_header: 'Версия 12.0 с центром уведомлений'
13971397
body_subheader: 'Новости'
13981398
subject: 'Важные изменения в уведомлениях с релизом 12.0'

docs/api/apiv3/paths/group.yml

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ patch:
196196
errorIdentifier: urn:openproject-org:api:v3:errors:NotFound
197197
message: The requested resource could not be found.
198198
description: |-
199-
Returned if the membership does not exist or the client does not have sufficient permissions
199+
Returned if the group does not exist or the client does not have sufficient permissions
200200
to see it.
201201
202202
**Required permission** If the user has the *manage members* permission in at least one project the user will be able to query all groups. If not, the user
@@ -224,7 +224,35 @@ patch:
224224
headers: {}
225225
tags:
226226
- Groups
227-
description: Updates the given group by applying the attributes provided in the
227+
description: |-
228+
Updates the given group by applying the attributes provided in the
228229
body.
230+
231+
Please note that the `members` array provided will override the existing set of members (similar to a PUT). A client thus
232+
has to provide the complete list of members the group is to have after the PATCH even if only one member is to be added.
229233
operationId: Update_group
234+
requestBody:
235+
content:
236+
application/json:
237+
schema:
238+
example:
239+
_links:
240+
members:
241+
- href: "/api/v3/users/363"
242+
- href: "/api/v3/users/60"
243+
name: The group
244+
properties:
245+
_links:
246+
properties:
247+
members:
248+
type: arrray
249+
items:
250+
type: object
251+
properties:
252+
href:
253+
type: string
254+
type: object
255+
name:
256+
type: string
257+
type: object
230258
summary: Update group

0 commit comments

Comments
 (0)