Merge branch 'dev' into 45001-component-to-show-the-list-of-non-working-days-of-year

45001-component-to-show-the-list-of-non-working-days-of-year
bsatarnejad 2 years ago
commit 75aea8a20f
  1. 20
      .github/workflows/continuous-delivery.yml
  2. 11
      Gemfile
  3. 43
      Gemfile.lock
  4. 2
      config/constants/settings/definition.rb
  5. 2
      config/locales/crowdin/es.yml
  6. 2
      config/locales/crowdin/js-es.yml
  7. 7
      docs/release-notes/README.md
  8. 14
      modules/avatars/config/locales/crowdin/js-id.yml
  9. 16
      modules/backlogs/config/locales/crowdin/id.yml
  10. 4
      modules/team_planner/spec/support/pages/team_planner.rb
  11. 2
      spec/constants/settings/definition_spec.rb
  12. 3
      spec/lib/rubocop/cop/open_project/no_do_end_block_with_rspec_capybara_matcher_in_expect_spec.rb
  13. 3
      spec/lib/rubocop/cop/open_project/use_service_result_factory_methods_spec.rb
  14. 9
      spec/rails_helper.rb

@ -14,13 +14,25 @@ jobs:
if: github.repository == 'opf/openproject'
runs-on: ubuntu-latest
steps:
- name: Trigger downstream workflow
- name: Trigger SaaS workflow
env:
TOKEN: ${{ secrets.OPENPROJECT_CI_TOKEN }}
SAAS_CD_WORKFLOW_ID: continuous-delivery-saas.yml
SAAS_REPOSITORY: opf/saas-openproject
REPOSITORY: opf/saas-openproject
WORKFLOW_ID: continuous-delivery-saas.yml
run: |
curl -i --fail -H"authorization: Bearer $TOKEN" \
-XPOST -H"Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/$SAAS_REPOSITORY/actions/workflows/$SAAS_CD_WORKFLOW_ID/dispatches \
https://api.github.com/repos/$REPOSITORY/actions/workflows/$WORKFLOW_ID/dispatches \
-d '{"ref": "${{ github.ref }}"}'
- name: Trigger Flavours workflow
env:
TOKEN: ${{ secrets.OPENPROJECT_CI_TOKEN }}
REPOSITORY: opf/openproject-flavours
WORKFLOW_ID: ci.yml
CORE_REF: ${{ github.ref }}
run: |
curl -i --fail -H"authorization: Bearer $TOKEN" \
-XPOST -H"Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/$REPOSITORY/actions/workflows/$WORKFLOW_ID/dispatches \
-d '{"ref": "master", "inputs": { "ref" : "$CORE_REF" }}'

@ -200,9 +200,9 @@ gem 'mini_magick', '~> 4.11.0', require: false
gem 'validate_url'
# Sentry error reporting
gem "sentry-delayed_job", '~> 5.6.0'
gem "sentry-rails", '~> 5.6.0'
gem "sentry-ruby", '~> 5.6.0'
gem "sentry-delayed_job", '~> 5.7.0'
gem "sentry-rails", '~> 5.7.0'
gem "sentry-ruby", '~> 5.7.0'
# Appsignal integration
gem "appsignal", "~> 3.0", require: false
@ -284,6 +284,9 @@ group :development, :test do
gem 'ruby-prof', require: false
gem 'stackprof', require: false
# REPL with debug commands
gem 'debug'
gem 'pry-byebug', '~> 3.10.0', platforms: [:mri]
gem 'pry-rails', '~> 0.3.6'
gem 'pry-rescue', '~> 1.5.2'
@ -301,7 +304,7 @@ group :development, :test do
gem 'danger-brakeman'
end
gem 'bootsnap', '~> 1.14.0', require: false
gem 'bootsnap', '~> 1.15.0', require: false
# API gems
gem 'grape', '~> 1.6.0'

