Merge branch 'release/12.4' into dev

pull/11848/head
Christophe Bliard 2 years ago
commit 55cad4bc7f
No known key found for this signature in database
GPG Key ID: 2BC07603210C3FA4
  1. 5
      config/initializers/secure_headers.rb
  2. 6
      docs/release-notes/12-0-0/README.md
  3. 6
      docs/system-admin-guide/system-settings/display-settings/README.md
  4. 5
      docs/user-guide/team-planner/README.md
  5. 3
      frontend/src/global_styles/common/menu/menu.sass
  6. 3
      script/bulk_run_rspec
  7. 14
      spec/support/rspec_retry.rb

@ -37,9 +37,8 @@ Rails.application.config.after_initialize do
# Add proxy configuration for Angular CLI to csp
if FrontendAssetHelper.assets_proxied?
proxied = ['ws://localhost:3000', 'http://localhost:3000',
'ws://localhost:4200', 'http://localhost:4200',
FrontendAssetHelper.cli_proxy]
proxied = ["ws://#{Setting.host_name}", "http://#{Setting.host_name}",
FrontendAssetHelper.cli_proxy.sub('http', 'ws'), FrontendAssetHelper.cli_proxy]
connect_src += proxied
assets_src += proxied
media_src += proxied

@ -21,16 +21,15 @@ The new in-app notifications let you never miss a change in your projects again.
Go to our user guide to find out how to [configure in-app notifications](../../user-guide/notifications/).
> **Info:** Please note that starting with version 12.0, OpenProject will no longer send individual emails for each notification. You can view your notifications via the new [Notification center](user-guide/notifications/#access-in-app-notifications). You can however still choose to receive daily [email reminders](../../getting-started/my-account/#email-reminders) at specific times of the day that you can configure.
## Notification center
The new notification center shows all notifications about changes within your projects, including intuitive filter options in the menu on the left, e.g. by reason for notification or by projects. Clicking on the notification will open the details of a work package. you can directly edit it in a split view. The blue elliptical indicates the number of unread notifications about changes within one work package.
The new Notification center shows all notifications about changes within your projects, including intuitive filter options in the menu on the left, e.g. by reason for notification or by projects. Clicking on the notification will open the details of a work package. you can directly edit it in a split view. The blue elliptical indicates the number of unread notifications about changes within one work package.
![notification-center](notification-center.png)
## Improved notification settings
The improved notification settings now allow to fine-tune for which actions and in which projects you want to receive a notification. With 12.0 you can now even add project-specific settings for changes you want to be notified about and override the default settings.
@ -38,7 +37,6 @@ The improved notification settings now allow to fine-tune for which actions and
![notification-settings](notification-settings.png)
## Email summaries
In addition to the in-app notifications, also email reminders can be configured to receive important updates in a daily (or more often) email summary. These email reminders can be configured to receive also additional notifications about changes in your projects, e.g. new or updated memberships in a project.

@ -20,9 +20,9 @@ At the moment there are more than 30 languages available.
You can [choose your language in your user profile](../../../getting-started/my-account/#change-your-language).
## Time and date formatting, aggregation of changes in activity
## Time and date formatting
Change time and date formats in OpenProject and configure the display of journal aggregation.
Change time and date formats in OpenProject:
1. **Week starts on**: Configure what date the week starts (e.g. in the calendar view). Default is `Based on user's language`.
You can also choose to start a week always on Monday, Sunday or Saturdays.
@ -36,3 +36,5 @@ Change time and date formats in OpenProject and configure the display of journal
4. **Time format**: default is based on user's language. You can choose various formats to display time in the system.
5. **Users display format**: default is [First name] [Last name]. You can change to various different formats.
6. Do not forget to **save** your changes.![image-20211209163420270](image-20211209163420270.png)
> **Info:** Configuration options related to aggregation time (the time interval in which different user activities are displayed as one set of actions) have been moved to the [Incoming and Outgoing](../../incoming-and-outgoing/) section.

@ -89,14 +89,11 @@ You can create a new work package for a particular member of your team by clicki
![Creating a new work package by clicking and dragging across multiple day cells](TeamPlanner-12.4-newTask-drag.png)
A **new work package dialog** will open. The assignee, start and finish dates will already be set based on where you clicked to create the work package. You can add any additional details, such as subject, work package type, a description and add attachments. Scrolling further down on the split screen also gives you access to other attributes such as cost and time and custom fields that might exist.
![An example of the new work package split screen view](TeamPlanner-12.4-newTask-splitScreen.png)
#### Add an existing work package
If you would like to take an existing work package and assign it to your team member for a certain start date, the team planner makes it easy to do so.
@ -122,7 +119,7 @@ The team planner allows you to quickly re-schedule and re-assign work packages c
> **Info**: Work packages can also expand and retract in width depending on how many non-working days are spanned (for example, a 3-day task starting on Thursday and ending on Monday will spread across 5 calendar days; dragging that same work package so that it starts on a Tuesday and ends on a Thursday means that it will spread across 3 calendar days. In both cases, the duration remains 3 days.
Sometimes, it is not possible to modify the dates or the assignee of work packages for a variety of reasons. It could be, for example, because you might not have the necessary permissions to make that change or because existing relations make it impossible. In such cases, an error message will appear on the top of the screen to let you know that the change was was possible.
Sometimes, it is not possible to modify the dates or the assignee of work packages for a variety of reasons. It could be, for example, because you might not have the necessary permissions to make that change or because existing relations make it impossible. In such cases, an error message will appear on the top of the screen to let you know that the change was not possible.
## Work package details view

@ -3,8 +3,9 @@
flex-direction: column
&--item
white-space: nowrap
&-title
white-space: nowrap
font-weight: 400
overflow: hidden
text-overflow: ellipsis

@ -104,6 +104,7 @@ class BulkRunner
FileUtils.rm_rf(bulk_run_dir('logs')) if bulk_run_dir('logs').exist?
`mkdir -p #{bulk_run_dir('logs')}`
puts "#{tests.count} tests to run"
puts "logs: #{bulk_run_dir('logs')}"
tests.each do |test|
puts '=' * 80
puts "Running #{test.path} #{RUN_COUNT} times"
@ -111,7 +112,7 @@ class BulkRunner
RUN_COUNT.times do |i|
puts " Run #{i} ".center(80, '-')
run = Run.new(test.path)
run.output = `CI=true bundle exec rspec '#{run.path}' 2>&1`
run.output = `DISABLE_PRY=1 CI=true bundle exec rspec '#{run.path}' 2>&1`
if $?.success?
puts 'ok'.green
run.passed!

@ -42,9 +42,17 @@ def retry_block(args: {}, screenshot: false, &block)
end
log_errors = Proc.new do |exception, try, elapsed_time, next_interval|
warn <<~EOS
max_tries = RSpec.current_example.metadata[:retry] + 1
exception_source_line = exception.backtrace.find { |line| line.start_with?(Rails.root.to_s) }
next_try_message = next_interval ? "#{next_interval} seconds until the next try" : "last try"
# use stderr directly to prevent having StructuredWarnings::StandardWarning
# messy and useless output
$stderr.puts <<~EOS # rubocop:disable Style/StderrPuts
-- rspec-retry #{try}/#{max_tries}--
#{exception.class}: '#{exception.message}'
#{try} tries in #{elapsed_time} seconds and #{next_interval} seconds until the next try.
occurred on #{exception_source_line}
#{try} tries in #{elapsed_time} seconds, #{next_try_message}.
--
EOS
if screenshot
@ -56,5 +64,5 @@ def retry_block(args: {}, screenshot: false, &block)
end
end
Retriable.retriable(args.merge(on_retry: log_errors), &block)
Retriable.retriable(on_retry: log_errors, **args, &block)
end

Loading…
Cancel
Save