@ -291,8 +291,8 @@ GEM
awesome_nested_set (3.5.0)
activerecord (>= 4.0.0, < 7.1)
aws-eventstream (1.2.0)
aws-partitions (1.669.0)
aws-sdk-core (3.168.1)
aws-partitions (1.670.0)
aws-sdk-core (3.168.2)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
@ -311,7 +311,7 @@ GEM
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.18)
bindata (2.4.14)
bootsnap (1.14.0)
bootsnap (1.15.0)
msgpack (~> 1.2)
brakeman (5.4.0)
browser (5.3.1)
@ -348,7 +348,6 @@ GEM
cells-rails (0.1.5)
actionpack (>= 5.0)
cells (>= 4.1.6, < 5.0.0)
childprocess (4.1.0)
claide (1.1.0)
claide-plugins (0.9.2)
cork
@ -392,6 +391,9 @@ GEM
date_validator (0.12.0)
activemodel (>= 3)
activesupport (>= 3)
debug (1.7.0)
irb (>= 1.5.0)
reline (>= 0.3.1)
deckar01-task_list (2.3.2)
html-pipeline
declarative (0.0.20)
@ -559,6 +561,9 @@ GEM
ice_cube (~> 0.16)
ice_cube (0.16.4)
interception (0.5)
io-console (0.5.11)
irb (1.5.1)
reline (>= 0.3.0)
iso8601 (0.13.0)
jmespath (1.6.2)
json (2.6.2)
@ -583,7 +588,7 @@ GEM
open4 (~> 1.0)
launchy (2.5.0)
addressable (~> 2.7)
lefthook (1.2.2)
lefthook (1.2.3)
letter_opener (1.8.1)
launchy (>= 2.2, < 3)
listen (3.7.1)
@ -796,6 +801,8 @@ GEM
json
redcarpet (3.5.1)
regexp_parser (2.6.1)
reline (0.3.1)
io-console (~> 0.5)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
@ -850,7 +857,7 @@ GEM
rubocop-ast (>= 1.23.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 3.0)
rubocop-ast (1.23.0)
rubocop-ast (1.24.0)
parser (>= 3.1.1.0)
rubocop-rails (2.17.3)
activesupport (>= 4.2.0)
@ -888,19 +895,18 @@ GEM
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
secure_headers (6.5.0)
selenium-webdriver (4.6.1)
childprocess (>= 0.5, < 5.0)
selenium-webdriver (4.7.1)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
semantic (1.6.1)
sentry-delayed_job (5.6.0)
sentry-delayed_job (5.7.0)
delayed_job (>= 4.0)
sentry-ruby (~> 5.6.0)
sentry-rails (5.6.0)
sentry-ruby (~> 5.7.0)
sentry-rails (5.7.0)
railties (>= 5.0)
sentry-ruby (~> 5.6.0)
sentry-ruby (5.6.0)
sentry-ruby (~> 5.7.0)
sentry-ruby (5.7.0)
concurrent-ruby (~> 1.0, >= 1.0.2)
shoulda-context (2.0.0)
shoulda-matchers (5.2.0)
@ -936,7 +942,7 @@ GEM
test-prof (1.0.11)
thor (1.2.1)
tilt (2.0.11)
timecop (0.9.5)
timecop (0.9.6)
timeout (0.3.0)
trailblazer-option (0.1.2)
ttfunk (1.7.0)
@ -1004,7 +1010,7 @@ DEPENDENCIES
aws-sdk-core (~> 3.107)
aws-sdk-s3 (~> 1.91)
bcrypt (~> 3.1.6)
bootsnap (~> 1.14.0)
bootsnap (~> 1.15.0)
brakeman (~> 5.4.0)
browser (~> 5.3.0)
budgets!
@ -1023,6 +1029,7 @@ DEPENDENCIES
danger-brakeman
dashboards!
date_validator (~> 0.12.0)
debug
deckar01-task_list (~> 2.3.1)
delayed_cron_job (~> 0.9.0)
delayed_job_active_record (~> 4.1.5)
@ -1138,9 +1145,9 @@ DEPENDENCIES
secure_headers (~> 6.5.0)
selenium-webdriver (~> 4.0)
semantic (~> 1.6.1)
sentry-delayed_job (~> 5.6.0)
sentry-rails (~> 5.6.0)
sentry-ruby (~> 5.6.0)
sentry-delayed_job (~> 5.7.0)
sentry-rails (~> 5.7.0)
sentry-ruby (~> 5.7.0)
shoulda-context (~> 2.0)
shoulda-matchers (~> 5.0)
spring

@ -90,7 +90,7 @@ module Settings
self.value = {} if value.nil?
value.deep_merge! other_value.deep_stringify_keys
elsif format == :datetime && !other_value.is_a?(DateTime)
self.value = DateTime.parse(other_value)
self.value = DateTime.parse(other_value.to_s)
else
self.value = other_value
end

@ -64,7 +64,7 @@ es:
main-menu-bg-color: "Color de fondo del menú lateral izquierdo."
theme_warning: Al cambiar el tema, se sobrescribirá su estilo personalizado y, como consecuencia, se perderá el diseño. ¿Seguro que quiere continuar?
enterprise:
upgrade_to_ee: "Upgrade to the Enterprise edition"
upgrade_to_ee: "Actualizar a la edición Enterprise"
add_token: "Upload an Enterprise edition support token"
delete_token_modal:
text: "Are you sure you want to remove the current Enterprise edition token used?"

@ -855,7 +855,7 @@ es:
zooms: "Nivel de zoom"
outlines: "Nivel de jerarquía"
upsale:
ee_only: 'Enterprise edition add-on'
ee_only: 'Add-on de la edición Enterprise'
wiki_formatting:
strong: "Negrita"
italic: "Cursiva"

@ -14,6 +14,13 @@ Stay up to date and get an overview of the new features included in the releases
<!--- New release notes are generated below. Do not remove comment. -->
<!--- RELEASE MARKER -->
## 12.4.0
Release date: 2022-12-05
[Release Notes](12-4-0/)
## 12.3.4
Release date: 2022-12-02

@ -1,15 +1,15 @@
#English strings go here
id:
js:
label_preview: 'Preview'
button_update: 'Update'
label_preview: 'Cek Ulang'
button_update: 'Memperbarui'
avatars:
label_choose_avatar: "Pilih avatar dari file"
label_choose_avatar: "Pilih avatar dari galery"
uploading_avatar: "Mengunggah avatar"
text_upload_instructions: |
Unggah avatar khusus Anda yang berukuran 128 x 128 pixel. File yang lebih besar akan diubah ukurannya dan dipotong agar sesuai.
Pratinjau avatar Anda akan ditampilkan sebelum mengunggah, setelah Anda memilih gambar
Unggah avatar Anda yang berukuran 128 x 128 pixel. File yang lebih besar akan diubah ukurannya dan dipotong agar sesuai.
Cek ulang avatar Anda akan ditampilkan sebelum mengunggah, setelah Anda memilih gambar
error_image_too_large: "Gambar terlalu besar"
wrong_file_format: "Format yang diperbolehkan adalah jpg, png, gif"
empty_file_error: "Unggah gambar yang valid (jpg, png, gif)"
wrong_file_format: "Format yang diizinkan adalah jpg, png, gif"
empty_file_error: "Harap unggah gambar yang valid (jpg, png, gif)"

@ -24,8 +24,8 @@ id:
attributes:
work_package:
position: "Posisi"
remaining_hours: "Jam yang tersisa"
remaining_time: "Jam yang tersisa"
remaining_hours: "Waktu tersisa"
remaining_time: "Jam tersisa"
story_points: "Cerita poin"
backlogs_work_package_type: "Jenis jaminan tersimpan"
errors:
@ -39,7 +39,7 @@ id:
parent_child_relationship_across_projects: "tidak valid karena paket kerja '%{work_package_name}' adalah tugas backlog dan oleh karena itu tidak dapat memiliki orang tua di luar proyek saat ini."
type_must_be_one_of_the_following: "Jenis harus menjadi salah satu dari berikut ini:%{type_names}."
version_id:
task_version_must_be_the_same_as_story_version: "harus sama seperti versi kisah orang tua."
task_version_must_be_the_same_as_story_version: "harus sesuai dengan versi orang tua."
sprint:
cannot_end_before_it_starts: "Sprint tidak bisa berakhir sebelum mulai."
backlogs:
@ -77,7 +77,7 @@ id:
unassigned: "Belum ditetapkan"
x_more: "%{count} lebih ..."
backlogs_active: "aktif"
backlogs_any: "apapun"
backlogs_any: "Apa saja"
backlogs_card_specification: "Jenis label untuk pencetakan kartu "
backlogs_inactive: "Proyek tidak menunjukkan aktivitas"
backlogs_points_burn_direction: "Poin terbakar habis / turun"
@ -99,7 +99,7 @@ id:
backlogs_empty_title: "Ada versi yang didefinisikan untuk digunakan dalam backlogs"
backlogs_empty_action_text: "Untuk memulai dengan backlogs, membuat versi baru, dan menetapkannya ke kolom backlogs."
button_edit_wiki: "Edit halaman wiki"
error_backlogs_task_cannot_be_story: "sdas"
error_backlogs_task_cannot_be_story: "Pengaturan tidak valid. Jenis tugas yang dipilih juga tidak boleh berupa jenis cerita"
error_intro_plural: "Kesalahan berikut ini ditemui:"
error_intro_singular: "Kesalahan berikut ini ditemui:"
error_outro: "Perbaiki kesalahan di atas sebelum mengirimkannya lagi."
@ -137,14 +137,14 @@ id:
label_wiki: "Wiki"
permission_view_master_backlog: "Lihat backlog master"
permission_view_taskboards: "Lihat papan tugas"
permission_select_done_statuses: "sdsad"
permission_select_done_statuses: "Pilih status selesai"
permission_update_sprints: "Perbarui sprint"
points_accepted: "poin diterima"
points_committed: "poin yang dilakukan"
points_resolved: "poin terselesaikan"
points_to_accept: "poin tidak diterima"
points_to_resolve: "poin tidak terselesaikan"
project_module_backlogs: "Backlogs"
project_module_backlogs: "Backlog"
rb_label_copy_tasks: "Salin paket kerja"
rb_label_copy_tasks_all: "Semua"
rb_label_copy_tasks_none: "Tidak ada"
@ -153,7 +153,7 @@ id:
remaining_hours: "jam yang tersisa"
required_burn_rate_hours: "tingkat pembakaran yang dibutuhkan (jam)"
required_burn_rate_points: "tingkat pembakaran yang dibutuhkan (poin)"
todo_work_package_description: "%{summary}: %{url}\n%{description}"
todo_work_package_description: "%{total}: %{url}\n%{keterangan}"
todo_work_package_summary: "%{type}: %{summary}"
version_settings_display_label: "Kolom di backlog"
version_settings_display_option_left: "kiri"

@ -84,9 +84,9 @@ module Pages
end
def switch_view_mode(text)
find('[data-qa-selector="op-team-planner--view-select-dropdown"]').click
retry_block do
find('[data-qa-selector="op-team-planner--view-select-dropdown"]').click
within('#op-team-planner--view-select-dropdown') do
click_button(text)
end

@ -383,7 +383,7 @@ describe Settings::Definition do
smtp_address: 'test address'
sendmail_location: 'test location'
bogus: 'bogusvalue'
consent_time: 2222-01-01
consent_time: '2222-01-01'
YAML
end

@ -26,10 +26,7 @@
# See COPYRIGHT and LICENSE files for more details.
#++
require 'rubocop'
require 'rubocop/rspec/shared_contexts'
require 'spec_helper'
require 'rubocop/rspec/support'
require 'rubocop/cop/open_project/no_do_end_block_with_rspec_capybara_matcher_in_expect'
RSpec.describe RuboCop::Cop::OpenProject::NoDoEndBlockWithRSpecCapybaraMatcherInExpect do

@ -26,10 +26,7 @@
# See COPYRIGHT and LICENSE files for more details.
#++
require 'rubocop'
require 'rubocop/rspec/shared_contexts'
require 'spec_helper'
require 'rubocop/rspec/support'
require 'rubocop/cop/open_project/use_service_result_factory_methods'
RSpec.describe RuboCop::Cop::OpenProject::UseServiceResultFactoryMethods do

@ -41,6 +41,15 @@ require "test_prof/recipes/rspec/factory_default"
# https://github.com/paper-trail-gem/paper_trail#7b-rspec
require 'paper_trail/frameworks/rspec'
# Add rubocop rspec helpers for our cop tests. It needs to be done before RSpec
# requires all files so that the CopHelper module does not hide some let
# definitions.
#
# Ideally we should move our cops to their own gem.
require 'rubocop'
require 'rubocop/rspec/shared_contexts'
require 'rubocop/rspec/support'
# Requires supporting ruby files with custom matchers and macros, etc, in
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
# run as spec files by default. This means that files in spec/support that end

Loading…
Cancel
Save