From f5858ab0cbaffd7e3d9a1c5188b220ff637f92f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Wed, 7 Feb 2024 12:21:59 +0100 Subject: [PATCH 01/46] update gemfile --- Gemfile.lock | 59 ---------------------------------------------------- 1 file changed, 59 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 56d0de75..b286cf12 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -17,11 +17,7 @@ GIT GIT remote: https://github.com/decidim-ice/decidim-module-decidim_awesome.git -<<<<<<< HEAD - revision: b9f0fb40ab054b30a596c9bec73cb5509d039d01 -======= revision: a1d53f705987dd035dec5cfef9ebf35c2319963c ->>>>>>> limit-amendments branch: limit-amendments specs: decidim-decidim_awesome (0.10.2) @@ -298,11 +294,7 @@ GEM public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) aws-eventstream (1.3.0) -<<<<<<< HEAD - aws-partitions (1.884.0) -======= aws-partitions (1.887.0) ->>>>>>> limit-amendments aws-sdk-core (3.191.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) @@ -426,11 +418,7 @@ GEM devise_invitable (2.0.9) actionmailer (>= 5.0) devise (>= 4.6) -<<<<<<< HEAD - diff-lcs (1.5.0) -======= diff-lcs (1.5.1) ->>>>>>> limit-amendments diffy (3.4.2) doc2text (0.4.6) nokogiri (>= 1.13.2, < 1.15.0) @@ -582,17 +570,10 @@ GEM method_source (1.0.0) mime-types (3.5.2) mime-types-data (~> 3.2015) -<<<<<<< HEAD - mime-types-data (3.2023.1205) - mini_magick (4.12.0) - mini_mime (1.1.5) - minitest (5.21.2) -======= mime-types-data (3.2024.0206) mini_magick (4.12.0) mini_mime (1.1.5) minitest (5.22.1) ->>>>>>> limit-amendments mixlib-cli (2.1.8) mixlib-config (3.0.27) tomlrb @@ -603,11 +584,7 @@ GEM mustache (1.1.1) net-http (0.4.1) uri -<<<<<<< HEAD - net-imap (0.4.9.1) -======= net-imap (0.4.10) ->>>>>>> limit-amendments date net-protocol net-pop (0.1.2) @@ -617,8 +594,6 @@ GEM net-smtp (0.4.0.1) net-protocol nio4r (2.7.0) - nokogiri (1.14.5-x86_64-darwin) - racc (~> 1.4) nokogiri (1.14.5-x86_64-linux) racc (~> 1.4) oauth (1.1.0) @@ -751,26 +726,6 @@ GEM actionpack (>= 5.2) railties (>= 5.2) rexml (3.2.6) -<<<<<<< HEAD - rspec (3.12.0) - rspec-core (~> 3.12.0) - rspec-expectations (~> 3.12.0) - rspec-mocks (~> 3.12.0) - rspec-cells (0.3.9) - cells (>= 4.0.0, < 6.0.0) - rspec-rails (>= 3.0.0, < 6.2.0) - rspec-core (3.12.2) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.3) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-html-matchers (0.9.4) - nokogiri (~> 1) - rspec (>= 3.0.0.a, < 4) - rspec-mocks (3.12.6) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) -======= rspec (3.13.0) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) @@ -789,7 +744,6 @@ GEM rspec-mocks (3.13.0) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) ->>>>>>> limit-amendments rspec-rails (4.1.2) actionpack (>= 4.2) activesupport (>= 4.2) @@ -800,11 +754,7 @@ GEM rspec-support (~> 3.10) rspec-retry (0.6.2) rspec-core (> 3.3) -<<<<<<< HEAD - rspec-support (3.12.1) -======= rspec-support (3.13.0) ->>>>>>> limit-amendments rspec_junit_formatter (0.3.0) rspec-core (>= 2, < 4, != 2.12.0) rubocop (1.28.2) @@ -919,11 +869,7 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) -<<<<<<< HEAD - webmock (3.19.1) -======= webmock (3.20.0) ->>>>>>> limit-amendments addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -945,14 +891,9 @@ GEM wkhtmltopdf-binary (0.12.6.6) xpath (3.2.0) nokogiri (~> 1.8) -<<<<<<< HEAD - zeitwerk (2.6.12) -======= zeitwerk (2.6.13) ->>>>>>> limit-amendments PLATFORMS - x86_64-darwin-23 x86_64-linux DEPENDENCIES From 3b3814962a0af75256f4e43c618c19342b7fd0e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 8 Feb 2024 17:34:06 +0100 Subject: [PATCH 02/46] fix translator config --- config/secrets.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/secrets.yml b/config/secrets.yml index 53df4d9a..d5ffb16b 100644 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -163,8 +163,8 @@ default: &default api_version: <%= Decidim::Env.new("ETHERPAD_API_VERSION", "1.2.1") %> rack_attack_skip: <%= ENV["RACK_ATTACK_SECRET"] %> translator: - api_key: ENV["TRANSLATOR_API_KEY"] - host: ENV["TRANSLATOR_HOST"] + api_key: <%= ENV["TRANSLATOR_API_KEY"] %> + host: <%= ENV["TRANSLATOR_HOST"] %> elections: <<: *elections_default storage: From b85429d2b6f74a99af1f60531b0518829ce9100f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 8 Feb 2024 17:34:25 +0100 Subject: [PATCH 03/46] fix translator config --- config/secrets.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/secrets.yml b/config/secrets.yml index 0e2691ba..fffa1b0f 100644 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -162,8 +162,8 @@ default: &default api_version: <%= Decidim::Env.new("ETHERPAD_API_VERSION", "1.2.1") %> rack_attack_skip: <%= ENV["RACK_ATTACK_SECRET"] %> translator: - api_key: ENV["TRANSLATOR_API_KEY"] - host: ENV["TRANSLATOR_HOST"] + api_key: <%= ENV["TRANSLATOR_API_KEY"] %> + host: <%= ENV["TRANSLATOR_HOST"] %> elections: <<: *elections_default storage: From fb7135a173625106f664e7bb5486cf10ec9f0369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 8 Feb 2024 18:40:16 +0100 Subject: [PATCH 04/46] update decidim --- Gemfile.lock | 10 +++++----- config/database.yml | 2 +- package-lock.json | 22 +++++++++++----------- package.json | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b286cf12..be2b9a13 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -17,7 +17,7 @@ GIT GIT remote: https://github.com/decidim-ice/decidim-module-decidim_awesome.git - revision: a1d53f705987dd035dec5cfef9ebf35c2319963c + revision: a4d5ab306ee305d7ee109fb9371be2597e67d6be branch: limit-amendments specs: decidim-decidim_awesome (0.10.2) @@ -47,7 +47,7 @@ GIT GIT remote: https://github.com/openpoke/decidim.git - revision: 724e785cc62ce9e2a6c72ec37f07e114ba015c04 + revision: 501a1f905e0e8c7fa5de0ae7c7ab763b3bdac4f3 branch: 0.27-canada specs: decidim (0.27.5) @@ -294,8 +294,8 @@ GEM public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) aws-eventstream (1.3.0) - aws-partitions (1.887.0) - aws-sdk-core (3.191.0) + aws-partitions (1.888.0) + aws-sdk-core (3.191.1) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.8) @@ -573,7 +573,7 @@ GEM mime-types-data (3.2024.0206) mini_magick (4.12.0) mini_mime (1.1.5) - minitest (5.22.1) + minitest (5.22.2) mixlib-cli (2.1.8) mixlib-config (3.0.27) tomlrb diff --git a/config/database.yml b/config/database.yml index a4b35ba8..7de7aded 100644 --- a/config/database.yml +++ b/config/database.yml @@ -21,7 +21,7 @@ default: &default encoding: unicode # For details on connection pooling, see rails configuration guide # http://guides.rubyonrails.org/configuring.html#database-pooling - pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> + pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i + 1 %> host: <%= ENV.fetch("DATABASE_HOST") { "localhost" } %> port: <%= ENV.fetch("DATABASE_PORT") { "5432" } %> username: <%= ENV.fetch("DATABASE_USERNAME") { "" } %> diff --git a/package-lock.json b/package-lock.json index 2e8a4d1d..53ed45c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,7 @@ "webpack-cli": "^4.8.0" }, "devDependencies": { - "@babel/eslint-parser": "^7.23.9", + "@babel/eslint-parser": "^7.23.10", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", @@ -170,9 +170,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.9.tgz", - "integrity": "sha512-xPndlO7qxiJbn0ATvfXQBjCS7qApc9xmKHArgI/FTEFxXas5dnjC/VqM37lfZun9dclRYcn+YQAr6uDFy0bB2g==", + "version": "7.23.10", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.10.tgz", + "integrity": "sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==", "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", @@ -18132,12 +18132,12 @@ }, "packages/browserslist-config": { "name": "@decidim/browserslist-config", - "version": "0.27.4", + "version": "0.27.5", "license": "AGPL-3.0" }, "packages/core": { "name": "@decidim/core", - "version": "0.27.4", + "version": "0.27.5", "license": "AGPL-3.0", "dependencies": { "@joeattardi/emoji-button": "^4.6.2", @@ -18186,7 +18186,7 @@ }, "packages/elections": { "name": "@decidim/elections", - "version": "0.27.4", + "version": "0.27.5", "license": "AGPL-3.0", "dependencies": { "@decidim/decidim-bulletin_board": "0.23.0", @@ -18196,7 +18196,7 @@ }, "packages/webpacker": { "name": "@decidim/webpacker", - "version": "0.27.4", + "version": "0.27.5", "license": "AGPL-3.0", "dependencies": { "@babel/core": "^7.15.5", @@ -18782,9 +18782,9 @@ } }, "@babel/eslint-parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.9.tgz", - "integrity": "sha512-xPndlO7qxiJbn0ATvfXQBjCS7qApc9xmKHArgI/FTEFxXas5dnjC/VqM37lfZun9dclRYcn+YQAr6uDFy0bB2g==", + "version": "7.23.10", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.10.tgz", + "integrity": "sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==", "requires": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", diff --git a/package.json b/package.json index e6fa4998..750ba9c0 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "extends @decidim/browserslist-config" ], "devDependencies": { - "@babel/eslint-parser": "^7.23.9", + "@babel/eslint-parser": "^7.23.10", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", From a7572012239f94179b3f449232578bbecacabe27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 14:14:05 +0100 Subject: [PATCH 05/46] update amendments lang on accepting --- Gemfile.lock | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index be2b9a13..bd69e191 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -47,7 +47,7 @@ GIT GIT remote: https://github.com/openpoke/decidim.git - revision: 501a1f905e0e8c7fa5de0ae7c7ab763b3bdac4f3 + revision: 592137e11249f4efdd5a0e4df5791ff7a389d18d branch: 0.27-canada specs: decidim (0.27.5) @@ -106,7 +106,7 @@ GIT acts_as_list (~> 0.9) batch-loader (~> 1.2) browser (~> 2.7) - carrierwave (~> 2.2.1) + carrierwave (~> 2.2.5, >= 2.2.5) cells-erb (~> 0.1.0) cells-rails (~> 0.1.3) charlock_holmes (~> 0.7) @@ -294,11 +294,12 @@ GEM public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) aws-eventstream (1.3.0) - aws-partitions (1.888.0) - aws-sdk-core (3.191.1) + aws-partitions (1.893.0) + aws-sdk-core (3.191.2) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.8) + base64 jmespath (~> 1, >= 1.6.1) aws-sdk-kms (1.77.0) aws-sdk-core (~> 3, >= 3.191.0) @@ -309,7 +310,7 @@ GEM aws-sigv4 (~> 1.8) aws-sigv4 (1.8.0) aws-eventstream (~> 1, >= 1.0.2) - axe-core-api (4.8.1) + axe-core-api (4.8.2) dumb_delegator virtus axe-core-rspec (4.1.0) @@ -382,7 +383,7 @@ GEM commonmarker (0.23.10) concurrent-ruby (1.2.3) connection_pool (2.4.1) - crack (0.4.6) + crack (1.0.0) bigdecimal rexml crass (1.0.6) @@ -420,11 +421,11 @@ GEM devise (>= 4.6) diff-lcs (1.5.1) diffy (3.4.2) - doc2text (0.4.6) - nokogiri (>= 1.13.2, < 1.15.0) + doc2text (0.4.7) + nokogiri (>= 1.13.2, < 1.17.0) rubyzip (~> 2.3.0) docile (1.4.0) - doorkeeper (5.6.8) + doorkeeper (5.6.9) railties (>= 5) doorkeeper-i18n (4.0.1) dumb_delegator (1.0.0) @@ -522,7 +523,8 @@ GEM rails (>= 3.2.0) jmespath (1.6.2) json (2.7.1) - jwt (2.7.1) + jwt (2.8.0) + base64 kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -541,7 +543,7 @@ GEM kramdown (~> 2.0) launchy (2.5.2) addressable (~> 2.8) - letter_opener (1.8.1) + letter_opener (1.9.0) launchy (>= 2.2, < 3) letter_opener_web (2.0.0) actionmailer (>= 5.2) @@ -594,7 +596,7 @@ GEM net-smtp (0.4.0.1) net-protocol nio4r (2.7.0) - nokogiri (1.14.5-x86_64-linux) + nokogiri (1.16.2-x86_64-linux) racc (~> 1.4) oauth (1.1.0) oauth-tty (~> 1.0, >= 1.0.1) @@ -717,7 +719,7 @@ GEM ffi (~> 1.0) redcarpet (3.6.0) redis (4.8.1) - redis-client (0.19.1) + redis-client (0.20.0) connection_pool regexp_parser (2.9.0) request_store (1.5.1) @@ -797,7 +799,7 @@ GEM rubyzip (>= 1.2.2) semantic_range (3.0.0) seven_zip_ruby (1.3.0) - sidekiq (7.2.1) + sidekiq (7.2.2) concurrent-ruby (< 2) connection_pool (>= 2.3.0) rack (>= 2.2.4) From 22399ed8e0880ac62acfd08e9e63f6b8d400c051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 14:14:05 +0100 Subject: [PATCH 06/46] update amendments lang on accepting --- Gemfile.lock | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index be2b9a13..bd69e191 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -47,7 +47,7 @@ GIT GIT remote: https://github.com/openpoke/decidim.git - revision: 501a1f905e0e8c7fa5de0ae7c7ab763b3bdac4f3 + revision: 592137e11249f4efdd5a0e4df5791ff7a389d18d branch: 0.27-canada specs: decidim (0.27.5) @@ -106,7 +106,7 @@ GIT acts_as_list (~> 0.9) batch-loader (~> 1.2) browser (~> 2.7) - carrierwave (~> 2.2.1) + carrierwave (~> 2.2.5, >= 2.2.5) cells-erb (~> 0.1.0) cells-rails (~> 0.1.3) charlock_holmes (~> 0.7) @@ -294,11 +294,12 @@ GEM public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) aws-eventstream (1.3.0) - aws-partitions (1.888.0) - aws-sdk-core (3.191.1) + aws-partitions (1.893.0) + aws-sdk-core (3.191.2) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.8) + base64 jmespath (~> 1, >= 1.6.1) aws-sdk-kms (1.77.0) aws-sdk-core (~> 3, >= 3.191.0) @@ -309,7 +310,7 @@ GEM aws-sigv4 (~> 1.8) aws-sigv4 (1.8.0) aws-eventstream (~> 1, >= 1.0.2) - axe-core-api (4.8.1) + axe-core-api (4.8.2) dumb_delegator virtus axe-core-rspec (4.1.0) @@ -382,7 +383,7 @@ GEM commonmarker (0.23.10) concurrent-ruby (1.2.3) connection_pool (2.4.1) - crack (0.4.6) + crack (1.0.0) bigdecimal rexml crass (1.0.6) @@ -420,11 +421,11 @@ GEM devise (>= 4.6) diff-lcs (1.5.1) diffy (3.4.2) - doc2text (0.4.6) - nokogiri (>= 1.13.2, < 1.15.0) + doc2text (0.4.7) + nokogiri (>= 1.13.2, < 1.17.0) rubyzip (~> 2.3.0) docile (1.4.0) - doorkeeper (5.6.8) + doorkeeper (5.6.9) railties (>= 5) doorkeeper-i18n (4.0.1) dumb_delegator (1.0.0) @@ -522,7 +523,8 @@ GEM rails (>= 3.2.0) jmespath (1.6.2) json (2.7.1) - jwt (2.7.1) + jwt (2.8.0) + base64 kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -541,7 +543,7 @@ GEM kramdown (~> 2.0) launchy (2.5.2) addressable (~> 2.8) - letter_opener (1.8.1) + letter_opener (1.9.0) launchy (>= 2.2, < 3) letter_opener_web (2.0.0) actionmailer (>= 5.2) @@ -594,7 +596,7 @@ GEM net-smtp (0.4.0.1) net-protocol nio4r (2.7.0) - nokogiri (1.14.5-x86_64-linux) + nokogiri (1.16.2-x86_64-linux) racc (~> 1.4) oauth (1.1.0) oauth-tty (~> 1.0, >= 1.0.1) @@ -717,7 +719,7 @@ GEM ffi (~> 1.0) redcarpet (3.6.0) redis (4.8.1) - redis-client (0.19.1) + redis-client (0.20.0) connection_pool regexp_parser (2.9.0) request_store (1.5.1) @@ -797,7 +799,7 @@ GEM rubyzip (>= 1.2.2) semantic_range (3.0.0) seven_zip_ruby (1.3.0) - sidekiq (7.2.1) + sidekiq (7.2.2) concurrent-ruby (< 2) connection_pool (>= 2.3.0) rack (>= 2.2.4) From 3695ad1b17f929b32618d9b18c761182262def9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 18:45:48 +0100 Subject: [PATCH 07/46] add test for user current locale --- spec/system/limit_amendments_spec.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/spec/system/limit_amendments_spec.rb b/spec/system/limit_amendments_spec.rb index 89fb122e..ba40b29c 100644 --- a/spec/system/limit_amendments_spec.rb +++ b/spec/system/limit_amendments_spec.rb @@ -131,6 +131,18 @@ def amendment_path expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") end end + + context "and user has as preference the translated locale" do + let(:logged_user) { create(:user, :confirmed, organization: organization, locale: "fr") } + + it "Enforces the original locale" do + click_link proposal.title["fr"] + click_link "Amend" + + expect(page).not_to have_content("CREATE AMENDMENT DRAFT") + expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") + end + end end it "can create a new one" do From a3e142cf7c0aceadf691a83f6bc85bfa2c45180a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 18:45:48 +0100 Subject: [PATCH 08/46] add test for user current locale --- spec/system/limit_amendments_spec.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/spec/system/limit_amendments_spec.rb b/spec/system/limit_amendments_spec.rb index 89fb122e..ba40b29c 100644 --- a/spec/system/limit_amendments_spec.rb +++ b/spec/system/limit_amendments_spec.rb @@ -131,6 +131,18 @@ def amendment_path expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") end end + + context "and user has as preference the translated locale" do + let(:logged_user) { create(:user, :confirmed, organization: organization, locale: "fr") } + + it "Enforces the original locale" do + click_link proposal.title["fr"] + click_link "Amend" + + expect(page).not_to have_content("CREATE AMENDMENT DRAFT") + expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") + end + end end it "can create a new one" do From ff6c0650c1312edf9a975c9c8431b6f0dbc4e30c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 18:48:57 +0100 Subject: [PATCH 09/46] block chrome version --- .github/workflows/test.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3ff0e058..2173fa16 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,7 +32,7 @@ jobs: DATABASE_HOST: localhost steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 1 @@ -40,6 +40,16 @@ jobs: with: chromedriver-version: 119.0.6045.105 + - name: List Chrome + run: apt list --installed | grep chrome + + - name: Remove Chrome + run: sudo apt remove google-chrome-stable + + - uses: browser-actions/setup-chrome@v1 + with: + chrome-version: 119.0.6045.105 + - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ env.RUBY_VERSION }} From 2663374b621bdac2f7093612c588c49a3093d882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 18:48:57 +0100 Subject: [PATCH 10/46] block chrome version --- .github/workflows/test.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3ff0e058..2173fa16 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,7 +32,7 @@ jobs: DATABASE_HOST: localhost steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 1 @@ -40,6 +40,16 @@ jobs: with: chromedriver-version: 119.0.6045.105 + - name: List Chrome + run: apt list --installed | grep chrome + + - name: Remove Chrome + run: sudo apt remove google-chrome-stable + + - uses: browser-actions/setup-chrome@v1 + with: + chrome-version: 119.0.6045.105 + - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ env.RUBY_VERSION }} From 2a76022d0ab1abcbe5f8fa522b287b528607e7e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 18:53:46 +0100 Subject: [PATCH 11/46] fix browser --- .github/workflows/test.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2173fa16..d82ef80d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,10 +46,6 @@ jobs: - name: Remove Chrome run: sudo apt remove google-chrome-stable - - uses: browser-actions/setup-chrome@v1 - with: - chrome-version: 119.0.6045.105 - - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ env.RUBY_VERSION }} @@ -63,10 +59,6 @@ jobs: DATABASE_USERNAME: postgres DATABASE_PASSWORD: postgres - - uses: nanasess/setup-chromedriver@v2 - with: - chromedriver-version: 119.0.6045.105 - - uses: actions/setup-node@master with: node-version: ${{ env.NODE_VERSION }} From 575ac8763f0cce28e2e042b527022f2c10a0aef3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 18:53:46 +0100 Subject: [PATCH 12/46] fix browser --- .github/workflows/test.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2173fa16..d82ef80d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,10 +46,6 @@ jobs: - name: Remove Chrome run: sudo apt remove google-chrome-stable - - uses: browser-actions/setup-chrome@v1 - with: - chrome-version: 119.0.6045.105 - - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ env.RUBY_VERSION }} @@ -63,10 +59,6 @@ jobs: DATABASE_USERNAME: postgres DATABASE_PASSWORD: postgres - - uses: nanasess/setup-chromedriver@v2 - with: - chromedriver-version: 119.0.6045.105 - - uses: actions/setup-node@master with: node-version: ${{ env.NODE_VERSION }} From 1171097a08e25c30d7b402baa540d69cc0a67f2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 19:52:11 +0100 Subject: [PATCH 13/46] fix browser --- .github/workflows/test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d82ef80d..84b08e14 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,12 +40,17 @@ jobs: with: chromedriver-version: 119.0.6045.105 + - name: List Chrome run: apt list --installed | grep chrome - name: Remove Chrome run: sudo apt remove google-chrome-stable + - uses: browser-actions/setup-chrome@v1 + with: + chrome-version: 119.0.6045.105 + - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ env.RUBY_VERSION }} From 590c7894bbd74cb8d0f7fcca044b5f47494d739d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 19:52:11 +0100 Subject: [PATCH 14/46] fix browser --- .github/workflows/test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d82ef80d..84b08e14 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,12 +40,17 @@ jobs: with: chromedriver-version: 119.0.6045.105 + - name: List Chrome run: apt list --installed | grep chrome - name: Remove Chrome run: sudo apt remove google-chrome-stable + - uses: browser-actions/setup-chrome@v1 + with: + chrome-version: 119.0.6045.105 + - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ env.RUBY_VERSION }} From 1e928305dc15589c9cfc9e50841eda12740a2b61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 23:47:03 +0100 Subject: [PATCH 15/46] rename interpolations --- .../concerns/amendments_enforce_locale.rb | 5 +- config/locales/en.yml | 2 +- config/locales/fr.yml | 2 +- spec/system/limit_amendments_spec.rb | 57 +++++++++++++++++-- 4 files changed, 57 insertions(+), 9 deletions(-) diff --git a/app/controllers/concerns/amendments_enforce_locale.rb b/app/controllers/concerns/amendments_enforce_locale.rb index ed4e4b5f..58ad97b8 100644 --- a/app/controllers/concerns/amendments_enforce_locale.rb +++ b/app/controllers/concerns/amendments_enforce_locale.rb @@ -14,10 +14,9 @@ def enforce_locale return unless Rails.application.secrets.enforce_original_amendments_locale amendable_locale = amendable.title.keys.first - return if locale.to_s == amendable_locale + return if current_locale.to_s == amendable_locale - # flash[:alert] = t("pending_limit_reached", scope: "decidim.decidim_awesome.amendments", emendation: translated_attribute(emendation.title)) - flash[:alert] = t("gpc.amendments.enforced_locale", locale: amendable_locale) + flash[:alert] = I18n.t("gpc.amendments.enforced_locale", lang: I18n.t("locale.name", locale: amendable_locale)) redirect_to new_amend_path(amendable_gid: amendable_gid, locale: amendable.title.keys.first) end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 1f40bae7..55ad4337 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -26,7 +26,7 @@ en: email_not_registered: Sorry, the email %{email} is not registered. Only existing users are allowed to login. gpc: amendments: - enforced_locale: This proposal was originally created in %{locale}. You can only submit amendments in the same language. + enforced_locale: This proposal was originally created in %{lang}. You can only submit amendments in the same language. limit_modal: extra_html: You can also be notified when the current amendment is accepted or rejected by following this proposal (you will receive a notification/email when the amendment is accepted or rejected depending on your notification preferences). campaign_space: "%{name} Campaign" diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 03842d75..ac420c9d 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -34,7 +34,7 @@ fr: email_not_registered: Désolé, l'email %{email} n'est pas enregistré. Seuls les utilisateurs existants sont autorisés à se connecter. gpc: amendments: - enforced_locale: Cette proposition a été initialement créée dans %{locale}. Vous ne pouvez soumettre des amendements que dans la même langue. + enforced_locale: Cette proposition a été initialement créée dans %{lang}. Vous ne pouvez soumettre des amendements que dans la même langue. limit_modal: extra_html: Vous pouvez également être informé de l'acceptation ou du rejet de l'amendement en cours en suivant cette proposition (vous recevrez une notification/un courriel lorsque l'amendement sera accepté ou rejeté, en fonction de vos préférences de notification). campaign_space: Campagne de %{name} diff --git a/spec/system/limit_amendments_spec.rb b/spec/system/limit_amendments_spec.rb index ba40b29c..62c53d6a 100644 --- a/spec/system/limit_amendments_spec.rb +++ b/spec/system/limit_amendments_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" describe "Custom proposals fields", type: :system, versioning: true do - let(:organization) { create :organization } + let(:organization) { create :organization, enable_machine_translations: true, machine_translation_display_priority: "translation" } let(:participatory_process) do create(:participatory_process, :with_steps, organization: organization) end @@ -109,15 +109,18 @@ def amendment_path context "when amendments are not limited" do let(:limit_pending_amendments) { false } - context "when proposal original locale is not the users locale" do - let(:proposal) { create :proposal, users: [creator], component: component, title: { fr: "Proposal in french" } } + context "when proposal original locale is not the organization locale" do + let(:proposal) { create :proposal, users: [creator], component: component, title: { fr: "Proposition en langue française", machine_translations: { en: "Proposal in french language" } } } it "Enforces the original locale" do click_link proposal.title["fr"] click_link "Amend" + expect(page).to have_content("This proposal was originally created in Français") expect(page).not_to have_content("CREATE AMENDMENT DRAFT") expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).to have_field(with: "Proposition en langue française") + expect(page).not_to have_field(with: "Proposal in french language") end context "and not enforced" do @@ -127,20 +130,66 @@ def amendment_path click_link proposal.title["fr"] click_link "Amend" + expect(page).not_to have_content("This proposal was originally created in Français") expect(page).to have_content("CREATE AMENDMENT DRAFT") expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).to have_field(with: "Proposition en langue française") + expect(page).not_to have_field(with: "Proposal in french language") end end context "and user has as preference the translated locale" do - let(:logged_user) { create(:user, :confirmed, organization: organization, locale: "fr") } + let(:user) { create(:user, :confirmed, organization: organization, locale: "en") } it "Enforces the original locale" do click_link proposal.title["fr"] click_link "Amend" + expect(page).to have_content("This proposal was originally created in Français") expect(page).not_to have_content("CREATE AMENDMENT DRAFT") expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).to have_field(with: "Proposition en langue française") + expect(page).not_to have_field(with: "Proposal in french language") + end + end + end + + context "when proposal original locale is the organization locale" do + let(:creator) { create(:user, :confirmed, organization: organization, locale: "fr") } + let(:proposal) { create :proposal, users: [creator], component: component, title: { en: "Proposal in english language", machine_translations: { fr: "Proposition en langue anglaise" } } } + + it "Enforces the original locale" do + within_language_menu do + click_link "Français" + end + + click_link "Proposition en langue anglaise" + click_link "Modifier Proposition" + + expect(page).to have_content("Cette proposition a été initialement créée dans English") + expect(page).to have_content("CREATE AMENDMENT DRAFT") + expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).to have_field(with: "Proposal in english language") + expect(page).not_to have_field(with: "Proposition en langue anglaise") + end + + context "and user has as preference the translated locale" do + let(:user) { create(:user, :confirmed, organization: organization, locale: "fr") } + + + it "Enforces the original locale" do + within_language_menu do + click_link "Français" + end + + click_link "Proposition en langue anglaise" + click_link "Modifier Proposition" + + expect(page).to have_content("Cette proposition a été initialement créée dans English") + expect(page).to have_content("CREATE AMENDMENT DRAFT") + expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).to have_field(with: "Proposal in english language") + expect(page).not_to have_field(with: "Proposition en langue anglaise") end end end From 6e624659e2403f08f621b3b4b79ca55e94fc670d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 19 Feb 2024 23:47:03 +0100 Subject: [PATCH 16/46] rename interpolations --- .../concerns/amendments_enforce_locale.rb | 5 +- config/locales/en.yml | 2 +- config/locales/fr.yml | 2 +- spec/system/limit_amendments_spec.rb | 57 +++++++++++++++++-- 4 files changed, 57 insertions(+), 9 deletions(-) diff --git a/app/controllers/concerns/amendments_enforce_locale.rb b/app/controllers/concerns/amendments_enforce_locale.rb index ed4e4b5f..58ad97b8 100644 --- a/app/controllers/concerns/amendments_enforce_locale.rb +++ b/app/controllers/concerns/amendments_enforce_locale.rb @@ -14,10 +14,9 @@ def enforce_locale return unless Rails.application.secrets.enforce_original_amendments_locale amendable_locale = amendable.title.keys.first - return if locale.to_s == amendable_locale + return if current_locale.to_s == amendable_locale - # flash[:alert] = t("pending_limit_reached", scope: "decidim.decidim_awesome.amendments", emendation: translated_attribute(emendation.title)) - flash[:alert] = t("gpc.amendments.enforced_locale", locale: amendable_locale) + flash[:alert] = I18n.t("gpc.amendments.enforced_locale", lang: I18n.t("locale.name", locale: amendable_locale)) redirect_to new_amend_path(amendable_gid: amendable_gid, locale: amendable.title.keys.first) end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 1f40bae7..55ad4337 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -26,7 +26,7 @@ en: email_not_registered: Sorry, the email %{email} is not registered. Only existing users are allowed to login. gpc: amendments: - enforced_locale: This proposal was originally created in %{locale}. You can only submit amendments in the same language. + enforced_locale: This proposal was originally created in %{lang}. You can only submit amendments in the same language. limit_modal: extra_html: You can also be notified when the current amendment is accepted or rejected by following this proposal (you will receive a notification/email when the amendment is accepted or rejected depending on your notification preferences). campaign_space: "%{name} Campaign" diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 03842d75..ac420c9d 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -34,7 +34,7 @@ fr: email_not_registered: Désolé, l'email %{email} n'est pas enregistré. Seuls les utilisateurs existants sont autorisés à se connecter. gpc: amendments: - enforced_locale: Cette proposition a été initialement créée dans %{locale}. Vous ne pouvez soumettre des amendements que dans la même langue. + enforced_locale: Cette proposition a été initialement créée dans %{lang}. Vous ne pouvez soumettre des amendements que dans la même langue. limit_modal: extra_html: Vous pouvez également être informé de l'acceptation ou du rejet de l'amendement en cours en suivant cette proposition (vous recevrez une notification/un courriel lorsque l'amendement sera accepté ou rejeté, en fonction de vos préférences de notification). campaign_space: Campagne de %{name} diff --git a/spec/system/limit_amendments_spec.rb b/spec/system/limit_amendments_spec.rb index ba40b29c..62c53d6a 100644 --- a/spec/system/limit_amendments_spec.rb +++ b/spec/system/limit_amendments_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" describe "Custom proposals fields", type: :system, versioning: true do - let(:organization) { create :organization } + let(:organization) { create :organization, enable_machine_translations: true, machine_translation_display_priority: "translation" } let(:participatory_process) do create(:participatory_process, :with_steps, organization: organization) end @@ -109,15 +109,18 @@ def amendment_path context "when amendments are not limited" do let(:limit_pending_amendments) { false } - context "when proposal original locale is not the users locale" do - let(:proposal) { create :proposal, users: [creator], component: component, title: { fr: "Proposal in french" } } + context "when proposal original locale is not the organization locale" do + let(:proposal) { create :proposal, users: [creator], component: component, title: { fr: "Proposition en langue française", machine_translations: { en: "Proposal in french language" } } } it "Enforces the original locale" do click_link proposal.title["fr"] click_link "Amend" + expect(page).to have_content("This proposal was originally created in Français") expect(page).not_to have_content("CREATE AMENDMENT DRAFT") expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).to have_field(with: "Proposition en langue française") + expect(page).not_to have_field(with: "Proposal in french language") end context "and not enforced" do @@ -127,20 +130,66 @@ def amendment_path click_link proposal.title["fr"] click_link "Amend" + expect(page).not_to have_content("This proposal was originally created in Français") expect(page).to have_content("CREATE AMENDMENT DRAFT") expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).to have_field(with: "Proposition en langue française") + expect(page).not_to have_field(with: "Proposal in french language") end end context "and user has as preference the translated locale" do - let(:logged_user) { create(:user, :confirmed, organization: organization, locale: "fr") } + let(:user) { create(:user, :confirmed, organization: organization, locale: "en") } it "Enforces the original locale" do click_link proposal.title["fr"] click_link "Amend" + expect(page).to have_content("This proposal was originally created in Français") expect(page).not_to have_content("CREATE AMENDMENT DRAFT") expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).to have_field(with: "Proposition en langue française") + expect(page).not_to have_field(with: "Proposal in french language") + end + end + end + + context "when proposal original locale is the organization locale" do + let(:creator) { create(:user, :confirmed, organization: organization, locale: "fr") } + let(:proposal) { create :proposal, users: [creator], component: component, title: { en: "Proposal in english language", machine_translations: { fr: "Proposition en langue anglaise" } } } + + it "Enforces the original locale" do + within_language_menu do + click_link "Français" + end + + click_link "Proposition en langue anglaise" + click_link "Modifier Proposition" + + expect(page).to have_content("Cette proposition a été initialement créée dans English") + expect(page).to have_content("CREATE AMENDMENT DRAFT") + expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).to have_field(with: "Proposal in english language") + expect(page).not_to have_field(with: "Proposition en langue anglaise") + end + + context "and user has as preference the translated locale" do + let(:user) { create(:user, :confirmed, organization: organization, locale: "fr") } + + + it "Enforces the original locale" do + within_language_menu do + click_link "Français" + end + + click_link "Proposition en langue anglaise" + click_link "Modifier Proposition" + + expect(page).to have_content("Cette proposition a été initialement créée dans English") + expect(page).to have_content("CREATE AMENDMENT DRAFT") + expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).to have_field(with: "Proposal in english language") + expect(page).not_to have_field(with: "Proposition en langue anglaise") end end end From 0ba95da278c6e98ca6536944b10972080dff4d85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 11:36:54 +0100 Subject: [PATCH 17/46] fix locale amendment forcing conf --- .../concerns/amendments_enforce_locale.rb | 2 +- config/i18n-tasks.yml | 1 + spec/lib/overrides_spec.rb | 2 +- spec/system/limit_amendments_spec.rb | 50 +++++++++++-------- 4 files changed, 32 insertions(+), 23 deletions(-) diff --git a/app/controllers/concerns/amendments_enforce_locale.rb b/app/controllers/concerns/amendments_enforce_locale.rb index 58ad97b8..a262d4ff 100644 --- a/app/controllers/concerns/amendments_enforce_locale.rb +++ b/app/controllers/concerns/amendments_enforce_locale.rb @@ -11,7 +11,7 @@ module AmendmentsEnforceLocale def enforce_locale return unless amendable.component.settings.try(:amendments_enabled) return unless amendable.component.current_settings.try(:amendment_creation_enabled) - return unless Rails.application.secrets.enforce_original_amendments_locale + return unless Rails.application.secrets.gpc[:enforce_original_amendments_locale] amendable_locale = amendable.title.keys.first return if current_locale.to_s == amendable_locale diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index efbbc4ff..db8937b5 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -108,6 +108,7 @@ ignore_unused: # - 'simple_form.{placeholders,hints,labels}.*' # - 'simple_form.{error_notification,required}.:' - gpc.* + - decidim.events.ready_to_amend.* - devise.* - decidim.calendar.* ## Exclude these keys from the `i18n-tasks eq-base' report: diff --git a/spec/lib/overrides_spec.rb b/spec/lib/overrides_spec.rb index 59714d5e..66cbb575 100644 --- a/spec/lib/overrides_spec.rb +++ b/spec/lib/overrides_spec.rb @@ -16,7 +16,7 @@ package: "decidim-core", files: { # controllers - "/app/controllers/decidim/devise/omniauth_registrations_controller.rb" => "05bc35af4b5f855736f14efbd22e439b", + "/app/controllers/decidim/devise/omniauth_registrations_controller.rb" => "d2470bf88b509572affa7f225f6ee424", "/app/controllers/decidim/devise/registrations_controller.rb" => "f519953daa03df46b98d34b3311a17d0", "/app/controllers/decidim/devise/invitations_controller.rb" => "32ef1da80ec9dd20b884e5829c3307e6", # layouts diff --git a/spec/system/limit_amendments_spec.rb b/spec/system/limit_amendments_spec.rb index 62c53d6a..f45511cf 100644 --- a/spec/system/limit_amendments_spec.rb +++ b/spec/system/limit_amendments_spec.rb @@ -32,9 +32,15 @@ let(:amendment_creation_enabled) { true } let(:logged_user) { user } let(:enforce_locale) { true } + let(:gpc_conf) do + { + enforce_original_amendments_locale: enforce_locale + } + end before do - allow(Rails.application.secrets).to receive(:enforce_original_amendments_locale).and_return(enforce_locale) + allow(Rails.application.secrets).to receive(:gpc).and_return(gpc_conf) + allow(Decidim).to receive(:machine_translation_service_klass).and_return(nil) switch_to_host(organization.host) login_as logged_user, scope: :user visit_component @@ -110,12 +116,14 @@ def amendment_path let(:limit_pending_amendments) { false } context "when proposal original locale is not the organization locale" do + before do + click_link "Proposal in french language" + click_link "Amend" + end + let(:proposal) { create :proposal, users: [creator], component: component, title: { fr: "Proposition en langue française", machine_translations: { en: "Proposal in french language" } } } it "Enforces the original locale" do - click_link proposal.title["fr"] - click_link "Amend" - expect(page).to have_content("This proposal was originally created in Français") expect(page).not_to have_content("CREATE AMENDMENT DRAFT") expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") @@ -127,14 +135,11 @@ def amendment_path let(:enforce_locale) { false } it "does not enforce the original locale" do - click_link proposal.title["fr"] - click_link "Amend" - expect(page).not_to have_content("This proposal was originally created in Français") expect(page).to have_content("CREATE AMENDMENT DRAFT") expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") - expect(page).to have_field(with: "Proposition en langue française") - expect(page).not_to have_field(with: "Proposal in french language") + expect(page).not_to have_field(with: "Proposition en langue française") + expect(page).to have_field(with: "Proposal in french language") end end @@ -142,9 +147,6 @@ def amendment_path let(:user) { create(:user, :confirmed, organization: organization, locale: "en") } it "Enforces the original locale" do - click_link proposal.title["fr"] - click_link "Amend" - expect(page).to have_content("This proposal was originally created in Français") expect(page).not_to have_content("CREATE AMENDMENT DRAFT") expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") @@ -158,14 +160,16 @@ def amendment_path let(:creator) { create(:user, :confirmed, organization: organization, locale: "fr") } let(:proposal) { create :proposal, users: [creator], component: component, title: { en: "Proposal in english language", machine_translations: { fr: "Proposition en langue anglaise" } } } - it "Enforces the original locale" do + before do within_language_menu do click_link "Français" end click_link "Proposition en langue anglaise" click_link "Modifier Proposition" + end + it "Enforces the original locale" do expect(page).to have_content("Cette proposition a été initialement créée dans English") expect(page).to have_content("CREATE AMENDMENT DRAFT") expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") @@ -173,18 +177,22 @@ def amendment_path expect(page).not_to have_field(with: "Proposition en langue anglaise") end + context "and not enforced" do + let(:enforce_locale) { false } + + it "does not enforce the original locale" do + expect(page).not_to have_content("Cette proposition a été initialement créée dans English") + expect(page).not_to have_content("CREATE AMENDMENT DRAFT") + expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).not_to have_field(with: "Proposal in english language") + expect(page).to have_field(with: "Proposition en langue anglaise") + end + end + context "and user has as preference the translated locale" do let(:user) { create(:user, :confirmed, organization: organization, locale: "fr") } - it "Enforces the original locale" do - within_language_menu do - click_link "Français" - end - - click_link "Proposition en langue anglaise" - click_link "Modifier Proposition" - expect(page).to have_content("Cette proposition a été initialement créée dans English") expect(page).to have_content("CREATE AMENDMENT DRAFT") expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") From fb6860f13cab85bb59ca29ea3871242d05cacfe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 11:36:54 +0100 Subject: [PATCH 18/46] fix locale amendment forcing conf --- .../concerns/amendments_enforce_locale.rb | 2 +- config/i18n-tasks.yml | 1 + spec/lib/overrides_spec.rb | 2 +- spec/system/limit_amendments_spec.rb | 50 +++++++++++-------- 4 files changed, 32 insertions(+), 23 deletions(-) diff --git a/app/controllers/concerns/amendments_enforce_locale.rb b/app/controllers/concerns/amendments_enforce_locale.rb index 58ad97b8..a262d4ff 100644 --- a/app/controllers/concerns/amendments_enforce_locale.rb +++ b/app/controllers/concerns/amendments_enforce_locale.rb @@ -11,7 +11,7 @@ module AmendmentsEnforceLocale def enforce_locale return unless amendable.component.settings.try(:amendments_enabled) return unless amendable.component.current_settings.try(:amendment_creation_enabled) - return unless Rails.application.secrets.enforce_original_amendments_locale + return unless Rails.application.secrets.gpc[:enforce_original_amendments_locale] amendable_locale = amendable.title.keys.first return if current_locale.to_s == amendable_locale diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index efbbc4ff..db8937b5 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -108,6 +108,7 @@ ignore_unused: # - 'simple_form.{placeholders,hints,labels}.*' # - 'simple_form.{error_notification,required}.:' - gpc.* + - decidim.events.ready_to_amend.* - devise.* - decidim.calendar.* ## Exclude these keys from the `i18n-tasks eq-base' report: diff --git a/spec/lib/overrides_spec.rb b/spec/lib/overrides_spec.rb index 59714d5e..66cbb575 100644 --- a/spec/lib/overrides_spec.rb +++ b/spec/lib/overrides_spec.rb @@ -16,7 +16,7 @@ package: "decidim-core", files: { # controllers - "/app/controllers/decidim/devise/omniauth_registrations_controller.rb" => "05bc35af4b5f855736f14efbd22e439b", + "/app/controllers/decidim/devise/omniauth_registrations_controller.rb" => "d2470bf88b509572affa7f225f6ee424", "/app/controllers/decidim/devise/registrations_controller.rb" => "f519953daa03df46b98d34b3311a17d0", "/app/controllers/decidim/devise/invitations_controller.rb" => "32ef1da80ec9dd20b884e5829c3307e6", # layouts diff --git a/spec/system/limit_amendments_spec.rb b/spec/system/limit_amendments_spec.rb index 62c53d6a..f45511cf 100644 --- a/spec/system/limit_amendments_spec.rb +++ b/spec/system/limit_amendments_spec.rb @@ -32,9 +32,15 @@ let(:amendment_creation_enabled) { true } let(:logged_user) { user } let(:enforce_locale) { true } + let(:gpc_conf) do + { + enforce_original_amendments_locale: enforce_locale + } + end before do - allow(Rails.application.secrets).to receive(:enforce_original_amendments_locale).and_return(enforce_locale) + allow(Rails.application.secrets).to receive(:gpc).and_return(gpc_conf) + allow(Decidim).to receive(:machine_translation_service_klass).and_return(nil) switch_to_host(organization.host) login_as logged_user, scope: :user visit_component @@ -110,12 +116,14 @@ def amendment_path let(:limit_pending_amendments) { false } context "when proposal original locale is not the organization locale" do + before do + click_link "Proposal in french language" + click_link "Amend" + end + let(:proposal) { create :proposal, users: [creator], component: component, title: { fr: "Proposition en langue française", machine_translations: { en: "Proposal in french language" } } } it "Enforces the original locale" do - click_link proposal.title["fr"] - click_link "Amend" - expect(page).to have_content("This proposal was originally created in Français") expect(page).not_to have_content("CREATE AMENDMENT DRAFT") expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") @@ -127,14 +135,11 @@ def amendment_path let(:enforce_locale) { false } it "does not enforce the original locale" do - click_link proposal.title["fr"] - click_link "Amend" - expect(page).not_to have_content("This proposal was originally created in Français") expect(page).to have_content("CREATE AMENDMENT DRAFT") expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") - expect(page).to have_field(with: "Proposition en langue française") - expect(page).not_to have_field(with: "Proposal in french language") + expect(page).not_to have_field(with: "Proposition en langue française") + expect(page).to have_field(with: "Proposal in french language") end end @@ -142,9 +147,6 @@ def amendment_path let(:user) { create(:user, :confirmed, organization: organization, locale: "en") } it "Enforces the original locale" do - click_link proposal.title["fr"] - click_link "Amend" - expect(page).to have_content("This proposal was originally created in Français") expect(page).not_to have_content("CREATE AMENDMENT DRAFT") expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") @@ -158,14 +160,16 @@ def amendment_path let(:creator) { create(:user, :confirmed, organization: organization, locale: "fr") } let(:proposal) { create :proposal, users: [creator], component: component, title: { en: "Proposal in english language", machine_translations: { fr: "Proposition en langue anglaise" } } } - it "Enforces the original locale" do + before do within_language_menu do click_link "Français" end click_link "Proposition en langue anglaise" click_link "Modifier Proposition" + end + it "Enforces the original locale" do expect(page).to have_content("Cette proposition a été initialement créée dans English") expect(page).to have_content("CREATE AMENDMENT DRAFT") expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") @@ -173,18 +177,22 @@ def amendment_path expect(page).not_to have_field(with: "Proposition en langue anglaise") end + context "and not enforced" do + let(:enforce_locale) { false } + + it "does not enforce the original locale" do + expect(page).not_to have_content("Cette proposition a été initialement créée dans English") + expect(page).not_to have_content("CREATE AMENDMENT DRAFT") + expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).not_to have_field(with: "Proposal in english language") + expect(page).to have_field(with: "Proposition en langue anglaise") + end + end + context "and user has as preference the translated locale" do let(:user) { create(:user, :confirmed, organization: organization, locale: "fr") } - it "Enforces the original locale" do - within_language_menu do - click_link "Français" - end - - click_link "Proposition en langue anglaise" - click_link "Modifier Proposition" - expect(page).to have_content("Cette proposition a été initialement créée dans English") expect(page).to have_content("CREATE AMENDMENT DRAFT") expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") From e29f5697fc69c24d4ef9ecd5eadfdfe488355884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 14:11:10 +0100 Subject: [PATCH 19/46] fix modal login window --- .../add_admin_login_button.html.erb.deface | 5 ++ .../replace_login_box_class.html.erb.deface | 2 + .../replace_civicrm_button.html.erb.deface | 7 +++ .../replace_civirm_buttons.html.erb.deface | 7 +++ .../add_admin_login_button.html.erb.deface | 7 +++ .../replace_login_box_class.html.erb.deface | 3 + .../_custom_omniauth_buttons.html.erb | 27 -------- .../decidim/devise/sessions/new.html.erb | 61 ------------------- .../shared/_omniauth_buttons_mini.html.erb | 27 -------- config/schedule.yml | 14 ++--- 10 files changed, 38 insertions(+), 122 deletions(-) create mode 100644 app/overrides/decidim/devise/sessions/new/add_admin_login_button.html.erb.deface create mode 100644 app/overrides/decidim/devise/sessions/new/replace_login_box_class.html.erb.deface create mode 100644 app/overrides/decidim/devise/shared/_omniauth_buttons/replace_civicrm_button.html.erb.deface create mode 100644 app/overrides/decidim/devise/shared/_omniauth_buttons_mini/replace_civirm_buttons.html.erb.deface create mode 100644 app/overrides/decidim/shared/_login_modal/add_admin_login_button.html.erb.deface create mode 100644 app/overrides/decidim/shared/_login_modal/replace_login_box_class.html.erb.deface delete mode 100644 app/views/decidim/devise/sessions/_custom_omniauth_buttons.html.erb delete mode 100644 app/views/decidim/devise/sessions/new.html.erb delete mode 100644 app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb diff --git a/app/overrides/decidim/devise/sessions/new/add_admin_login_button.html.erb.deface b/app/overrides/decidim/devise/sessions/new/add_admin_login_button.html.erb.deface new file mode 100644 index 00000000..af983df1 --- /dev/null +++ b/app/overrides/decidim/devise/sessions/new/add_admin_login_button.html.erb.deface @@ -0,0 +1,5 @@ + + +
+ <%= button_tag t("gpc.login.admin_login"), class: "button expanded hollow", onclick: "$('.login_box').toggleClass('hide');$(this).toggleClass('hollow');" %> +
diff --git a/app/overrides/decidim/devise/sessions/new/replace_login_box_class.html.erb.deface b/app/overrides/decidim/devise/sessions/new/replace_login_box_class.html.erb.deface new file mode 100644 index 00000000..32a24343 --- /dev/null +++ b/app/overrides/decidim/devise/sessions/new/replace_login_box_class.html.erb.deface @@ -0,0 +1,2 @@ + diff --git a/app/overrides/decidim/devise/shared/_omniauth_buttons/replace_civicrm_button.html.erb.deface b/app/overrides/decidim/devise/shared/_omniauth_buttons/replace_civicrm_button.html.erb.deface new file mode 100644 index 00000000..00149f92 --- /dev/null +++ b/app/overrides/decidim/devise/shared/_omniauth_buttons/replace_civicrm_button.html.erb.deface @@ -0,0 +1,7 @@ + + +<% if provider == :civicrm %> + <%= t("gpc.login.sign_in_civicrm") %> +<% else %> + <%= t("devise.shared.links.sign_in_with_provider", provider: normalize_provider_name(provider).titleize) %> +<% end %> diff --git a/app/overrides/decidim/devise/shared/_omniauth_buttons_mini/replace_civirm_buttons.html.erb.deface b/app/overrides/decidim/devise/shared/_omniauth_buttons_mini/replace_civirm_buttons.html.erb.deface new file mode 100644 index 00000000..00149f92 --- /dev/null +++ b/app/overrides/decidim/devise/shared/_omniauth_buttons_mini/replace_civirm_buttons.html.erb.deface @@ -0,0 +1,7 @@ + + +<% if provider == :civicrm %> + <%= t("gpc.login.sign_in_civicrm") %> +<% else %> + <%= t("devise.shared.links.sign_in_with_provider", provider: normalize_provider_name(provider).titleize) %> +<% end %> diff --git a/app/overrides/decidim/shared/_login_modal/add_admin_login_button.html.erb.deface b/app/overrides/decidim/shared/_login_modal/add_admin_login_button.html.erb.deface new file mode 100644 index 00000000..327d4911 --- /dev/null +++ b/app/overrides/decidim/shared/_login_modal/add_admin_login_button.html.erb.deface @@ -0,0 +1,7 @@ + + +
+
+ <%= button_tag t("gpc.login.admin_login"), class: "button expanded hollow", onclick: "$('.login_box').toggleClass('hide');$(this).toggleClass('hollow');" %> +
+
diff --git a/app/overrides/decidim/shared/_login_modal/replace_login_box_class.html.erb.deface b/app/overrides/decidim/shared/_login_modal/replace_login_box_class.html.erb.deface new file mode 100644 index 00000000..0c2ea073 --- /dev/null +++ b/app/overrides/decidim/shared/_login_modal/replace_login_box_class.html.erb.deface @@ -0,0 +1,3 @@ + diff --git a/app/views/decidim/devise/sessions/_custom_omniauth_buttons.html.erb b/app/views/decidim/devise/sessions/_custom_omniauth_buttons.html.erb deleted file mode 100644 index 915cf9fd..00000000 --- a/app/views/decidim/devise/sessions/_custom_omniauth_buttons.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<% if Devise.mappings[:user].omniauthable? && current_organization.enabled_omniauth_providers.any? %> -
-
- <%- current_organization.enabled_omniauth_providers.keys.each do |provider| %> - - <% end %> - <%- if current_organization.sign_in_enabled? %> - - <%= t("or", scope: "decidim.devise.shared.omniauth_buttons") %> - - <%- end %> -
-
-<% end %> diff --git a/app/views/decidim/devise/sessions/new.html.erb b/app/views/decidim/devise/sessions/new.html.erb deleted file mode 100644 index 27b17242..00000000 --- a/app/views/decidim/devise/sessions/new.html.erb +++ /dev/null @@ -1,61 +0,0 @@ -<% add_decidim_page_title(t("devise.sessions.new.sign_in")) %> - -
-
-
-
-

<%= t("devise.sessions.new.sign_in") %>

- <% if current_organization.sign_up_enabled? %> -

- <%= t(".are_you_new?") %> - <%= link_to t(".register"), new_user_registration_path %> -

- <% elsif current_organization.sign_in_enabled? %> -

- <%= t(".sign_up_disabled") %> -

- <% else %> -

- <%= t(".sign_in_disabled") %> -

- <% end %> -
-
- <% cache current_organization do %> - <%= render "decidim/devise/sessions/custom_omniauth_buttons" %> - <% end %> - - <% if current_organization.sign_in_enabled? %> -
-
- <%= button_tag t("gpc.login.admin_login"), class: "button expanded hollow", onclick: "$('.login_box').toggleClass('hide');$(this).toggleClass('hollow');" %> -
-
- -
-
- <% end %> -
-
diff --git a/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb b/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb deleted file mode 100644 index 8d02ac36..00000000 --- a/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<% if Devise.mappings[:user].omniauthable? && current_organization.enabled_omniauth_providers.any? %> -
-
-
- <%- current_organization.enabled_omniauth_providers.keys.each do |provider| %> - - <% end %> -
- - <%= t("or", scope: "decidim.devise.shared.omniauth_buttons") %> - -
-
-<% end %> diff --git a/config/schedule.yml b/config/schedule.yml index eb4e9ab5..3dd72650 100644 --- a/config/schedule.yml +++ b/config/schedule.yml @@ -1,10 +1,10 @@ -hourly_active_step_job: - cron: "0 * * * *" - class: "InvokeRakeTaskJob" - queue: default - status: <%= ENV.fetch("CHANGE_ACTIVE_STEP", "enabled") %> # enabled by default - args: - task: decidim_participatory_processes:change_active_step +# hourly_active_step_job: +# cron: "0 * * * *" +# class: "InvokeRakeTaskJob" +# queue: default +# status: <%= ENV.fetch("CHANGE_ACTIVE_STEP", "enabled") %> # enabled by default +# args: +# task: decidim_participatory_processes:change_active_step daily_open_data_job: cron: "3 3 * * *" From c972fa9a7ee1e55b13eddbb4049c39e602c61095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 14:11:10 +0100 Subject: [PATCH 20/46] fix modal login window --- .../add_admin_login_button.html.erb.deface | 5 ++ .../replace_login_box_class.html.erb.deface | 2 + .../replace_civicrm_button.html.erb.deface | 7 +++ .../replace_civirm_buttons.html.erb.deface | 7 +++ .../add_admin_login_button.html.erb.deface | 7 +++ .../replace_login_box_class.html.erb.deface | 3 + .../_custom_omniauth_buttons.html.erb | 27 -------- .../decidim/devise/sessions/new.html.erb | 61 ------------------- .../shared/_omniauth_buttons_mini.html.erb | 27 -------- config/schedule.yml | 14 ++--- 10 files changed, 38 insertions(+), 122 deletions(-) create mode 100644 app/overrides/decidim/devise/sessions/new/add_admin_login_button.html.erb.deface create mode 100644 app/overrides/decidim/devise/sessions/new/replace_login_box_class.html.erb.deface create mode 100644 app/overrides/decidim/devise/shared/_omniauth_buttons/replace_civicrm_button.html.erb.deface create mode 100644 app/overrides/decidim/devise/shared/_omniauth_buttons_mini/replace_civirm_buttons.html.erb.deface create mode 100644 app/overrides/decidim/shared/_login_modal/add_admin_login_button.html.erb.deface create mode 100644 app/overrides/decidim/shared/_login_modal/replace_login_box_class.html.erb.deface delete mode 100644 app/views/decidim/devise/sessions/_custom_omniauth_buttons.html.erb delete mode 100644 app/views/decidim/devise/sessions/new.html.erb delete mode 100644 app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb diff --git a/app/overrides/decidim/devise/sessions/new/add_admin_login_button.html.erb.deface b/app/overrides/decidim/devise/sessions/new/add_admin_login_button.html.erb.deface new file mode 100644 index 00000000..af983df1 --- /dev/null +++ b/app/overrides/decidim/devise/sessions/new/add_admin_login_button.html.erb.deface @@ -0,0 +1,5 @@ + + +
+ <%= button_tag t("gpc.login.admin_login"), class: "button expanded hollow", onclick: "$('.login_box').toggleClass('hide');$(this).toggleClass('hollow');" %> +
diff --git a/app/overrides/decidim/devise/sessions/new/replace_login_box_class.html.erb.deface b/app/overrides/decidim/devise/sessions/new/replace_login_box_class.html.erb.deface new file mode 100644 index 00000000..32a24343 --- /dev/null +++ b/app/overrides/decidim/devise/sessions/new/replace_login_box_class.html.erb.deface @@ -0,0 +1,2 @@ + diff --git a/app/overrides/decidim/devise/shared/_omniauth_buttons/replace_civicrm_button.html.erb.deface b/app/overrides/decidim/devise/shared/_omniauth_buttons/replace_civicrm_button.html.erb.deface new file mode 100644 index 00000000..00149f92 --- /dev/null +++ b/app/overrides/decidim/devise/shared/_omniauth_buttons/replace_civicrm_button.html.erb.deface @@ -0,0 +1,7 @@ + + +<% if provider == :civicrm %> + <%= t("gpc.login.sign_in_civicrm") %> +<% else %> + <%= t("devise.shared.links.sign_in_with_provider", provider: normalize_provider_name(provider).titleize) %> +<% end %> diff --git a/app/overrides/decidim/devise/shared/_omniauth_buttons_mini/replace_civirm_buttons.html.erb.deface b/app/overrides/decidim/devise/shared/_omniauth_buttons_mini/replace_civirm_buttons.html.erb.deface new file mode 100644 index 00000000..00149f92 --- /dev/null +++ b/app/overrides/decidim/devise/shared/_omniauth_buttons_mini/replace_civirm_buttons.html.erb.deface @@ -0,0 +1,7 @@ + + +<% if provider == :civicrm %> + <%= t("gpc.login.sign_in_civicrm") %> +<% else %> + <%= t("devise.shared.links.sign_in_with_provider", provider: normalize_provider_name(provider).titleize) %> +<% end %> diff --git a/app/overrides/decidim/shared/_login_modal/add_admin_login_button.html.erb.deface b/app/overrides/decidim/shared/_login_modal/add_admin_login_button.html.erb.deface new file mode 100644 index 00000000..327d4911 --- /dev/null +++ b/app/overrides/decidim/shared/_login_modal/add_admin_login_button.html.erb.deface @@ -0,0 +1,7 @@ + + +
+
+ <%= button_tag t("gpc.login.admin_login"), class: "button expanded hollow", onclick: "$('.login_box').toggleClass('hide');$(this).toggleClass('hollow');" %> +
+
diff --git a/app/overrides/decidim/shared/_login_modal/replace_login_box_class.html.erb.deface b/app/overrides/decidim/shared/_login_modal/replace_login_box_class.html.erb.deface new file mode 100644 index 00000000..0c2ea073 --- /dev/null +++ b/app/overrides/decidim/shared/_login_modal/replace_login_box_class.html.erb.deface @@ -0,0 +1,3 @@ + diff --git a/app/views/decidim/devise/sessions/_custom_omniauth_buttons.html.erb b/app/views/decidim/devise/sessions/_custom_omniauth_buttons.html.erb deleted file mode 100644 index 915cf9fd..00000000 --- a/app/views/decidim/devise/sessions/_custom_omniauth_buttons.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<% if Devise.mappings[:user].omniauthable? && current_organization.enabled_omniauth_providers.any? %> -
-
- <%- current_organization.enabled_omniauth_providers.keys.each do |provider| %> - - <% end %> - <%- if current_organization.sign_in_enabled? %> - - <%= t("or", scope: "decidim.devise.shared.omniauth_buttons") %> - - <%- end %> -
-
-<% end %> diff --git a/app/views/decidim/devise/sessions/new.html.erb b/app/views/decidim/devise/sessions/new.html.erb deleted file mode 100644 index 27b17242..00000000 --- a/app/views/decidim/devise/sessions/new.html.erb +++ /dev/null @@ -1,61 +0,0 @@ -<% add_decidim_page_title(t("devise.sessions.new.sign_in")) %> - -
-
-
-
-

<%= t("devise.sessions.new.sign_in") %>

- <% if current_organization.sign_up_enabled? %> -

- <%= t(".are_you_new?") %> - <%= link_to t(".register"), new_user_registration_path %> -

- <% elsif current_organization.sign_in_enabled? %> -

- <%= t(".sign_up_disabled") %> -

- <% else %> -

- <%= t(".sign_in_disabled") %> -

- <% end %> -
-
- <% cache current_organization do %> - <%= render "decidim/devise/sessions/custom_omniauth_buttons" %> - <% end %> - - <% if current_organization.sign_in_enabled? %> -
-
- <%= button_tag t("gpc.login.admin_login"), class: "button expanded hollow", onclick: "$('.login_box').toggleClass('hide');$(this).toggleClass('hollow');" %> -
-
- -
-
- <% end %> -
-
diff --git a/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb b/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb deleted file mode 100644 index 8d02ac36..00000000 --- a/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<% if Devise.mappings[:user].omniauthable? && current_organization.enabled_omniauth_providers.any? %> -
-
-
- <%- current_organization.enabled_omniauth_providers.keys.each do |provider| %> - - <% end %> -
- - <%= t("or", scope: "decidim.devise.shared.omniauth_buttons") %> - -
-
-<% end %> diff --git a/config/schedule.yml b/config/schedule.yml index eb4e9ab5..3dd72650 100644 --- a/config/schedule.yml +++ b/config/schedule.yml @@ -1,10 +1,10 @@ -hourly_active_step_job: - cron: "0 * * * *" - class: "InvokeRakeTaskJob" - queue: default - status: <%= ENV.fetch("CHANGE_ACTIVE_STEP", "enabled") %> # enabled by default - args: - task: decidim_participatory_processes:change_active_step +# hourly_active_step_job: +# cron: "0 * * * *" +# class: "InvokeRakeTaskJob" +# queue: default +# status: <%= ENV.fetch("CHANGE_ACTIVE_STEP", "enabled") %> # enabled by default +# args: +# task: decidim_participatory_processes:change_active_step daily_open_data_job: cron: "3 3 * * *" From cfd754421c82bfa676b68a3332d83c2662a72cca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 15:02:28 +0100 Subject: [PATCH 21/46] use html formatting for deepl --- app/services/deepl_translator.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/services/deepl_translator.rb b/app/services/deepl_translator.rb index d5949f40..5bea0498 100644 --- a/app/services/deepl_translator.rb +++ b/app/services/deepl_translator.rb @@ -12,7 +12,7 @@ def initialize(resource, field_name, text, target_locale, source_locale) end def translate - translation = DeepL.translate text, source_locale, target_locale + translation = DeepL.translate text, source_locale, target_locale, tag_handling: tag_handling Decidim::MachineTranslationSaveJob.perform_later( resource, @@ -21,4 +21,12 @@ def translate translation.text ) end + + def tag_handling + "html" if organization&.rich_text_editor_in_public_views + end + + def organization + resource.try(:organization) || resource.try(:participatory_space).try(:organization) || resource.try(:component).try(:organization) + end end From 9ab404345091d45c3340c1e606edea1eeb81c6fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 15:02:28 +0100 Subject: [PATCH 22/46] use html formatting for deepl --- app/services/deepl_translator.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/services/deepl_translator.rb b/app/services/deepl_translator.rb index d5949f40..5bea0498 100644 --- a/app/services/deepl_translator.rb +++ b/app/services/deepl_translator.rb @@ -12,7 +12,7 @@ def initialize(resource, field_name, text, target_locale, source_locale) end def translate - translation = DeepL.translate text, source_locale, target_locale + translation = DeepL.translate text, source_locale, target_locale, tag_handling: tag_handling Decidim::MachineTranslationSaveJob.perform_later( resource, @@ -21,4 +21,12 @@ def translate translation.text ) end + + def tag_handling + "html" if organization&.rich_text_editor_in_public_views + end + + def organization + resource.try(:organization) || resource.try(:participatory_space).try(:organization) || resource.try(:component).try(:organization) + end end From c1f1edeb1366d02adb61638e8cc1d9dc87802f26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 18:55:32 +0100 Subject: [PATCH 23/46] use split view by default in amendments --- app/cells/decidim/diff/attribute.erb | 16 +++++++++ app/cells/decidim/diff/diff_mode_dropdown.erb | 34 +++++++++++++++++++ spec/lib/overrides_spec.rb | 2 ++ 3 files changed, 52 insertions(+) create mode 100644 app/cells/decidim/diff/attribute.erb create mode 100644 app/cells/decidim/diff/diff_mode_dropdown.erb diff --git a/app/cells/decidim/diff/attribute.erb b/app/cells/decidim/diff/attribute.erb new file mode 100644 index 00000000..bc5d2561 --- /dev/null +++ b/app/cells/decidim/diff/attribute.erb @@ -0,0 +1,16 @@ +
+
+

+ <%= data[:label] %> +

+
+ +
+ <%= diff_split(data, "left", format) %> + <%= diff_split(data, "right", format) %> +
+ +
+ <%= diff_unified(data, format) %> +
+
diff --git a/app/cells/decidim/diff/diff_mode_dropdown.erb b/app/cells/decidim/diff/diff_mode_dropdown.erb new file mode 100644 index 00000000..7be74c15 --- /dev/null +++ b/app/cells/decidim/diff/diff_mode_dropdown.erb @@ -0,0 +1,34 @@ +
+
+ + <%= t("versions.dropdown.choose_diff_view_mode") %> + + + +
+
diff --git a/spec/lib/overrides_spec.rb b/spec/lib/overrides_spec.rb index 66cbb575..1e479ad1 100644 --- a/spec/lib/overrides_spec.rb +++ b/spec/lib/overrides_spec.rb @@ -25,6 +25,8 @@ "/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb" => "d3a413ce7c64959eee3b912406075f84", # cells "/app/cells/decidim/date_range/show.erb" => "7e050b942e447386fc96ef6528039cec", + "/app/cells/decidim/diff/attribute.erb" => "d648bc8e71e27c404d82132d6e3c3241", + "/app/cells/decidim/diff/diff_mode_dropdown.erb" => "770563c121c875159a88cd5e142658e3", # other overrides "/app/helpers/decidim/card_helper.rb" => "b9e7f943ae7c289b2855d328de7b371b", "/app/commands/decidim/amendable/accept.rb" => "c561b69a7bd5b68dfc4684c11001cb2c", From 5c84f48ead0c1bcf7a8cc0a32314f7c2dfef0b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 18:55:32 +0100 Subject: [PATCH 24/46] use split view by default in amendments --- app/cells/decidim/diff/attribute.erb | 16 +++++++++ app/cells/decidim/diff/diff_mode_dropdown.erb | 34 +++++++++++++++++++ spec/lib/overrides_spec.rb | 2 ++ 3 files changed, 52 insertions(+) create mode 100644 app/cells/decidim/diff/attribute.erb create mode 100644 app/cells/decidim/diff/diff_mode_dropdown.erb diff --git a/app/cells/decidim/diff/attribute.erb b/app/cells/decidim/diff/attribute.erb new file mode 100644 index 00000000..bc5d2561 --- /dev/null +++ b/app/cells/decidim/diff/attribute.erb @@ -0,0 +1,16 @@ +
+
+

+ <%= data[:label] %> +

+
+ +
+ <%= diff_split(data, "left", format) %> + <%= diff_split(data, "right", format) %> +
+ +
+ <%= diff_unified(data, format) %> +
+
diff --git a/app/cells/decidim/diff/diff_mode_dropdown.erb b/app/cells/decidim/diff/diff_mode_dropdown.erb new file mode 100644 index 00000000..7be74c15 --- /dev/null +++ b/app/cells/decidim/diff/diff_mode_dropdown.erb @@ -0,0 +1,34 @@ +
+
+ + <%= t("versions.dropdown.choose_diff_view_mode") %> + + + +
+
diff --git a/spec/lib/overrides_spec.rb b/spec/lib/overrides_spec.rb index 66cbb575..1e479ad1 100644 --- a/spec/lib/overrides_spec.rb +++ b/spec/lib/overrides_spec.rb @@ -25,6 +25,8 @@ "/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb" => "d3a413ce7c64959eee3b912406075f84", # cells "/app/cells/decidim/date_range/show.erb" => "7e050b942e447386fc96ef6528039cec", + "/app/cells/decidim/diff/attribute.erb" => "d648bc8e71e27c404d82132d6e3c3241", + "/app/cells/decidim/diff/diff_mode_dropdown.erb" => "770563c121c875159a88cd5e142658e3", # other overrides "/app/helpers/decidim/card_helper.rb" => "b9e7f943ae7c289b2855d328de7b371b", "/app/commands/decidim/amendable/accept.rb" => "c561b69a7bd5b68dfc4684c11001cb2c", From dca7550af342e8078914680272a7303238f7821d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 19:08:36 +0100 Subject: [PATCH 25/46] dont html escape titles --- app/views/decidim/proposals/proposals/_proposal_title.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/decidim/proposals/proposals/_proposal_title.html.erb b/app/views/decidim/proposals/proposals/_proposal_title.html.erb index 9d0655fb..5bc7fd69 100644 --- a/app/views/decidim/proposals/proposals/_proposal_title.html.erb +++ b/app/views/decidim/proposals/proposals/_proposal_title.html.erb @@ -8,7 +8,7 @@
"> <% if @proposal.emendation? %> -

<%= t("changes_at_title", scope: "decidim.proposals.proposals.show", title: present(@proposal.amendable).title(links: true, html_escape: true)) %>

+

<%= t("changes_at_title", scope: "decidim.proposals.proposals.show", title: present(@proposal.amendable).title(links: true, html_escape: false)) %>

<% else %>

<%= present(@proposal).title(links: true, html_escape: true) %>

<% end %> From 53b929f5aa9e41bc4047f719d81f6490ec6949af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 19:08:36 +0100 Subject: [PATCH 26/46] dont html escape titles --- app/views/decidim/proposals/proposals/_proposal_title.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/decidim/proposals/proposals/_proposal_title.html.erb b/app/views/decidim/proposals/proposals/_proposal_title.html.erb index 9d0655fb..5bc7fd69 100644 --- a/app/views/decidim/proposals/proposals/_proposal_title.html.erb +++ b/app/views/decidim/proposals/proposals/_proposal_title.html.erb @@ -8,7 +8,7 @@
"> <% if @proposal.emendation? %> -

<%= t("changes_at_title", scope: "decidim.proposals.proposals.show", title: present(@proposal.amendable).title(links: true, html_escape: true)) %>

+

<%= t("changes_at_title", scope: "decidim.proposals.proposals.show", title: present(@proposal.amendable).title(links: true, html_escape: false)) %>

<% else %>

<%= present(@proposal).title(links: true, html_escape: true) %>

<% end %> From b2699ae1800f9bcc7be46cae3e459777fadb0129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 21:05:12 +0100 Subject: [PATCH 27/46] default type in proposal filtering --- .../concerns/proposals_controller_override.rb | 24 +++++++++++++++++++ ...ilter_proposals_by_default.html.erb.deface | 10 ++++++++ config/initializers/gpc_overrides.rb | 2 ++ spec/lib/overrides_spec.rb | 4 +++- 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 app/controllers/concerns/proposals_controller_override.rb create mode 100644 app/overrides/decidim/proposals/proposals/_filters/fix_filter_proposals_by_default.html.erb.deface diff --git a/app/controllers/concerns/proposals_controller_override.rb b/app/controllers/concerns/proposals_controller_override.rb new file mode 100644 index 00000000..12a07de5 --- /dev/null +++ b/app/controllers/concerns/proposals_controller_override.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +module ProposalsControllerOverride + extend ActiveSupport::Concern + + included do + before_action only: [:index] do + session[:proposals_filter_default_type] = params.dig(:filter, :type) if params.dig(:filter, :type).present? + end + + def default_filter_params + { + search_text_cont: "", + with_any_origin: default_filter_origin_params, + activity: "all", + with_any_category: default_filter_category_params, + with_any_state: %w(accepted evaluating state_not_published), + with_any_scope: default_filter_scope_params, + related_to: "", + type: session[:proposals_filter_default_type] || "proposals" + } + end + end +end diff --git a/app/overrides/decidim/proposals/proposals/_filters/fix_filter_proposals_by_default.html.erb.deface b/app/overrides/decidim/proposals/proposals/_filters/fix_filter_proposals_by_default.html.erb.deface new file mode 100644 index 00000000..b1240572 --- /dev/null +++ b/app/overrides/decidim/proposals/proposals/_filters/fix_filter_proposals_by_default.html.erb.deface @@ -0,0 +1,10 @@ + + +<% +@proposals_without_proposals_filter = Decidim::Proposals::Proposal.where(component: current_component). + with_availability(params[:filter].try(:[], :with_availability)) + .published + .not_hidden + +if @proposals_without_proposals_filter.only_emendations.any? +%> diff --git a/config/initializers/gpc_overrides.rb b/config/initializers/gpc_overrides.rb index 4bf3bfbc..93aa2312 100644 --- a/config/initializers/gpc_overrides.rb +++ b/config/initializers/gpc_overrides.rb @@ -11,6 +11,8 @@ # disables inviting external users if enabled Decidim::Meetings::Admin::InvitesController.include(InvitesControllerOverride) + # makes "type" proposals in the filter the default + Decidim::Proposals::ProposalsController.include(ProposalsControllerOverride) # ensures same language is enforce on amendments to proposals Decidim::AmendmentsController.include(AmendmentsEnforceLocale) diff --git a/spec/lib/overrides_spec.rb b/spec/lib/overrides_spec.rb index 1e479ad1..08b16715 100644 --- a/spec/lib/overrides_spec.rb +++ b/spec/lib/overrides_spec.rb @@ -77,11 +77,13 @@ { package: "decidim-proposals", files: { + "/app/controllers/decidim/proposals/proposals_controller.rb" => "b263741e3335110fa0e37c488c777190", "/app/views/decidim/proposals/proposals/index.html.erb" => "48fbf7a8332f5f4c026b793e7922bdbc", "/app/views/decidim/proposals/proposals/show.html.erb" => "f27bbec257eb6da28dbdd07ac0a224a5", "/app/cells/decidim/proposals/highlighted_proposals_for_component_cell.rb" => "b8a9a1b573b2f888b293d10a7fab6577", "/app/views/decidim/proposals/proposals/_proposals.html.erb" => "a4057670154210aff98e5f206d0fdfc2", - "/app/views/decidim/proposals/proposals/_wizard_aside.html.erb" => "45dc17085fabc549bee6474b8a3e79df" + "/app/views/decidim/proposals/proposals/_wizard_aside.html.erb" => "45dc17085fabc549bee6474b8a3e79df", + "/app/views/decidim/proposals/proposals/_filters.html.erb" => "ab4fe3f5b9237d786595374fbb6b729c" } } ] From dd84b4ddd895a0d557f9aada84a9c115174f197d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 20 Feb 2024 21:05:12 +0100 Subject: [PATCH 28/46] default type in proposal filtering --- .../concerns/proposals_controller_override.rb | 24 +++++++++++++++++++ ...ilter_proposals_by_default.html.erb.deface | 10 ++++++++ config/initializers/gpc_overrides.rb | 2 ++ spec/lib/overrides_spec.rb | 4 +++- 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 app/controllers/concerns/proposals_controller_override.rb create mode 100644 app/overrides/decidim/proposals/proposals/_filters/fix_filter_proposals_by_default.html.erb.deface diff --git a/app/controllers/concerns/proposals_controller_override.rb b/app/controllers/concerns/proposals_controller_override.rb new file mode 100644 index 00000000..12a07de5 --- /dev/null +++ b/app/controllers/concerns/proposals_controller_override.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +module ProposalsControllerOverride + extend ActiveSupport::Concern + + included do + before_action only: [:index] do + session[:proposals_filter_default_type] = params.dig(:filter, :type) if params.dig(:filter, :type).present? + end + + def default_filter_params + { + search_text_cont: "", + with_any_origin: default_filter_origin_params, + activity: "all", + with_any_category: default_filter_category_params, + with_any_state: %w(accepted evaluating state_not_published), + with_any_scope: default_filter_scope_params, + related_to: "", + type: session[:proposals_filter_default_type] || "proposals" + } + end + end +end diff --git a/app/overrides/decidim/proposals/proposals/_filters/fix_filter_proposals_by_default.html.erb.deface b/app/overrides/decidim/proposals/proposals/_filters/fix_filter_proposals_by_default.html.erb.deface new file mode 100644 index 00000000..b1240572 --- /dev/null +++ b/app/overrides/decidim/proposals/proposals/_filters/fix_filter_proposals_by_default.html.erb.deface @@ -0,0 +1,10 @@ + + +<% +@proposals_without_proposals_filter = Decidim::Proposals::Proposal.where(component: current_component). + with_availability(params[:filter].try(:[], :with_availability)) + .published + .not_hidden + +if @proposals_without_proposals_filter.only_emendations.any? +%> diff --git a/config/initializers/gpc_overrides.rb b/config/initializers/gpc_overrides.rb index 4bf3bfbc..93aa2312 100644 --- a/config/initializers/gpc_overrides.rb +++ b/config/initializers/gpc_overrides.rb @@ -11,6 +11,8 @@ # disables inviting external users if enabled Decidim::Meetings::Admin::InvitesController.include(InvitesControllerOverride) + # makes "type" proposals in the filter the default + Decidim::Proposals::ProposalsController.include(ProposalsControllerOverride) # ensures same language is enforce on amendments to proposals Decidim::AmendmentsController.include(AmendmentsEnforceLocale) diff --git a/spec/lib/overrides_spec.rb b/spec/lib/overrides_spec.rb index 1e479ad1..08b16715 100644 --- a/spec/lib/overrides_spec.rb +++ b/spec/lib/overrides_spec.rb @@ -77,11 +77,13 @@ { package: "decidim-proposals", files: { + "/app/controllers/decidim/proposals/proposals_controller.rb" => "b263741e3335110fa0e37c488c777190", "/app/views/decidim/proposals/proposals/index.html.erb" => "48fbf7a8332f5f4c026b793e7922bdbc", "/app/views/decidim/proposals/proposals/show.html.erb" => "f27bbec257eb6da28dbdd07ac0a224a5", "/app/cells/decidim/proposals/highlighted_proposals_for_component_cell.rb" => "b8a9a1b573b2f888b293d10a7fab6577", "/app/views/decidim/proposals/proposals/_proposals.html.erb" => "a4057670154210aff98e5f206d0fdfc2", - "/app/views/decidim/proposals/proposals/_wizard_aside.html.erb" => "45dc17085fabc549bee6474b8a3e79df" + "/app/views/decidim/proposals/proposals/_wizard_aside.html.erb" => "45dc17085fabc549bee6474b8a3e79df", + "/app/views/decidim/proposals/proposals/_filters.html.erb" => "ab4fe3f5b9237d786595374fbb6b729c" } } ] From 0be38e57b023b338bb106dbf6b1afcc70b25a907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Wed, 21 Feb 2024 17:52:32 +0100 Subject: [PATCH 29/46] use around action instead of redirects --- .../concerns/amendments_enforce_locale.rb | 20 ++++++++++--------- spec/system/limit_amendments_spec.rb | 3 +++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/app/controllers/concerns/amendments_enforce_locale.rb b/app/controllers/concerns/amendments_enforce_locale.rb index a262d4ff..d33e1abc 100644 --- a/app/controllers/concerns/amendments_enforce_locale.rb +++ b/app/controllers/concerns/amendments_enforce_locale.rb @@ -5,19 +5,21 @@ module AmendmentsEnforceLocale included do # rubocop:disable Rails/LexicallyScopedActionFilter - before_action :enforce_locale, only: [:new, :create] + around_action :enforce_amendment_locale, except: [:reject, :promote, :review, :accept, :withdraw] # rubocop:enable Rails/LexicallyScopedActionFilter - def enforce_locale - return unless amendable.component.settings.try(:amendments_enabled) - return unless amendable.component.current_settings.try(:amendment_creation_enabled) - return unless Rails.application.secrets.gpc[:enforce_original_amendments_locale] + def enforce_amendment_locale(&action) + if amendable.component.settings.try(:amendments_enabled) && + amendable.component.current_settings.try(:amendment_creation_enabled) && + Rails.application.secrets.gpc[:enforce_original_amendments_locale] + amendable_locale = amendable.title.keys.first - amendable_locale = amendable.title.keys.first - return if current_locale.to_s == amendable_locale + flash[:alert] = I18n.t("gpc.amendments.enforced_locale", lang: I18n.t("locale.name", locale: amendable_locale)) if current_locale.to_s != amendable_locale - flash[:alert] = I18n.t("gpc.amendments.enforced_locale", lang: I18n.t("locale.name", locale: amendable_locale)) - redirect_to new_amend_path(amendable_gid: amendable_gid, locale: amendable.title.keys.first) + I18n.with_locale(amendable_locale, &action) + else + action.call + end end end end diff --git a/spec/system/limit_amendments_spec.rb b/spec/system/limit_amendments_spec.rb index f45511cf..aa7cde30 100644 --- a/spec/system/limit_amendments_spec.rb +++ b/spec/system/limit_amendments_spec.rb @@ -175,6 +175,9 @@ def amendment_path expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") expect(page).to have_field(with: "Proposal in english language") expect(page).not_to have_field(with: "Proposition en langue anglaise") + fill_in "Title", with: "New Proposal in english language" + click_button "Create" + expect(page).to have_content("No similar emendations found") end context "and not enforced" do From 7168960def5939e0ca85bf7a56218336db8bdfa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Wed, 21 Feb 2024 17:52:32 +0100 Subject: [PATCH 30/46] use around action instead of redirects --- .../concerns/amendments_enforce_locale.rb | 20 ++++++++++--------- spec/system/limit_amendments_spec.rb | 3 +++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/app/controllers/concerns/amendments_enforce_locale.rb b/app/controllers/concerns/amendments_enforce_locale.rb index a262d4ff..d33e1abc 100644 --- a/app/controllers/concerns/amendments_enforce_locale.rb +++ b/app/controllers/concerns/amendments_enforce_locale.rb @@ -5,19 +5,21 @@ module AmendmentsEnforceLocale included do # rubocop:disable Rails/LexicallyScopedActionFilter - before_action :enforce_locale, only: [:new, :create] + around_action :enforce_amendment_locale, except: [:reject, :promote, :review, :accept, :withdraw] # rubocop:enable Rails/LexicallyScopedActionFilter - def enforce_locale - return unless amendable.component.settings.try(:amendments_enabled) - return unless amendable.component.current_settings.try(:amendment_creation_enabled) - return unless Rails.application.secrets.gpc[:enforce_original_amendments_locale] + def enforce_amendment_locale(&action) + if amendable.component.settings.try(:amendments_enabled) && + amendable.component.current_settings.try(:amendment_creation_enabled) && + Rails.application.secrets.gpc[:enforce_original_amendments_locale] + amendable_locale = amendable.title.keys.first - amendable_locale = amendable.title.keys.first - return if current_locale.to_s == amendable_locale + flash[:alert] = I18n.t("gpc.amendments.enforced_locale", lang: I18n.t("locale.name", locale: amendable_locale)) if current_locale.to_s != amendable_locale - flash[:alert] = I18n.t("gpc.amendments.enforced_locale", lang: I18n.t("locale.name", locale: amendable_locale)) - redirect_to new_amend_path(amendable_gid: amendable_gid, locale: amendable.title.keys.first) + I18n.with_locale(amendable_locale, &action) + else + action.call + end end end end diff --git a/spec/system/limit_amendments_spec.rb b/spec/system/limit_amendments_spec.rb index f45511cf..aa7cde30 100644 --- a/spec/system/limit_amendments_spec.rb +++ b/spec/system/limit_amendments_spec.rb @@ -175,6 +175,9 @@ def amendment_path expect(page).not_to have_content("CRÉER UN PROJET D'AMENDEMENT") expect(page).to have_field(with: "Proposal in english language") expect(page).not_to have_field(with: "Proposition en langue anglaise") + fill_in "Title", with: "New Proposal in english language" + click_button "Create" + expect(page).to have_content("No similar emendations found") end context "and not enforced" do From d119615c55b6178f8905180e08b288fa44b4ad83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Wed, 21 Feb 2024 17:58:24 +0100 Subject: [PATCH 31/46] ensure reivew process uses original language too --- app/controllers/concerns/amendments_enforce_locale.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/concerns/amendments_enforce_locale.rb b/app/controllers/concerns/amendments_enforce_locale.rb index d33e1abc..b0da241d 100644 --- a/app/controllers/concerns/amendments_enforce_locale.rb +++ b/app/controllers/concerns/amendments_enforce_locale.rb @@ -5,7 +5,7 @@ module AmendmentsEnforceLocale included do # rubocop:disable Rails/LexicallyScopedActionFilter - around_action :enforce_amendment_locale, except: [:reject, :promote, :review, :accept, :withdraw] + around_action :enforce_amendment_locale, except: [:reject, :accept, :withdraw] # rubocop:enable Rails/LexicallyScopedActionFilter def enforce_amendment_locale(&action) From ed3c8a022b9dc8b1e42e5a73e6da224ee5e9ec51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Wed, 21 Feb 2024 17:58:24 +0100 Subject: [PATCH 32/46] ensure reivew process uses original language too --- app/controllers/concerns/amendments_enforce_locale.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/concerns/amendments_enforce_locale.rb b/app/controllers/concerns/amendments_enforce_locale.rb index d33e1abc..b0da241d 100644 --- a/app/controllers/concerns/amendments_enforce_locale.rb +++ b/app/controllers/concerns/amendments_enforce_locale.rb @@ -5,7 +5,7 @@ module AmendmentsEnforceLocale included do # rubocop:disable Rails/LexicallyScopedActionFilter - around_action :enforce_amendment_locale, except: [:reject, :promote, :review, :accept, :withdraw] + around_action :enforce_amendment_locale, except: [:reject, :accept, :withdraw] # rubocop:enable Rails/LexicallyScopedActionFilter def enforce_amendment_locale(&action) From adff413dd0a4fd4de447371d9df78023363f1bca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Wed, 21 Feb 2024 18:24:23 +0100 Subject: [PATCH 33/46] overrride extende menu items --- README.md | 1 + app/helpers/concerns/card_helper_override.rb | 1 - .../concerns/layout_helper_override.rb | 22 +++++++++++++++++++ config/initializers/gpc_overrides.rb | 2 ++ config/secrets.yml | 1 + 5 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 app/helpers/concerns/layout_helper_override.rb diff --git a/README.md b/README.md index aa5daf90..94b2ebe4 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ These ENV vars modifies the behavior of the application in some ways: | ENV | Description | | --- | --- | +| `SUBMENU_MAX_ITEMS` | Number of items before the button "more" appears in a submenu of a participatory space (defaults to `6`) | | `DONATE_BUTTON` | If present, it will show a button with the text "donate" linked to this url. Currently in the process sidebar and when creating a proposal. Locale can be handled with interpolations (ie: `http://some.thing/%{locale}/pay_here`) | | `CHAT_BUTTON` | If present, it will show a button with the text "AGM Chat (beta)" linked to this url. Currently in the process sidebar. Locale can be handled with interpolations (ie: `http://some.thing/%{locale}/chat_here`) | | `REDIRECT_SIGN_UP` | If present and sign up is enabled, it redirects user registration to the URL specified in it. Can process some variable interpolation like `%{locale}` that would be replace by the current users' locale | diff --git a/app/helpers/concerns/card_helper_override.rb b/app/helpers/concerns/card_helper_override.rb index d5a56f90..3d61aa91 100644 --- a/app/helpers/concerns/card_helper_override.rb +++ b/app/helpers/concerns/card_helper_override.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -# A command with all the business logic to create a user from omniauth module CardHelperOverride extend ActiveSupport::Concern include ApplicationHelper diff --git a/app/helpers/concerns/layout_helper_override.rb b/app/helpers/concerns/layout_helper_override.rb new file mode 100644 index 00000000..af12ff2a --- /dev/null +++ b/app/helpers/concerns/layout_helper_override.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module LayoutHelperOverride + extend ActiveSupport::Concern + include ApplicationHelper + + included do + def extended_navigation_bar(items, max_items: Rails.application.secrets.gpc[:submenu_max_items] || 5) + return unless items.any? + + extra_items = items.slice((max_items + 1)..-1) || [] + active_item = items.find { |item| item[:active] } + + controller.view_context.render partial: "decidim/shared/extended_navigation_bar", locals: { + items: items, + extra_items: extra_items, + active_item: active_item, + max_items: max_items + } + end + end +end diff --git a/config/initializers/gpc_overrides.rb b/config/initializers/gpc_overrides.rb index 93aa2312..390ef07d 100644 --- a/config/initializers/gpc_overrides.rb +++ b/config/initializers/gpc_overrides.rb @@ -19,6 +19,8 @@ # sends notifications for answering surveys Decidim::Forms::AnswerQuestionnaire.include(AnswerQuestionnaireOverride) + # sets the number of items in a submenu from configuration + Decidim::LayoutHelper.include(LayoutHelperOverride) # detect custom cards for leadership campaigns Decidim::CardHelper.include(CardHelperOverride) diff --git a/config/secrets.yml b/config/secrets.yml index d5ffb16b..aab1b99b 100644 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -113,6 +113,7 @@ storage_default: &storage_default default: &default gpc: + submenu_max_items: <%= ENV.fetch("SUBMENU_MAX_ITEMS", 6) %> donate_button: <%= ENV["DONATE_BUTTON"] %> chat_button: <%= ENV["CHAT_BUTTON"] %> redirect_sign_up: <%= ENV["REDIRECT_SIGN_UP"] %> From d9984a947e08f7d35f51920ddfb60ac644cac52b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Wed, 21 Feb 2024 18:24:23 +0100 Subject: [PATCH 34/46] overrride extende menu items --- README.md | 1 + app/helpers/concerns/card_helper_override.rb | 1 - .../concerns/layout_helper_override.rb | 22 +++++++++++++++++++ config/initializers/gpc_overrides.rb | 2 ++ config/secrets.yml | 1 + 5 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 app/helpers/concerns/layout_helper_override.rb diff --git a/README.md b/README.md index aa5daf90..94b2ebe4 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ These ENV vars modifies the behavior of the application in some ways: | ENV | Description | | --- | --- | +| `SUBMENU_MAX_ITEMS` | Number of items before the button "more" appears in a submenu of a participatory space (defaults to `6`) | | `DONATE_BUTTON` | If present, it will show a button with the text "donate" linked to this url. Currently in the process sidebar and when creating a proposal. Locale can be handled with interpolations (ie: `http://some.thing/%{locale}/pay_here`) | | `CHAT_BUTTON` | If present, it will show a button with the text "AGM Chat (beta)" linked to this url. Currently in the process sidebar. Locale can be handled with interpolations (ie: `http://some.thing/%{locale}/chat_here`) | | `REDIRECT_SIGN_UP` | If present and sign up is enabled, it redirects user registration to the URL specified in it. Can process some variable interpolation like `%{locale}` that would be replace by the current users' locale | diff --git a/app/helpers/concerns/card_helper_override.rb b/app/helpers/concerns/card_helper_override.rb index d5a56f90..3d61aa91 100644 --- a/app/helpers/concerns/card_helper_override.rb +++ b/app/helpers/concerns/card_helper_override.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -# A command with all the business logic to create a user from omniauth module CardHelperOverride extend ActiveSupport::Concern include ApplicationHelper diff --git a/app/helpers/concerns/layout_helper_override.rb b/app/helpers/concerns/layout_helper_override.rb new file mode 100644 index 00000000..af12ff2a --- /dev/null +++ b/app/helpers/concerns/layout_helper_override.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module LayoutHelperOverride + extend ActiveSupport::Concern + include ApplicationHelper + + included do + def extended_navigation_bar(items, max_items: Rails.application.secrets.gpc[:submenu_max_items] || 5) + return unless items.any? + + extra_items = items.slice((max_items + 1)..-1) || [] + active_item = items.find { |item| item[:active] } + + controller.view_context.render partial: "decidim/shared/extended_navigation_bar", locals: { + items: items, + extra_items: extra_items, + active_item: active_item, + max_items: max_items + } + end + end +end diff --git a/config/initializers/gpc_overrides.rb b/config/initializers/gpc_overrides.rb index 93aa2312..390ef07d 100644 --- a/config/initializers/gpc_overrides.rb +++ b/config/initializers/gpc_overrides.rb @@ -19,6 +19,8 @@ # sends notifications for answering surveys Decidim::Forms::AnswerQuestionnaire.include(AnswerQuestionnaireOverride) + # sets the number of items in a submenu from configuration + Decidim::LayoutHelper.include(LayoutHelperOverride) # detect custom cards for leadership campaigns Decidim::CardHelper.include(CardHelperOverride) diff --git a/config/secrets.yml b/config/secrets.yml index d5ffb16b..aab1b99b 100644 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -113,6 +113,7 @@ storage_default: &storage_default default: &default gpc: + submenu_max_items: <%= ENV.fetch("SUBMENU_MAX_ITEMS", 6) %> donate_button: <%= ENV["DONATE_BUTTON"] %> chat_button: <%= ENV["CHAT_BUTTON"] %> redirect_sign_up: <%= ENV["REDIRECT_SIGN_UP"] %> From 587b91c929ba4a2fdb775105a9ce3c3ae01f8f8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 22 Feb 2024 12:20:41 +0100 Subject: [PATCH 35/46] allow official proposals to be amended in any language --- .../concerns/amendments_enforce_locale.rb | 1 + spec/system/limit_amendments_spec.rb | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/controllers/concerns/amendments_enforce_locale.rb b/app/controllers/concerns/amendments_enforce_locale.rb index b0da241d..6e798d8d 100644 --- a/app/controllers/concerns/amendments_enforce_locale.rb +++ b/app/controllers/concerns/amendments_enforce_locale.rb @@ -11,6 +11,7 @@ module AmendmentsEnforceLocale def enforce_amendment_locale(&action) if amendable.component.settings.try(:amendments_enabled) && amendable.component.current_settings.try(:amendment_creation_enabled) && + !amendable&.official? && Rails.application.secrets.gpc[:enforce_original_amendments_locale] amendable_locale = amendable.title.keys.first diff --git a/spec/system/limit_amendments_spec.rb b/spec/system/limit_amendments_spec.rb index aa7cde30..a2506623 100644 --- a/spec/system/limit_amendments_spec.rb +++ b/spec/system/limit_amendments_spec.rb @@ -177,7 +177,22 @@ def amendment_path expect(page).not_to have_field(with: "Proposition en langue anglaise") fill_in "Title", with: "New Proposal in english language" click_button "Create" - expect(page).to have_content("No similar emendations found") + expect(page).to have_content("Amendment draft has been created successfully.") + end + + context "and is an official proposal" do + let(:proposal) { create :proposal, :official, users: [creator], component: component, title: { en: "Proposal in english language", machine_translations: { fr: "Proposition en langue anglaise" } } } + + it "Does not enforce the original locale" do + expect(page).not_to have_content("Cette proposition a été initialement créée dans English") + expect(page).not_to have_content("CREATE AMENDMENT DRAFT") + expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).not_to have_field(with: "Proposal in english language") + expect(page).to have_field(with: "Proposition en langue anglaise") + fill_in "Titre", with: "Nouveau proposition en langue anglaise" + click_button "Créer" + expect(page).to have_content("Aucune modification similaire trouvé.") + end end context "and not enforced" do From 5e5ea017b2402f5f5939e6a40c8314f1a0a3852f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 22 Feb 2024 12:20:41 +0100 Subject: [PATCH 36/46] allow official proposals to be amended in any language --- .../concerns/amendments_enforce_locale.rb | 1 + spec/system/limit_amendments_spec.rb | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/controllers/concerns/amendments_enforce_locale.rb b/app/controllers/concerns/amendments_enforce_locale.rb index b0da241d..6e798d8d 100644 --- a/app/controllers/concerns/amendments_enforce_locale.rb +++ b/app/controllers/concerns/amendments_enforce_locale.rb @@ -11,6 +11,7 @@ module AmendmentsEnforceLocale def enforce_amendment_locale(&action) if amendable.component.settings.try(:amendments_enabled) && amendable.component.current_settings.try(:amendment_creation_enabled) && + !amendable&.official? && Rails.application.secrets.gpc[:enforce_original_amendments_locale] amendable_locale = amendable.title.keys.first diff --git a/spec/system/limit_amendments_spec.rb b/spec/system/limit_amendments_spec.rb index aa7cde30..a2506623 100644 --- a/spec/system/limit_amendments_spec.rb +++ b/spec/system/limit_amendments_spec.rb @@ -177,7 +177,22 @@ def amendment_path expect(page).not_to have_field(with: "Proposition en langue anglaise") fill_in "Title", with: "New Proposal in english language" click_button "Create" - expect(page).to have_content("No similar emendations found") + expect(page).to have_content("Amendment draft has been created successfully.") + end + + context "and is an official proposal" do + let(:proposal) { create :proposal, :official, users: [creator], component: component, title: { en: "Proposal in english language", machine_translations: { fr: "Proposition en langue anglaise" } } } + + it "Does not enforce the original locale" do + expect(page).not_to have_content("Cette proposition a été initialement créée dans English") + expect(page).not_to have_content("CREATE AMENDMENT DRAFT") + expect(page).to have_content("CRÉER UN PROJET D'AMENDEMENT") + expect(page).not_to have_field(with: "Proposal in english language") + expect(page).to have_field(with: "Proposition en langue anglaise") + fill_in "Titre", with: "Nouveau proposition en langue anglaise" + click_button "Créer" + expect(page).to have_content("Aucune modification similaire trouvé.") + end end context "and not enforced" do From a0919b3f4193aded332cda491c371f1d00be39a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 22 Feb 2024 12:34:53 +0100 Subject: [PATCH 37/46] update amendment date --- Gemfile.lock | 125 +++++++++++++++++++++++++-------------------------- 1 file changed, 62 insertions(+), 63 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index bd69e191..dadf4d44 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -17,7 +17,7 @@ GIT GIT remote: https://github.com/decidim-ice/decidim-module-decidim_awesome.git - revision: a4d5ab306ee305d7ee109fb9371be2597e67d6be + revision: c182090ea9b09629b014b9e6625f62201651ffc8 branch: limit-amendments specs: decidim-decidim_awesome (0.10.2) @@ -47,7 +47,7 @@ GIT GIT remote: https://github.com/openpoke/decidim.git - revision: 592137e11249f4efdd5a0e4df5791ff7a389d18d + revision: e232050400c59a4574c53f0b795c13b7b780e569 branch: 0.27-canada specs: decidim (0.27.5) @@ -81,6 +81,7 @@ GIT devise-i18n (~> 1.2) devise_invitable (~> 2.0, >= 2.0.9) decidim-api (0.27.5) + decidim-core (= 0.27.5) graphql (~> 1.12, < 1.13) graphql-docs (~> 2.1.0) rack-cors (~> 1.0) @@ -111,7 +112,6 @@ GIT cells-rails (~> 0.1.3) charlock_holmes (~> 0.7) date_validator (~> 0.12.0) - decidim-api (= 0.27.5) devise (~> 4.7) devise-i18n (~> 1.2) diffy (~> 3.3) @@ -226,40 +226,40 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (6.1.7.6) - actionpack (= 6.1.7.6) - activesupport (= 6.1.7.6) + actioncable (6.1.7.7) + actionpack (= 6.1.7.7) + activesupport (= 6.1.7.7) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.7.6) - actionpack (= 6.1.7.6) - activejob (= 6.1.7.6) - activerecord (= 6.1.7.6) - activestorage (= 6.1.7.6) - activesupport (= 6.1.7.6) + actionmailbox (6.1.7.7) + actionpack (= 6.1.7.7) + activejob (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) mail (>= 2.7.1) - actionmailer (6.1.7.6) - actionpack (= 6.1.7.6) - actionview (= 6.1.7.6) - activejob (= 6.1.7.6) - activesupport (= 6.1.7.6) + actionmailer (6.1.7.7) + actionpack (= 6.1.7.7) + actionview (= 6.1.7.7) + activejob (= 6.1.7.7) + activesupport (= 6.1.7.7) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.7.6) - actionview (= 6.1.7.6) - activesupport (= 6.1.7.6) + actionpack (6.1.7.7) + actionview (= 6.1.7.7) + activesupport (= 6.1.7.7) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.7.6) - actionpack (= 6.1.7.6) - activerecord (= 6.1.7.6) - activestorage (= 6.1.7.6) - activesupport (= 6.1.7.6) + actiontext (6.1.7.7) + actionpack (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) nokogiri (>= 1.8.5) - actionview (6.1.7.6) - activesupport (= 6.1.7.6) + actionview (6.1.7.7) + activesupport (= 6.1.7.7) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -267,22 +267,22 @@ GEM active_link_to (1.0.5) actionpack addressable - activejob (6.1.7.6) - activesupport (= 6.1.7.6) + activejob (6.1.7.7) + activesupport (= 6.1.7.7) globalid (>= 0.3.6) - activemodel (6.1.7.6) - activesupport (= 6.1.7.6) - activerecord (6.1.7.6) - activemodel (= 6.1.7.6) - activesupport (= 6.1.7.6) - activestorage (6.1.7.6) - actionpack (= 6.1.7.6) - activejob (= 6.1.7.6) - activerecord (= 6.1.7.6) - activesupport (= 6.1.7.6) + activemodel (6.1.7.7) + activesupport (= 6.1.7.7) + activerecord (6.1.7.7) + activemodel (= 6.1.7.7) + activesupport (= 6.1.7.7) + activestorage (6.1.7.7) + actionpack (= 6.1.7.7) + activejob (= 6.1.7.7) + activerecord (= 6.1.7.7) + activesupport (= 6.1.7.7) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.7.6) + activesupport (6.1.7.7) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -294,12 +294,11 @@ GEM public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) aws-eventstream (1.3.0) - aws-partitions (1.893.0) - aws-sdk-core (3.191.2) + aws-partitions (1.894.0) + aws-sdk-core (3.191.3) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.8) - base64 jmespath (~> 1, >= 1.6.1) aws-sdk-kms (1.77.0) aws-sdk-core (~> 3, >= 3.191.0) @@ -475,7 +474,7 @@ GEM activemodel (>= 4.1, < 7.1) activesupport (>= 4.1, < 7.1) railties (>= 4.1, < 7.1) - fugit (1.9.0) + fugit (1.10.0) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) gemoji (3.0.1) @@ -662,7 +661,7 @@ GEM nio4r (~> 2.0) raabro (1.4.0) racc (1.7.3) - rack (2.2.8) + rack (2.2.8.1) rack-attack (6.7.0) rack (>= 1.0, < 4) rack-cors (1.1.1) @@ -674,20 +673,20 @@ GEM rack rack-test (2.1.0) rack (>= 1.3) - rails (6.1.7.6) - actioncable (= 6.1.7.6) - actionmailbox (= 6.1.7.6) - actionmailer (= 6.1.7.6) - actionpack (= 6.1.7.6) - actiontext (= 6.1.7.6) - actionview (= 6.1.7.6) - activejob (= 6.1.7.6) - activemodel (= 6.1.7.6) - activerecord (= 6.1.7.6) - activestorage (= 6.1.7.6) - activesupport (= 6.1.7.6) + rails (6.1.7.7) + actioncable (= 6.1.7.7) + actionmailbox (= 6.1.7.7) + actionmailer (= 6.1.7.7) + actionpack (= 6.1.7.7) + actiontext (= 6.1.7.7) + actionview (= 6.1.7.7) + activejob (= 6.1.7.7) + activemodel (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) bundler (>= 1.15.0) - railties (= 6.1.7.6) + railties (= 6.1.7.7) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -702,9 +701,9 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - railties (6.1.7.6) - actionpack (= 6.1.7.6) - activesupport (= 6.1.7.6) + railties (6.1.7.7) + actionpack (= 6.1.7.7) + activesupport (= 6.1.7.7) method_source rake (>= 12.2) thor (~> 1.0) @@ -780,7 +779,7 @@ GEM rubocop-rspec (2.11.1) rubocop (~> 1.19) ruby-progressbar (1.13.0) - ruby-vips (2.2.0) + ruby-vips (2.2.1) ffi (~> 1.12) rubyXL (3.4.25) nokogiri (>= 1.10.8) @@ -871,7 +870,7 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webmock (3.20.0) + webmock (3.22.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) From f2ee44ff5edbf4dae32940e86728376d8b894e08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 22 Feb 2024 12:34:53 +0100 Subject: [PATCH 38/46] update amendment date --- Gemfile.lock | 125 +++++++++++++++++++++++++-------------------------- 1 file changed, 62 insertions(+), 63 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index bd69e191..dadf4d44 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -17,7 +17,7 @@ GIT GIT remote: https://github.com/decidim-ice/decidim-module-decidim_awesome.git - revision: a4d5ab306ee305d7ee109fb9371be2597e67d6be + revision: c182090ea9b09629b014b9e6625f62201651ffc8 branch: limit-amendments specs: decidim-decidim_awesome (0.10.2) @@ -47,7 +47,7 @@ GIT GIT remote: https://github.com/openpoke/decidim.git - revision: 592137e11249f4efdd5a0e4df5791ff7a389d18d + revision: e232050400c59a4574c53f0b795c13b7b780e569 branch: 0.27-canada specs: decidim (0.27.5) @@ -81,6 +81,7 @@ GIT devise-i18n (~> 1.2) devise_invitable (~> 2.0, >= 2.0.9) decidim-api (0.27.5) + decidim-core (= 0.27.5) graphql (~> 1.12, < 1.13) graphql-docs (~> 2.1.0) rack-cors (~> 1.0) @@ -111,7 +112,6 @@ GIT cells-rails (~> 0.1.3) charlock_holmes (~> 0.7) date_validator (~> 0.12.0) - decidim-api (= 0.27.5) devise (~> 4.7) devise-i18n (~> 1.2) diffy (~> 3.3) @@ -226,40 +226,40 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (6.1.7.6) - actionpack (= 6.1.7.6) - activesupport (= 6.1.7.6) + actioncable (6.1.7.7) + actionpack (= 6.1.7.7) + activesupport (= 6.1.7.7) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.7.6) - actionpack (= 6.1.7.6) - activejob (= 6.1.7.6) - activerecord (= 6.1.7.6) - activestorage (= 6.1.7.6) - activesupport (= 6.1.7.6) + actionmailbox (6.1.7.7) + actionpack (= 6.1.7.7) + activejob (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) mail (>= 2.7.1) - actionmailer (6.1.7.6) - actionpack (= 6.1.7.6) - actionview (= 6.1.7.6) - activejob (= 6.1.7.6) - activesupport (= 6.1.7.6) + actionmailer (6.1.7.7) + actionpack (= 6.1.7.7) + actionview (= 6.1.7.7) + activejob (= 6.1.7.7) + activesupport (= 6.1.7.7) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.7.6) - actionview (= 6.1.7.6) - activesupport (= 6.1.7.6) + actionpack (6.1.7.7) + actionview (= 6.1.7.7) + activesupport (= 6.1.7.7) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.7.6) - actionpack (= 6.1.7.6) - activerecord (= 6.1.7.6) - activestorage (= 6.1.7.6) - activesupport (= 6.1.7.6) + actiontext (6.1.7.7) + actionpack (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) nokogiri (>= 1.8.5) - actionview (6.1.7.6) - activesupport (= 6.1.7.6) + actionview (6.1.7.7) + activesupport (= 6.1.7.7) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -267,22 +267,22 @@ GEM active_link_to (1.0.5) actionpack addressable - activejob (6.1.7.6) - activesupport (= 6.1.7.6) + activejob (6.1.7.7) + activesupport (= 6.1.7.7) globalid (>= 0.3.6) - activemodel (6.1.7.6) - activesupport (= 6.1.7.6) - activerecord (6.1.7.6) - activemodel (= 6.1.7.6) - activesupport (= 6.1.7.6) - activestorage (6.1.7.6) - actionpack (= 6.1.7.6) - activejob (= 6.1.7.6) - activerecord (= 6.1.7.6) - activesupport (= 6.1.7.6) + activemodel (6.1.7.7) + activesupport (= 6.1.7.7) + activerecord (6.1.7.7) + activemodel (= 6.1.7.7) + activesupport (= 6.1.7.7) + activestorage (6.1.7.7) + actionpack (= 6.1.7.7) + activejob (= 6.1.7.7) + activerecord (= 6.1.7.7) + activesupport (= 6.1.7.7) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.7.6) + activesupport (6.1.7.7) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -294,12 +294,11 @@ GEM public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) aws-eventstream (1.3.0) - aws-partitions (1.893.0) - aws-sdk-core (3.191.2) + aws-partitions (1.894.0) + aws-sdk-core (3.191.3) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.8) - base64 jmespath (~> 1, >= 1.6.1) aws-sdk-kms (1.77.0) aws-sdk-core (~> 3, >= 3.191.0) @@ -475,7 +474,7 @@ GEM activemodel (>= 4.1, < 7.1) activesupport (>= 4.1, < 7.1) railties (>= 4.1, < 7.1) - fugit (1.9.0) + fugit (1.10.0) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) gemoji (3.0.1) @@ -662,7 +661,7 @@ GEM nio4r (~> 2.0) raabro (1.4.0) racc (1.7.3) - rack (2.2.8) + rack (2.2.8.1) rack-attack (6.7.0) rack (>= 1.0, < 4) rack-cors (1.1.1) @@ -674,20 +673,20 @@ GEM rack rack-test (2.1.0) rack (>= 1.3) - rails (6.1.7.6) - actioncable (= 6.1.7.6) - actionmailbox (= 6.1.7.6) - actionmailer (= 6.1.7.6) - actionpack (= 6.1.7.6) - actiontext (= 6.1.7.6) - actionview (= 6.1.7.6) - activejob (= 6.1.7.6) - activemodel (= 6.1.7.6) - activerecord (= 6.1.7.6) - activestorage (= 6.1.7.6) - activesupport (= 6.1.7.6) + rails (6.1.7.7) + actioncable (= 6.1.7.7) + actionmailbox (= 6.1.7.7) + actionmailer (= 6.1.7.7) + actionpack (= 6.1.7.7) + actiontext (= 6.1.7.7) + actionview (= 6.1.7.7) + activejob (= 6.1.7.7) + activemodel (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) bundler (>= 1.15.0) - railties (= 6.1.7.6) + railties (= 6.1.7.7) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -702,9 +701,9 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - railties (6.1.7.6) - actionpack (= 6.1.7.6) - activesupport (= 6.1.7.6) + railties (6.1.7.7) + actionpack (= 6.1.7.7) + activesupport (= 6.1.7.7) method_source rake (>= 12.2) thor (~> 1.0) @@ -780,7 +779,7 @@ GEM rubocop-rspec (2.11.1) rubocop (~> 1.19) ruby-progressbar (1.13.0) - ruby-vips (2.2.0) + ruby-vips (2.2.1) ffi (~> 1.12) rubyXL (3.4.25) nokogiri (>= 1.10.8) @@ -871,7 +870,7 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webmock (3.20.0) + webmock (3.22.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) From 8d944c31fbe1a59d080e6928303943a9e2bc82ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 22 Feb 2024 17:39:12 +0100 Subject: [PATCH 39/46] fix amendments acceptation --- Gemfile.lock | 2 +- app/controllers/concerns/amendments_enforce_locale.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index dadf4d44..be970347 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -47,7 +47,7 @@ GIT GIT remote: https://github.com/openpoke/decidim.git - revision: e232050400c59a4574c53f0b795c13b7b780e569 + revision: f67c330b03d78932b4137b3ef38fa8f1bd9d1c2f branch: 0.27-canada specs: decidim (0.27.5) diff --git a/app/controllers/concerns/amendments_enforce_locale.rb b/app/controllers/concerns/amendments_enforce_locale.rb index 6e798d8d..86603d1a 100644 --- a/app/controllers/concerns/amendments_enforce_locale.rb +++ b/app/controllers/concerns/amendments_enforce_locale.rb @@ -13,7 +13,7 @@ def enforce_amendment_locale(&action) amendable.component.current_settings.try(:amendment_creation_enabled) && !amendable&.official? && Rails.application.secrets.gpc[:enforce_original_amendments_locale] - amendable_locale = amendable.title.keys.first + amendable_locale = (amendable.title.keys - ["machine_translations"]).first flash[:alert] = I18n.t("gpc.amendments.enforced_locale", lang: I18n.t("locale.name", locale: amendable_locale)) if current_locale.to_s != amendable_locale From f2364edd9e17d4d8a3564bba7a4dad91effc8f64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 22 Feb 2024 17:48:36 +0100 Subject: [PATCH 40/46] fix override md5 --- spec/lib/overrides_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/lib/overrides_spec.rb b/spec/lib/overrides_spec.rb index 08b16715..0d9ca052 100644 --- a/spec/lib/overrides_spec.rb +++ b/spec/lib/overrides_spec.rb @@ -29,7 +29,7 @@ "/app/cells/decidim/diff/diff_mode_dropdown.erb" => "770563c121c875159a88cd5e142658e3", # other overrides "/app/helpers/decidim/card_helper.rb" => "b9e7f943ae7c289b2855d328de7b371b", - "/app/commands/decidim/amendable/accept.rb" => "c561b69a7bd5b68dfc4684c11001cb2c", + "/app/commands/decidim/amendable/accept.rb" => "25b86fc0e881251dbda0a176b4c8a9af", "/app/commands/decidim/amendable/reject.rb" => "efd7062b0942b0ec80e336345ffca62f" } From b9ca78b33b584340fb5e8c2a9baaff1dce76dc8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 22 Feb 2024 18:04:55 +0100 Subject: [PATCH 41/46] fix decidim branch --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index be970347..604bba5f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -47,7 +47,7 @@ GIT GIT remote: https://github.com/openpoke/decidim.git - revision: f67c330b03d78932b4137b3ef38fa8f1bd9d1c2f + revision: c5287ba32ff16e41e2b86676426ffbb13091abd5 branch: 0.27-canada specs: decidim (0.27.5) From 1677233192a1a4fa2f20efd24940a4b475f7cf0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 22 Feb 2024 18:07:54 +0100 Subject: [PATCH 42/46] fix decidim branch --- Gemfile.lock | 931 --------------------------------------------------- 1 file changed, 931 deletions(-) delete mode 100644 Gemfile.lock diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 604bba5f..00000000 --- a/Gemfile.lock +++ /dev/null @@ -1,931 +0,0 @@ -GIT - remote: https://github.com/Platoniq/decidim-verifications-direct_verifications.git - revision: a1581ece91df31b1abfc3b375de71d1125b1eaa8 - specs: - decidim-direct_verifications (1.3.0) - decidim-admin (>= 0.27.0, < 0.28) - decidim-core (>= 0.27.0, < 0.28) - -GIT - remote: https://github.com/decidim-ice/decidim-module-calendar.git - revision: 6f81bf78e4d568886a75b5f00ad337ca4ea9794f - branch: release/0.27-stable - specs: - decidim-calendar (0.27.0) - decidim-admin (>= 0.27.0, < 0.28) - decidim-core (>= 0.27.0, < 0.28) - -GIT - remote: https://github.com/decidim-ice/decidim-module-decidim_awesome.git - revision: c182090ea9b09629b014b9e6625f62201651ffc8 - branch: limit-amendments - specs: - decidim-decidim_awesome (0.10.2) - decidim-admin (>= 0.26.0, < 0.28) - decidim-core (>= 0.26.0, < 0.28) - deface (>= 1.5) - sassc (~> 2.3) - -GIT - remote: https://github.com/mainio/decidim-module-term_customizer.git - revision: abbf0c69e1bcaafebc5aa4f8da22fdb64ce62149 - branch: release/0.27-stable - specs: - decidim-term_customizer (0.27.0) - decidim-admin (~> 0.27.0) - decidim-core (~> 0.27.0) - -GIT - remote: https://github.com/openpoke/decidim-module-civicrm.git - revision: febfbeae22647b36ec5cb7791f7bfa68fe152256 - specs: - decidim-civicrm (0.27.4) - decidim-admin (>= 0.27.0, < 0.28) - decidim-core (>= 0.27.0, < 0.28) - decidim-verifications (>= 0.27.0, < 0.28) - deface (~> 1.5) - -GIT - remote: https://github.com/openpoke/decidim.git - revision: c5287ba32ff16e41e2b86676426ffbb13091abd5 - branch: 0.27-canada - specs: - decidim (0.27.5) - decidim-accountability (= 0.27.5) - decidim-admin (= 0.27.5) - decidim-api (= 0.27.5) - decidim-assemblies (= 0.27.5) - decidim-blogs (= 0.27.5) - decidim-budgets (= 0.27.5) - decidim-comments (= 0.27.5) - decidim-core (= 0.27.5) - decidim-debates (= 0.27.5) - decidim-forms (= 0.27.5) - decidim-generators (= 0.27.5) - decidim-meetings (= 0.27.5) - decidim-pages (= 0.27.5) - decidim-participatory_processes (= 0.27.5) - decidim-proposals (= 0.27.5) - decidim-sortitions (= 0.27.5) - decidim-surveys (= 0.27.5) - decidim-system (= 0.27.5) - decidim-templates (= 0.27.5) - decidim-verifications (= 0.27.5) - decidim-accountability (0.27.5) - decidim-comments (= 0.27.5) - decidim-core (= 0.27.5) - decidim-admin (0.27.5) - active_link_to (~> 1.0) - decidim-core (= 0.27.5) - devise (~> 4.7) - devise-i18n (~> 1.2) - devise_invitable (~> 2.0, >= 2.0.9) - decidim-api (0.27.5) - decidim-core (= 0.27.5) - graphql (~> 1.12, < 1.13) - graphql-docs (~> 2.1.0) - rack-cors (~> 1.0) - decidim-assemblies (0.27.5) - decidim-core (= 0.27.5) - decidim-blogs (0.27.5) - decidim-admin (= 0.27.5) - decidim-comments (= 0.27.5) - decidim-core (= 0.27.5) - decidim-budgets (0.27.5) - decidim-comments (= 0.27.5) - decidim-core (= 0.27.5) - decidim-comments (0.27.5) - decidim-core (= 0.27.5) - redcarpet (~> 3.5, >= 3.5.1) - decidim-conferences (0.27.5) - decidim-core (= 0.27.5) - decidim-meetings (= 0.27.5) - wicked_pdf (~> 2.1) - wkhtmltopdf-binary (~> 0.12) - decidim-core (0.27.5) - active_link_to (~> 1.0) - acts_as_list (~> 0.9) - batch-loader (~> 1.2) - browser (~> 2.7) - carrierwave (~> 2.2.5, >= 2.2.5) - cells-erb (~> 0.1.0) - cells-rails (~> 0.1.3) - charlock_holmes (~> 0.7) - date_validator (~> 0.12.0) - devise (~> 4.7) - devise-i18n (~> 1.2) - diffy (~> 3.3) - doorkeeper (~> 5.1) - doorkeeper-i18n (~> 4.0) - file_validators (~> 3.0) - fog-local (~> 0.6) - foundation_rails_helper (~> 4.0) - geocoder (~> 1.8) - hashdiff (>= 0.4.0, < 2.0.0) - invisible_captcha (~> 0.12) - kaminari (~> 1.2, >= 1.2.1) - loofah (~> 2.19.0) - mime-types (>= 1.16, < 4.0) - mini_magick (~> 4.9) - mustache (~> 1.1.0) - omniauth (~> 2.0) - omniauth-facebook (~> 5.0) - omniauth-google-oauth2 (~> 1.0) - omniauth-rails_csrf_protection (~> 1.0) - omniauth-twitter (~> 1.4) - paper_trail (~> 12.0) - pg (~> 1.1.4, < 2) - pg_search (~> 2.2) - premailer-rails (~> 1.10) - rack (~> 2.2, >= 2.2.3) - rack-attack (~> 6.0) - rails (~> 6.1.0) - rails-i18n (~> 6.0) - ransack (~> 2.4.1) - redis (~> 4.1) - request_store (~> 1.5.0) - rubyXL (~> 3.4) - rubyzip (~> 2.0) - seven_zip_ruby (~> 1.3) - social-share-button (~> 1.2, >= 1.2.1) - valid_email2 (~> 2.1) - webpacker (= 6.0.0.rc.5) - webpush (~> 1.1) - wisper (~> 2.0) - decidim-debates (0.27.5) - decidim-comments (= 0.27.5) - decidim-core (= 0.27.5) - decidim-dev (0.27.5) - axe-core-rspec (~> 4.1.0) - byebug (~> 11.0) - capybara (~> 3.24) - db-query-matchers (~> 0.10.0) - decidim (= 0.27.5) - erb_lint (~> 0.0.35) - factory_bot_rails (~> 4.8) - i18n-tasks (~> 0.9.18) - mdl (~> 0.5) - nokogiri (~> 1.13) - parallel_tests (~> 3.7) - puma (~> 5.0) - rails-controller-testing (~> 1.0) - rspec-cells (~> 0.3.7) - rspec-html-matchers (~> 0.9.1) - rspec-rails (~> 4.0) - rspec-retry (~> 0.6.2) - rspec_junit_formatter (~> 0.3.0) - rubocop (~> 1.28.0) - rubocop-rails (~> 2.14) - rubocop-rspec (~> 2.10) - selenium-webdriver (~> 4.1.0) - simplecov (~> 0.21.0) - simplecov-cobertura (~> 2.1.0) - w3c_rspec_validators (~> 0.3.0) - webmock (~> 3.6) - wisper-rspec (~> 1.0) - decidim-forms (0.27.5) - decidim-core (= 0.27.5) - wicked_pdf (~> 2.1) - wkhtmltopdf-binary (~> 0.12) - decidim-generators (0.27.5) - decidim-core (= 0.27.5) - decidim-meetings (0.27.5) - decidim-core (= 0.27.5) - decidim-forms (= 0.27.5) - icalendar (~> 2.5) - decidim-pages (0.27.5) - decidim-core (= 0.27.5) - decidim-participatory_processes (0.27.5) - decidim-core (= 0.27.5) - decidim-proposals (0.27.5) - decidim-comments (= 0.27.5) - decidim-core (= 0.27.5) - doc2text (~> 0.4.5) - redcarpet (~> 3.5, >= 3.5.1) - decidim-sortitions (0.27.5) - decidim-admin (= 0.27.5) - decidim-comments (= 0.27.5) - decidim-core (= 0.27.5) - decidim-proposals (= 0.27.5) - decidim-surveys (0.27.5) - decidim-core (= 0.27.5) - decidim-forms (= 0.27.5) - decidim-templates (= 0.27.5) - decidim-system (0.27.5) - active_link_to (~> 1.0) - decidim-core (= 0.27.5) - devise (~> 4.7) - devise-i18n (~> 1.2) - devise_invitable (~> 2.0, >= 2.0.9) - decidim-templates (0.27.5) - decidim-core (= 0.27.5) - decidim-forms (= 0.27.5) - decidim-verifications (0.27.5) - decidim-core (= 0.27.5) - -GEM - remote: https://rubygems.org/ - specs: - actioncable (6.1.7.7) - actionpack (= 6.1.7.7) - activesupport (= 6.1.7.7) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (6.1.7.7) - actionpack (= 6.1.7.7) - activejob (= 6.1.7.7) - activerecord (= 6.1.7.7) - activestorage (= 6.1.7.7) - activesupport (= 6.1.7.7) - mail (>= 2.7.1) - actionmailer (6.1.7.7) - actionpack (= 6.1.7.7) - actionview (= 6.1.7.7) - activejob (= 6.1.7.7) - activesupport (= 6.1.7.7) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (6.1.7.7) - actionview (= 6.1.7.7) - activesupport (= 6.1.7.7) - rack (~> 2.0, >= 2.0.9) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.7.7) - actionpack (= 6.1.7.7) - activerecord (= 6.1.7.7) - activestorage (= 6.1.7.7) - activesupport (= 6.1.7.7) - nokogiri (>= 1.8.5) - actionview (6.1.7.7) - activesupport (= 6.1.7.7) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - active_link_to (1.0.5) - actionpack - addressable - activejob (6.1.7.7) - activesupport (= 6.1.7.7) - globalid (>= 0.3.6) - activemodel (6.1.7.7) - activesupport (= 6.1.7.7) - activerecord (6.1.7.7) - activemodel (= 6.1.7.7) - activesupport (= 6.1.7.7) - activestorage (6.1.7.7) - actionpack (= 6.1.7.7) - activejob (= 6.1.7.7) - activerecord (= 6.1.7.7) - activesupport (= 6.1.7.7) - marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (6.1.7.7) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) - acts_as_list (0.9.19) - activerecord (>= 3.0) - addressable (2.8.6) - public_suffix (>= 2.0.2, < 6.0) - ast (2.4.2) - aws-eventstream (1.3.0) - aws-partitions (1.894.0) - aws-sdk-core (3.191.3) - aws-eventstream (~> 1, >= 1.3.0) - aws-partitions (~> 1, >= 1.651.0) - aws-sigv4 (~> 1.8) - jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.77.0) - aws-sdk-core (~> 3, >= 3.191.0) - aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.143.0) - aws-sdk-core (~> 3, >= 3.191.0) - aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.8) - aws-sigv4 (1.8.0) - aws-eventstream (~> 1, >= 1.0.2) - axe-core-api (4.8.2) - dumb_delegator - virtus - axe-core-rspec (4.1.0) - axe-core-api - dumb_delegator - virtus - axiom-types (0.1.1) - descendants_tracker (~> 0.0.4) - ice_nine (~> 0.11.0) - thread_safe (~> 0.3, >= 0.3.1) - base64 (0.2.0) - batch-loader (1.5.0) - bcrypt (3.1.20) - better_html (1.0.16) - actionview (>= 4.0) - activesupport (>= 4.0) - ast (~> 2.0) - erubi (~> 1.4) - html_tokenizer (~> 0.0.6) - parser (>= 2.4) - smart_properties - bigdecimal (3.1.6) - bindex (0.8.1) - bootsnap (1.18.3) - msgpack (~> 1.2) - browser (2.7.1) - builder (3.2.4) - byebug (11.1.3) - capybara (3.40.0) - addressable - matrix - mini_mime (>= 0.1.3) - nokogiri (~> 1.11) - rack (>= 1.6.0) - rack-test (>= 0.6.3) - regexp_parser (>= 1.5, < 3.0) - xpath (~> 3.2) - carrierwave (2.2.5) - activemodel (>= 5.0.0) - activesupport (>= 5.0.0) - addressable (~> 2.6) - image_processing (~> 1.1) - marcel (~> 1.0.0) - mini_mime (>= 0.1.3) - ssrf_filter (~> 1.0) - cells (4.1.7) - declarative-builder (< 0.2.0) - declarative-option (< 0.2.0) - tilt (>= 1.4, < 3) - uber (< 0.2.0) - cells-erb (0.1.0) - cells (~> 4.0) - erbse (>= 0.1.1) - cells-rails (0.1.5) - actionpack (>= 5.0) - cells (>= 4.1.6, < 5.0.0) - charlock_holmes (0.7.7) - chef-utils (18.4.2) - concurrent-ruby - childprocess (4.1.0) - coercible (1.0.0) - descendants_tracker (~> 0.0.1) - coffee-rails (5.0.0) - coffee-script (>= 2.2.0) - railties (>= 5.2.0) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.12.2) - commonmarker (0.23.10) - concurrent-ruby (1.2.3) - connection_pool (2.4.1) - crack (1.0.0) - bigdecimal - rexml - crass (1.0.6) - css_parser (1.16.0) - addressable - date (3.3.4) - date_validator (0.12.0) - activemodel (>= 3) - activesupport (>= 3) - db-query-matchers (0.10.0) - activesupport (>= 4.0, < 7) - rspec (~> 3.0) - declarative-builder (0.1.0) - declarative-option (< 0.2.0) - declarative-option (0.1.0) - deepl-rb (2.5.3) - deface (1.9.0) - actionview (>= 5.2) - nokogiri (>= 1.6) - polyglot - railties (>= 5.2) - rainbow (>= 2.1.0) - descendants_tracker (0.0.4) - thread_safe (~> 0.3, >= 0.3.1) - devise (4.9.3) - bcrypt (~> 3.0) - orm_adapter (~> 0.1) - railties (>= 4.1.0) - responders - warden (~> 1.2.3) - devise-i18n (1.12.0) - devise (>= 4.9.0) - devise_invitable (2.0.9) - actionmailer (>= 5.0) - devise (>= 4.6) - diff-lcs (1.5.1) - diffy (3.4.2) - doc2text (0.4.7) - nokogiri (>= 1.13.2, < 1.17.0) - rubyzip (~> 2.3.0) - docile (1.4.0) - doorkeeper (5.6.9) - railties (>= 5) - doorkeeper-i18n (4.0.1) - dumb_delegator (1.0.0) - erb_lint (0.0.37) - activesupport - better_html (~> 1.0.7) - html_tokenizer - parser (>= 2.7.1.4) - rainbow - rubocop - smart_properties - erbse (0.1.4) - temple - erubi (1.12.0) - escape_utils (1.3.0) - et-orbi (1.2.7) - tzinfo - excon (0.109.0) - execjs (2.9.1) - extended-markdown-filter (0.7.0) - html-pipeline (~> 2.9) - factory_bot (4.11.1) - activesupport (>= 3.0.0) - factory_bot_rails (4.11.1) - factory_bot (~> 4.11.1) - railties (>= 3.0.0) - faker (3.2.3) - i18n (>= 1.8.11, < 2) - faraday (2.9.0) - faraday-net_http (>= 2.0, < 3.2) - faraday-net_http (3.1.0) - net-http - ffi (1.16.3) - file_validators (3.0.0) - activemodel (>= 3.2) - mime-types (>= 1.0) - fog-core (2.4.0) - builder - excon (~> 0.71) - formatador (>= 0.2, < 2.0) - mime-types - fog-local (0.8.0) - fog-core (>= 1.27, < 3.0) - formatador (1.1.0) - foundation_rails_helper (4.0.1) - actionpack (>= 4.1, < 7.1) - activemodel (>= 4.1, < 7.1) - activesupport (>= 4.1, < 7.1) - railties (>= 4.1, < 7.1) - fugit (1.10.0) - et-orbi (~> 1, >= 1.2.7) - raabro (~> 1.4) - gemoji (3.0.1) - geocoder (1.8.2) - globalid (1.2.1) - activesupport (>= 6.1) - graphql (1.12.24) - graphql-docs (2.1.0) - commonmarker (~> 0.16) - escape_utils (~> 1.2) - extended-markdown-filter (~> 0.4) - gemoji (~> 3.0) - graphql (~> 1.12) - html-pipeline (~> 2.9) - sass (~> 3.4) - hashdiff (1.1.0) - hashie (5.0.0) - highline (3.0.1) - hkdf (0.3.0) - html-pipeline (2.14.3) - activesupport (>= 2) - nokogiri (>= 1.4) - html_tokenizer (0.0.7) - htmlentities (4.3.4) - i18n (1.14.1) - concurrent-ruby (~> 1.0) - i18n-tasks (0.9.37) - activesupport (>= 4.0.2) - ast (>= 2.1.0) - erubi - highline (>= 2.0.0) - i18n - parser (>= 2.2.3.0) - rails-i18n - rainbow (>= 2.2.2, < 4.0) - terminal-table (>= 1.5.1) - icalendar (2.10.1) - ice_cube (~> 0.16) - ice_cube (0.16.4) - ice_nine (0.11.2) - image_processing (1.12.2) - mini_magick (>= 4.9.5, < 5) - ruby-vips (>= 2.0.17, < 3) - invisible_captcha (0.13.0) - rails (>= 3.2.0) - jmespath (1.6.2) - json (2.7.1) - jwt (2.8.0) - base64 - kaminari (1.2.2) - activesupport (>= 4.1.0) - kaminari-actionview (= 1.2.2) - kaminari-activerecord (= 1.2.2) - kaminari-core (= 1.2.2) - kaminari-actionview (1.2.2) - actionview - kaminari-core (= 1.2.2) - kaminari-activerecord (1.2.2) - activerecord - kaminari-core (= 1.2.2) - kaminari-core (1.2.2) - kramdown (2.4.0) - rexml - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - launchy (2.5.2) - addressable (~> 2.8) - letter_opener (1.9.0) - launchy (>= 2.2, < 3) - letter_opener_web (2.0.0) - actionmailer (>= 5.2) - letter_opener (~> 1.7) - railties (>= 5.2) - rexml - listen (3.8.0) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.19.1) - crass (~> 1.0.2) - nokogiri (>= 1.5.9) - mail (2.8.1) - mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp - marcel (1.0.2) - matrix (0.4.2) - mdl (0.13.0) - kramdown (~> 2.3) - kramdown-parser-gfm (~> 1.1) - mixlib-cli (~> 2.1, >= 2.1.1) - mixlib-config (>= 2.2.1, < 4) - mixlib-shellout - method_source (1.0.0) - mime-types (3.5.2) - mime-types-data (~> 3.2015) - mime-types-data (3.2024.0206) - mini_magick (4.12.0) - mini_mime (1.1.5) - minitest (5.22.2) - mixlib-cli (2.1.8) - mixlib-config (3.0.27) - tomlrb - mixlib-shellout (3.2.7) - chef-utils - msgpack (1.7.2) - multi_xml (0.6.0) - mustache (1.1.1) - net-http (0.4.1) - uri - net-imap (0.4.10) - date - net-protocol - net-pop (0.1.2) - net-protocol - net-protocol (0.2.2) - timeout - net-smtp (0.4.0.1) - net-protocol - nio4r (2.7.0) - nokogiri (1.16.2-x86_64-linux) - racc (~> 1.4) - oauth (1.1.0) - oauth-tty (~> 1.0, >= 1.0.1) - snaky_hash (~> 2.0) - version_gem (~> 1.1) - oauth-tty (1.0.5) - version_gem (~> 1.1, >= 1.1.1) - oauth2 (2.0.9) - faraday (>= 0.17.3, < 3.0) - jwt (>= 1.0, < 3.0) - multi_xml (~> 0.5) - rack (>= 1.2, < 4) - snaky_hash (~> 2.0) - version_gem (~> 1.1) - omniauth (2.1.2) - hashie (>= 3.4.6) - rack (>= 2.2.3) - rack-protection - omniauth-facebook (5.0.0) - omniauth-oauth2 (~> 1.2) - omniauth-google-oauth2 (1.1.1) - jwt (>= 2.0) - oauth2 (~> 2.0.6) - omniauth (~> 2.0) - omniauth-oauth2 (~> 1.8.0) - omniauth-oauth (1.2.0) - oauth - omniauth (>= 1.0, < 3) - omniauth-oauth2 (1.8.0) - oauth2 (>= 1.4, < 3) - omniauth (~> 2.0) - omniauth-rails_csrf_protection (1.0.1) - actionpack (>= 4.2) - omniauth (~> 2.0) - omniauth-twitter (1.4.0) - omniauth-oauth (~> 1.1) - rack - orm_adapter (0.5.0) - paper_trail (12.3.0) - activerecord (>= 5.2) - request_store (~> 1.1) - parallel (1.24.0) - parallel_tests (3.13.0) - parallel - parser (3.3.0.5) - ast (~> 2.4.1) - racc - pg (1.1.4) - pg_search (2.3.6) - activerecord (>= 5.2) - activesupport (>= 5.2) - polyglot (0.3.5) - premailer (1.22.0) - addressable - css_parser (>= 1.12.0) - htmlentities (>= 4.0.0) - premailer-rails (1.12.0) - actionmailer (>= 3) - net-smtp - premailer (~> 1.7, >= 1.7.9) - public_suffix (5.0.4) - puma (5.6.8) - nio4r (~> 2.0) - raabro (1.4.0) - racc (1.7.3) - rack (2.2.8.1) - rack-attack (6.7.0) - rack (>= 1.0, < 4) - rack-cors (1.1.1) - rack (>= 2.0.0) - rack-protection (3.2.0) - base64 (>= 0.1.0) - rack (~> 2.2, >= 2.2.4) - rack-proxy (0.7.7) - rack - rack-test (2.1.0) - rack (>= 1.3) - rails (6.1.7.7) - actioncable (= 6.1.7.7) - actionmailbox (= 6.1.7.7) - actionmailer (= 6.1.7.7) - actionpack (= 6.1.7.7) - actiontext (= 6.1.7.7) - actionview (= 6.1.7.7) - activejob (= 6.1.7.7) - activemodel (= 6.1.7.7) - activerecord (= 6.1.7.7) - activestorage (= 6.1.7.7) - activesupport (= 6.1.7.7) - bundler (>= 1.15.0) - railties (= 6.1.7.7) - sprockets-rails (>= 2.0.0) - rails-controller-testing (1.0.5) - actionpack (>= 5.0.1.rc1) - actionview (>= 5.0.1.rc1) - activesupport (>= 5.0.1.rc1) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest - nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - rails-i18n (6.0.0) - i18n (>= 0.7, < 2) - railties (>= 6.0.0, < 7) - railties (6.1.7.7) - actionpack (= 6.1.7.7) - activesupport (= 6.1.7.7) - method_source - rake (>= 12.2) - thor (~> 1.0) - rainbow (3.1.1) - rake (13.1.0) - ransack (2.4.2) - activerecord (>= 5.2.4) - activesupport (>= 5.2.4) - i18n - rb-fsevent (0.11.2) - rb-inotify (0.10.1) - ffi (~> 1.0) - redcarpet (3.6.0) - redis (4.8.1) - redis-client (0.20.0) - connection_pool - regexp_parser (2.9.0) - request_store (1.5.1) - rack (>= 1.4) - responders (3.1.1) - actionpack (>= 5.2) - railties (>= 5.2) - rexml (3.2.6) - rspec (3.13.0) - rspec-core (~> 3.13.0) - rspec-expectations (~> 3.13.0) - rspec-mocks (~> 3.13.0) - rspec-cells (0.3.9) - cells (>= 4.0.0, < 6.0.0) - rspec-rails (>= 3.0.0, < 6.2.0) - rspec-core (3.13.0) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-html-matchers (0.9.4) - nokogiri (~> 1) - rspec (>= 3.0.0.a, < 4) - rspec-mocks (3.13.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-rails (4.1.2) - actionpack (>= 4.2) - activesupport (>= 4.2) - railties (>= 4.2) - rspec-core (~> 3.10) - rspec-expectations (~> 3.10) - rspec-mocks (~> 3.10) - rspec-support (~> 3.10) - rspec-retry (0.6.2) - rspec-core (> 3.3) - rspec-support (3.13.0) - rspec_junit_formatter (0.3.0) - rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.28.2) - parallel (~> 1.10) - parser (>= 3.1.0.0) - rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml - rubocop-ast (>= 1.17.0, < 2.0) - ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.30.0) - parser (>= 3.2.1.0) - rubocop-faker (1.1.0) - faker (>= 2.12.0) - rubocop (>= 0.82.0) - rubocop-rails (2.15.2) - activesupport (>= 4.2.0) - rack (>= 1.1) - rubocop (>= 1.7.0, < 2.0) - rubocop-rspec (2.11.1) - rubocop (~> 1.19) - ruby-progressbar (1.13.0) - ruby-vips (2.2.1) - ffi (~> 1.12) - rubyXL (3.4.25) - nokogiri (>= 1.10.8) - rubyzip (>= 1.3.0) - rubyzip (2.3.2) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sassc (2.4.0) - ffi (~> 1.9) - selenium-webdriver (4.1.0) - childprocess (>= 0.5, < 5.0) - rexml (~> 3.2, >= 3.2.5) - rubyzip (>= 1.2.2) - semantic_range (3.0.0) - seven_zip_ruby (1.3.0) - sidekiq (7.2.2) - concurrent-ruby (< 2) - connection_pool (>= 2.3.0) - rack (>= 2.2.4) - redis-client (>= 0.19.0) - sidekiq-cron (1.12.0) - fugit (~> 1.8) - globalid (>= 1.0.1) - sidekiq (>= 6) - simplecov (0.21.2) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (2.1.0) - rexml - simplecov (~> 0.19) - simplecov-html (0.12.3) - simplecov_json_formatter (0.1.4) - smart_properties (1.17.0) - snaky_hash (2.0.1) - hashie - version_gem (~> 1.1, >= 1.1.1) - social-share-button (1.2.4) - coffee-rails - spring (4.1.3) - spring-watcher-listen (2.1.0) - listen (>= 2.7, < 4.0) - spring (>= 4) - sprockets (4.2.1) - concurrent-ruby (~> 1.0) - rack (>= 2.2.4, < 4) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - sprockets (>= 3.0.0) - ssrf_filter (1.1.2) - temple (0.10.3) - terminal-table (3.0.2) - unicode-display_width (>= 1.1.1, < 3) - thor (1.3.0) - thread_safe (0.3.6) - tilt (2.3.0) - timeout (0.4.1) - tomlrb (2.0.3) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - uber (0.1.0) - unicode-display_width (2.5.0) - uri (0.13.0) - valid_email2 (2.3.1) - activemodel (>= 3.2) - mail (~> 2.5) - version_gem (1.1.3) - virtus (2.0.0) - axiom-types (~> 0.1) - coercible (~> 1.0) - descendants_tracker (~> 0.0, >= 0.0.3) - w3c_rspec_validators (0.3.0) - rails - rspec - w3c_validators - w3c_validators (1.3.7) - json (>= 1.8) - nokogiri (~> 1.6) - rexml (~> 3.2) - warden (1.2.9) - rack (>= 2.0.9) - web-console (4.2.1) - actionview (>= 6.0.0) - activemodel (>= 6.0.0) - bindex (>= 0.4.0) - railties (>= 6.0.0) - webmock (3.22.0) - addressable (>= 2.8.0) - crack (>= 0.3.2) - hashdiff (>= 0.4.0, < 2.0.0) - webpacker (6.0.0.rc.5) - activesupport (>= 5.2) - rack-proxy (>= 0.6.1) - railties (>= 5.2) - semantic_range (>= 2.3.0) - webpush (1.1.0) - hkdf (~> 0.2) - jwt (~> 2.0) - websocket-driver (0.7.6) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - wicked_pdf (2.7.0) - activesupport - wisper (2.0.1) - wisper-rspec (1.1.0) - wkhtmltopdf-binary (0.12.6.6) - xpath (3.2.0) - nokogiri (~> 1.8) - zeitwerk (2.6.13) - -PLATFORMS - x86_64-linux - -DEPENDENCIES - aws-sdk-s3 - bootsnap (~> 1.7) - byebug - decidim! - decidim-calendar! - decidim-civicrm! - decidim-conferences! - decidim-decidim_awesome! - decidim-dev! - decidim-direct_verifications! - decidim-templates! - decidim-term_customizer! - deepl-rb - deface - faker - letter_opener_web - listen - puma - rubocop-faker - sidekiq - sidekiq-cron - spring - spring-watcher-listen - web-console - wicked_pdf (~> 2.1) - -RUBY VERSION - ruby 3.0.6p216 - -BUNDLED WITH - 2.4.22 From 0cb66050cbc08a18d0ff83e75b972b03ef67494d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 22 Feb 2024 18:08:35 +0100 Subject: [PATCH 43/46] fix decidim branch --- Gemfile.lock | 931 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 931 insertions(+) create mode 100644 Gemfile.lock diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000..43136f70 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,931 @@ +GIT + remote: https://github.com/Platoniq/decidim-verifications-direct_verifications.git + revision: a1581ece91df31b1abfc3b375de71d1125b1eaa8 + specs: + decidim-direct_verifications (1.3.0) + decidim-admin (>= 0.27.0, < 0.28) + decidim-core (>= 0.27.0, < 0.28) + +GIT + remote: https://github.com/decidim-ice/decidim-module-calendar.git + revision: 6f81bf78e4d568886a75b5f00ad337ca4ea9794f + branch: release/0.27-stable + specs: + decidim-calendar (0.27.0) + decidim-admin (>= 0.27.0, < 0.28) + decidim-core (>= 0.27.0, < 0.28) + +GIT + remote: https://github.com/decidim-ice/decidim-module-decidim_awesome.git + revision: c182090ea9b09629b014b9e6625f62201651ffc8 + branch: limit-amendments + specs: + decidim-decidim_awesome (0.10.2) + decidim-admin (>= 0.26.0, < 0.28) + decidim-core (>= 0.26.0, < 0.28) + deface (>= 1.5) + sassc (~> 2.3) + +GIT + remote: https://github.com/mainio/decidim-module-term_customizer.git + revision: abbf0c69e1bcaafebc5aa4f8da22fdb64ce62149 + branch: release/0.27-stable + specs: + decidim-term_customizer (0.27.0) + decidim-admin (~> 0.27.0) + decidim-core (~> 0.27.0) + +GIT + remote: https://github.com/openpoke/decidim-module-civicrm.git + revision: febfbeae22647b36ec5cb7791f7bfa68fe152256 + specs: + decidim-civicrm (0.27.4) + decidim-admin (>= 0.27.0, < 0.28) + decidim-core (>= 0.27.0, < 0.28) + decidim-verifications (>= 0.27.0, < 0.28) + deface (~> 1.5) + +GIT + remote: https://github.com/openpoke/decidim.git + revision: aee1e1488187f0af8713d6686fac819f9b9d2f33 + branch: 0.27-canada + specs: + decidim (0.27.5) + decidim-accountability (= 0.27.5) + decidim-admin (= 0.27.5) + decidim-api (= 0.27.5) + decidim-assemblies (= 0.27.5) + decidim-blogs (= 0.27.5) + decidim-budgets (= 0.27.5) + decidim-comments (= 0.27.5) + decidim-core (= 0.27.5) + decidim-debates (= 0.27.5) + decidim-forms (= 0.27.5) + decidim-generators (= 0.27.5) + decidim-meetings (= 0.27.5) + decidim-pages (= 0.27.5) + decidim-participatory_processes (= 0.27.5) + decidim-proposals (= 0.27.5) + decidim-sortitions (= 0.27.5) + decidim-surveys (= 0.27.5) + decidim-system (= 0.27.5) + decidim-templates (= 0.27.5) + decidim-verifications (= 0.27.5) + decidim-accountability (0.27.5) + decidim-comments (= 0.27.5) + decidim-core (= 0.27.5) + decidim-admin (0.27.5) + active_link_to (~> 1.0) + decidim-core (= 0.27.5) + devise (~> 4.7) + devise-i18n (~> 1.2) + devise_invitable (~> 2.0, >= 2.0.9) + decidim-api (0.27.5) + decidim-core (= 0.27.5) + graphql (~> 1.12, < 1.13) + graphql-docs (~> 2.1.0) + rack-cors (~> 1.0) + decidim-assemblies (0.27.5) + decidim-core (= 0.27.5) + decidim-blogs (0.27.5) + decidim-admin (= 0.27.5) + decidim-comments (= 0.27.5) + decidim-core (= 0.27.5) + decidim-budgets (0.27.5) + decidim-comments (= 0.27.5) + decidim-core (= 0.27.5) + decidim-comments (0.27.5) + decidim-core (= 0.27.5) + redcarpet (~> 3.5, >= 3.5.1) + decidim-conferences (0.27.5) + decidim-core (= 0.27.5) + decidim-meetings (= 0.27.5) + wicked_pdf (~> 2.1) + wkhtmltopdf-binary (~> 0.12) + decidim-core (0.27.5) + active_link_to (~> 1.0) + acts_as_list (~> 0.9) + batch-loader (~> 1.2) + browser (~> 2.7) + carrierwave (~> 2.2.5, >= 2.2.5) + cells-erb (~> 0.1.0) + cells-rails (~> 0.1.3) + charlock_holmes (~> 0.7) + date_validator (~> 0.12.0) + devise (~> 4.7) + devise-i18n (~> 1.2) + diffy (~> 3.3) + doorkeeper (~> 5.1) + doorkeeper-i18n (~> 4.0) + file_validators (~> 3.0) + fog-local (~> 0.6) + foundation_rails_helper (~> 4.0) + geocoder (~> 1.8) + hashdiff (>= 0.4.0, < 2.0.0) + invisible_captcha (~> 0.12) + kaminari (~> 1.2, >= 1.2.1) + loofah (~> 2.19.0) + mime-types (>= 1.16, < 4.0) + mini_magick (~> 4.9) + mustache (~> 1.1.0) + omniauth (~> 2.0) + omniauth-facebook (~> 5.0) + omniauth-google-oauth2 (~> 1.0) + omniauth-rails_csrf_protection (~> 1.0) + omniauth-twitter (~> 1.4) + paper_trail (~> 12.0) + pg (~> 1.1.4, < 2) + pg_search (~> 2.2) + premailer-rails (~> 1.10) + rack (~> 2.2, >= 2.2.3) + rack-attack (~> 6.0) + rails (~> 6.1.0) + rails-i18n (~> 6.0) + ransack (~> 2.4.1) + redis (~> 4.1) + request_store (~> 1.5.0) + rubyXL (~> 3.4) + rubyzip (~> 2.0) + seven_zip_ruby (~> 1.3) + social-share-button (~> 1.2, >= 1.2.1) + valid_email2 (~> 2.1) + webpacker (= 6.0.0.rc.5) + webpush (~> 1.1) + wisper (~> 2.0) + decidim-debates (0.27.5) + decidim-comments (= 0.27.5) + decidim-core (= 0.27.5) + decidim-dev (0.27.5) + axe-core-rspec (~> 4.1.0) + byebug (~> 11.0) + capybara (~> 3.24) + db-query-matchers (~> 0.10.0) + decidim (= 0.27.5) + erb_lint (~> 0.0.35) + factory_bot_rails (~> 4.8) + i18n-tasks (~> 0.9.18) + mdl (~> 0.5) + nokogiri (~> 1.13) + parallel_tests (~> 3.7) + puma (~> 5.0) + rails-controller-testing (~> 1.0) + rspec-cells (~> 0.3.7) + rspec-html-matchers (~> 0.9.1) + rspec-rails (~> 4.0) + rspec-retry (~> 0.6.2) + rspec_junit_formatter (~> 0.3.0) + rubocop (~> 1.28.0) + rubocop-rails (~> 2.14) + rubocop-rspec (~> 2.10) + selenium-webdriver (~> 4.1.0) + simplecov (~> 0.21.0) + simplecov-cobertura (~> 2.1.0) + w3c_rspec_validators (~> 0.3.0) + webmock (~> 3.6) + wisper-rspec (~> 1.0) + decidim-forms (0.27.5) + decidim-core (= 0.27.5) + wicked_pdf (~> 2.1) + wkhtmltopdf-binary (~> 0.12) + decidim-generators (0.27.5) + decidim-core (= 0.27.5) + decidim-meetings (0.27.5) + decidim-core (= 0.27.5) + decidim-forms (= 0.27.5) + icalendar (~> 2.5) + decidim-pages (0.27.5) + decidim-core (= 0.27.5) + decidim-participatory_processes (0.27.5) + decidim-core (= 0.27.5) + decidim-proposals (0.27.5) + decidim-comments (= 0.27.5) + decidim-core (= 0.27.5) + doc2text (~> 0.4.5) + redcarpet (~> 3.5, >= 3.5.1) + decidim-sortitions (0.27.5) + decidim-admin (= 0.27.5) + decidim-comments (= 0.27.5) + decidim-core (= 0.27.5) + decidim-proposals (= 0.27.5) + decidim-surveys (0.27.5) + decidim-core (= 0.27.5) + decidim-forms (= 0.27.5) + decidim-templates (= 0.27.5) + decidim-system (0.27.5) + active_link_to (~> 1.0) + decidim-core (= 0.27.5) + devise (~> 4.7) + devise-i18n (~> 1.2) + devise_invitable (~> 2.0, >= 2.0.9) + decidim-templates (0.27.5) + decidim-core (= 0.27.5) + decidim-forms (= 0.27.5) + decidim-verifications (0.27.5) + decidim-core (= 0.27.5) + +GEM + remote: https://rubygems.org/ + specs: + actioncable (6.1.7.7) + actionpack (= 6.1.7.7) + activesupport (= 6.1.7.7) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (6.1.7.7) + actionpack (= 6.1.7.7) + activejob (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) + mail (>= 2.7.1) + actionmailer (6.1.7.7) + actionpack (= 6.1.7.7) + actionview (= 6.1.7.7) + activejob (= 6.1.7.7) + activesupport (= 6.1.7.7) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (6.1.7.7) + actionview (= 6.1.7.7) + activesupport (= 6.1.7.7) + rack (~> 2.0, >= 2.0.9) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (6.1.7.7) + actionpack (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) + nokogiri (>= 1.8.5) + actionview (6.1.7.7) + activesupport (= 6.1.7.7) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + active_link_to (1.0.5) + actionpack + addressable + activejob (6.1.7.7) + activesupport (= 6.1.7.7) + globalid (>= 0.3.6) + activemodel (6.1.7.7) + activesupport (= 6.1.7.7) + activerecord (6.1.7.7) + activemodel (= 6.1.7.7) + activesupport (= 6.1.7.7) + activestorage (6.1.7.7) + actionpack (= 6.1.7.7) + activejob (= 6.1.7.7) + activerecord (= 6.1.7.7) + activesupport (= 6.1.7.7) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (6.1.7.7) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + acts_as_list (0.9.19) + activerecord (>= 3.0) + addressable (2.8.6) + public_suffix (>= 2.0.2, < 6.0) + ast (2.4.2) + aws-eventstream (1.3.0) + aws-partitions (1.894.0) + aws-sdk-core (3.191.3) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.8) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.77.0) + aws-sdk-core (~> 3, >= 3.191.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.143.0) + aws-sdk-core (~> 3, >= 3.191.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.8) + aws-sigv4 (1.8.0) + aws-eventstream (~> 1, >= 1.0.2) + axe-core-api (4.8.2) + dumb_delegator + virtus + axe-core-rspec (4.1.0) + axe-core-api + dumb_delegator + virtus + axiom-types (0.1.1) + descendants_tracker (~> 0.0.4) + ice_nine (~> 0.11.0) + thread_safe (~> 0.3, >= 0.3.1) + base64 (0.2.0) + batch-loader (1.5.0) + bcrypt (3.1.20) + better_html (1.0.16) + actionview (>= 4.0) + activesupport (>= 4.0) + ast (~> 2.0) + erubi (~> 1.4) + html_tokenizer (~> 0.0.6) + parser (>= 2.4) + smart_properties + bigdecimal (3.1.6) + bindex (0.8.1) + bootsnap (1.18.3) + msgpack (~> 1.2) + browser (2.7.1) + builder (3.2.4) + byebug (11.1.3) + capybara (3.40.0) + addressable + matrix + mini_mime (>= 0.1.3) + nokogiri (~> 1.11) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + regexp_parser (>= 1.5, < 3.0) + xpath (~> 3.2) + carrierwave (2.2.5) + activemodel (>= 5.0.0) + activesupport (>= 5.0.0) + addressable (~> 2.6) + image_processing (~> 1.1) + marcel (~> 1.0.0) + mini_mime (>= 0.1.3) + ssrf_filter (~> 1.0) + cells (4.1.7) + declarative-builder (< 0.2.0) + declarative-option (< 0.2.0) + tilt (>= 1.4, < 3) + uber (< 0.2.0) + cells-erb (0.1.0) + cells (~> 4.0) + erbse (>= 0.1.1) + cells-rails (0.1.5) + actionpack (>= 5.0) + cells (>= 4.1.6, < 5.0.0) + charlock_holmes (0.7.7) + chef-utils (18.4.2) + concurrent-ruby + childprocess (4.1.0) + coercible (1.0.0) + descendants_tracker (~> 0.0.1) + coffee-rails (5.0.0) + coffee-script (>= 2.2.0) + railties (>= 5.2.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.12.2) + commonmarker (0.23.10) + concurrent-ruby (1.2.3) + connection_pool (2.4.1) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + css_parser (1.16.0) + addressable + date (3.3.4) + date_validator (0.12.0) + activemodel (>= 3) + activesupport (>= 3) + db-query-matchers (0.10.0) + activesupport (>= 4.0, < 7) + rspec (~> 3.0) + declarative-builder (0.1.0) + declarative-option (< 0.2.0) + declarative-option (0.1.0) + deepl-rb (2.5.3) + deface (1.9.0) + actionview (>= 5.2) + nokogiri (>= 1.6) + polyglot + railties (>= 5.2) + rainbow (>= 2.1.0) + descendants_tracker (0.0.4) + thread_safe (~> 0.3, >= 0.3.1) + devise (4.9.3) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 4.1.0) + responders + warden (~> 1.2.3) + devise-i18n (1.12.0) + devise (>= 4.9.0) + devise_invitable (2.0.9) + actionmailer (>= 5.0) + devise (>= 4.6) + diff-lcs (1.5.1) + diffy (3.4.2) + doc2text (0.4.7) + nokogiri (>= 1.13.2, < 1.17.0) + rubyzip (~> 2.3.0) + docile (1.4.0) + doorkeeper (5.6.9) + railties (>= 5) + doorkeeper-i18n (4.0.1) + dumb_delegator (1.0.0) + erb_lint (0.0.37) + activesupport + better_html (~> 1.0.7) + html_tokenizer + parser (>= 2.7.1.4) + rainbow + rubocop + smart_properties + erbse (0.1.4) + temple + erubi (1.12.0) + escape_utils (1.3.0) + et-orbi (1.2.7) + tzinfo + excon (0.109.0) + execjs (2.9.1) + extended-markdown-filter (0.7.0) + html-pipeline (~> 2.9) + factory_bot (4.11.1) + activesupport (>= 3.0.0) + factory_bot_rails (4.11.1) + factory_bot (~> 4.11.1) + railties (>= 3.0.0) + faker (3.2.3) + i18n (>= 1.8.11, < 2) + faraday (2.9.0) + faraday-net_http (>= 2.0, < 3.2) + faraday-net_http (3.1.0) + net-http + ffi (1.16.3) + file_validators (3.0.0) + activemodel (>= 3.2) + mime-types (>= 1.0) + fog-core (2.4.0) + builder + excon (~> 0.71) + formatador (>= 0.2, < 2.0) + mime-types + fog-local (0.8.0) + fog-core (>= 1.27, < 3.0) + formatador (1.1.0) + foundation_rails_helper (4.0.1) + actionpack (>= 4.1, < 7.1) + activemodel (>= 4.1, < 7.1) + activesupport (>= 4.1, < 7.1) + railties (>= 4.1, < 7.1) + fugit (1.10.0) + et-orbi (~> 1, >= 1.2.7) + raabro (~> 1.4) + gemoji (3.0.1) + geocoder (1.8.2) + globalid (1.2.1) + activesupport (>= 6.1) + graphql (1.12.24) + graphql-docs (2.1.0) + commonmarker (~> 0.16) + escape_utils (~> 1.2) + extended-markdown-filter (~> 0.4) + gemoji (~> 3.0) + graphql (~> 1.12) + html-pipeline (~> 2.9) + sass (~> 3.4) + hashdiff (1.1.0) + hashie (5.0.0) + highline (3.0.1) + hkdf (0.3.0) + html-pipeline (2.14.3) + activesupport (>= 2) + nokogiri (>= 1.4) + html_tokenizer (0.0.7) + htmlentities (4.3.4) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + i18n-tasks (0.9.37) + activesupport (>= 4.0.2) + ast (>= 2.1.0) + erubi + highline (>= 2.0.0) + i18n + parser (>= 2.2.3.0) + rails-i18n + rainbow (>= 2.2.2, < 4.0) + terminal-table (>= 1.5.1) + icalendar (2.10.1) + ice_cube (~> 0.16) + ice_cube (0.16.4) + ice_nine (0.11.2) + image_processing (1.12.2) + mini_magick (>= 4.9.5, < 5) + ruby-vips (>= 2.0.17, < 3) + invisible_captcha (0.13.0) + rails (>= 3.2.0) + jmespath (1.6.2) + json (2.7.1) + jwt (2.8.0) + base64 + kaminari (1.2.2) + activesupport (>= 4.1.0) + kaminari-actionview (= 1.2.2) + kaminari-activerecord (= 1.2.2) + kaminari-core (= 1.2.2) + kaminari-actionview (1.2.2) + actionview + kaminari-core (= 1.2.2) + kaminari-activerecord (1.2.2) + activerecord + kaminari-core (= 1.2.2) + kaminari-core (1.2.2) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + launchy (2.5.2) + addressable (~> 2.8) + letter_opener (1.9.0) + launchy (>= 2.2, < 3) + letter_opener_web (2.0.0) + actionmailer (>= 5.2) + letter_opener (~> 1.7) + railties (>= 5.2) + rexml + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + loofah (2.19.1) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.2) + matrix (0.4.2) + mdl (0.13.0) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.1) + mixlib-cli (~> 2.1, >= 2.1.1) + mixlib-config (>= 2.2.1, < 4) + mixlib-shellout + method_source (1.0.0) + mime-types (3.5.2) + mime-types-data (~> 3.2015) + mime-types-data (3.2024.0206) + mini_magick (4.12.0) + mini_mime (1.1.5) + minitest (5.22.2) + mixlib-cli (2.1.8) + mixlib-config (3.0.27) + tomlrb + mixlib-shellout (3.2.7) + chef-utils + msgpack (1.7.2) + multi_xml (0.6.0) + mustache (1.1.1) + net-http (0.4.1) + uri + net-imap (0.4.10) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.4.0.1) + net-protocol + nio4r (2.7.0) + nokogiri (1.16.2-x86_64-linux) + racc (~> 1.4) + oauth (1.1.0) + oauth-tty (~> 1.0, >= 1.0.1) + snaky_hash (~> 2.0) + version_gem (~> 1.1) + oauth-tty (1.0.5) + version_gem (~> 1.1, >= 1.1.1) + oauth2 (2.0.9) + faraday (>= 0.17.3, < 3.0) + jwt (>= 1.0, < 3.0) + multi_xml (~> 0.5) + rack (>= 1.2, < 4) + snaky_hash (~> 2.0) + version_gem (~> 1.1) + omniauth (2.1.2) + hashie (>= 3.4.6) + rack (>= 2.2.3) + rack-protection + omniauth-facebook (5.0.0) + omniauth-oauth2 (~> 1.2) + omniauth-google-oauth2 (1.1.1) + jwt (>= 2.0) + oauth2 (~> 2.0.6) + omniauth (~> 2.0) + omniauth-oauth2 (~> 1.8.0) + omniauth-oauth (1.2.0) + oauth + omniauth (>= 1.0, < 3) + omniauth-oauth2 (1.8.0) + oauth2 (>= 1.4, < 3) + omniauth (~> 2.0) + omniauth-rails_csrf_protection (1.0.1) + actionpack (>= 4.2) + omniauth (~> 2.0) + omniauth-twitter (1.4.0) + omniauth-oauth (~> 1.1) + rack + orm_adapter (0.5.0) + paper_trail (12.3.0) + activerecord (>= 5.2) + request_store (~> 1.1) + parallel (1.24.0) + parallel_tests (3.13.0) + parallel + parser (3.3.0.5) + ast (~> 2.4.1) + racc + pg (1.1.4) + pg_search (2.3.6) + activerecord (>= 5.2) + activesupport (>= 5.2) + polyglot (0.3.5) + premailer (1.22.0) + addressable + css_parser (>= 1.12.0) + htmlentities (>= 4.0.0) + premailer-rails (1.12.0) + actionmailer (>= 3) + net-smtp + premailer (~> 1.7, >= 1.7.9) + public_suffix (5.0.4) + puma (5.6.8) + nio4r (~> 2.0) + raabro (1.4.0) + racc (1.7.3) + rack (2.2.8.1) + rack-attack (6.7.0) + rack (>= 1.0, < 4) + rack-cors (1.1.1) + rack (>= 2.0.0) + rack-protection (3.2.0) + base64 (>= 0.1.0) + rack (~> 2.2, >= 2.2.4) + rack-proxy (0.7.7) + rack + rack-test (2.1.0) + rack (>= 1.3) + rails (6.1.7.7) + actioncable (= 6.1.7.7) + actionmailbox (= 6.1.7.7) + actionmailer (= 6.1.7.7) + actionpack (= 6.1.7.7) + actiontext (= 6.1.7.7) + actionview (= 6.1.7.7) + activejob (= 6.1.7.7) + activemodel (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) + bundler (>= 1.15.0) + railties (= 6.1.7.7) + sprockets-rails (>= 2.0.0) + rails-controller-testing (1.0.5) + actionpack (>= 5.0.1.rc1) + actionview (>= 5.0.1.rc1) + activesupport (>= 5.0.1.rc1) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + rails-i18n (6.0.0) + i18n (>= 0.7, < 2) + railties (>= 6.0.0, < 7) + railties (6.1.7.7) + actionpack (= 6.1.7.7) + activesupport (= 6.1.7.7) + method_source + rake (>= 12.2) + thor (~> 1.0) + rainbow (3.1.1) + rake (13.1.0) + ransack (2.4.2) + activerecord (>= 5.2.4) + activesupport (>= 5.2.4) + i18n + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + redcarpet (3.6.0) + redis (4.8.1) + redis-client (0.20.0) + connection_pool + regexp_parser (2.9.0) + request_store (1.5.1) + rack (>= 1.4) + responders (3.1.1) + actionpack (>= 5.2) + railties (>= 5.2) + rexml (3.2.6) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-cells (0.3.9) + cells (>= 4.0.0, < 6.0.0) + rspec-rails (>= 3.0.0, < 6.2.0) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-html-matchers (0.9.4) + nokogiri (~> 1) + rspec (>= 3.0.0.a, < 4) + rspec-mocks (3.13.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-rails (4.1.2) + actionpack (>= 4.2) + activesupport (>= 4.2) + railties (>= 4.2) + rspec-core (~> 3.10) + rspec-expectations (~> 3.10) + rspec-mocks (~> 3.10) + rspec-support (~> 3.10) + rspec-retry (0.6.2) + rspec-core (> 3.3) + rspec-support (3.13.0) + rspec_junit_formatter (0.3.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.28.2) + parallel (~> 1.10) + parser (>= 3.1.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml + rubocop-ast (>= 1.17.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 1.4.0, < 3.0) + rubocop-ast (1.30.0) + parser (>= 3.2.1.0) + rubocop-faker (1.1.0) + faker (>= 2.12.0) + rubocop (>= 0.82.0) + rubocop-rails (2.15.2) + activesupport (>= 4.2.0) + rack (>= 1.1) + rubocop (>= 1.7.0, < 2.0) + rubocop-rspec (2.11.1) + rubocop (~> 1.19) + ruby-progressbar (1.13.0) + ruby-vips (2.2.1) + ffi (~> 1.12) + rubyXL (3.4.25) + nokogiri (>= 1.10.8) + rubyzip (>= 1.3.0) + rubyzip (2.3.2) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sassc (2.4.0) + ffi (~> 1.9) + selenium-webdriver (4.1.0) + childprocess (>= 0.5, < 5.0) + rexml (~> 3.2, >= 3.2.5) + rubyzip (>= 1.2.2) + semantic_range (3.0.0) + seven_zip_ruby (1.3.0) + sidekiq (7.2.2) + concurrent-ruby (< 2) + connection_pool (>= 2.3.0) + rack (>= 2.2.4) + redis-client (>= 0.19.0) + sidekiq-cron (1.12.0) + fugit (~> 1.8) + globalid (>= 1.0.1) + sidekiq (>= 6) + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + smart_properties (1.17.0) + snaky_hash (2.0.1) + hashie + version_gem (~> 1.1, >= 1.1.1) + social-share-button (1.2.4) + coffee-rails + spring (4.1.3) + spring-watcher-listen (2.1.0) + listen (>= 2.7, < 4.0) + spring (>= 4) + sprockets (4.2.1) + concurrent-ruby (~> 1.0) + rack (>= 2.2.4, < 4) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + ssrf_filter (1.1.2) + temple (0.10.3) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + thor (1.3.0) + thread_safe (0.3.6) + tilt (2.3.0) + timeout (0.4.1) + tomlrb (2.0.3) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + uber (0.1.0) + unicode-display_width (2.5.0) + uri (0.13.0) + valid_email2 (2.3.1) + activemodel (>= 3.2) + mail (~> 2.5) + version_gem (1.1.3) + virtus (2.0.0) + axiom-types (~> 0.1) + coercible (~> 1.0) + descendants_tracker (~> 0.0, >= 0.0.3) + w3c_rspec_validators (0.3.0) + rails + rspec + w3c_validators + w3c_validators (1.3.7) + json (>= 1.8) + nokogiri (~> 1.6) + rexml (~> 3.2) + warden (1.2.9) + rack (>= 2.0.9) + web-console (4.2.1) + actionview (>= 6.0.0) + activemodel (>= 6.0.0) + bindex (>= 0.4.0) + railties (>= 6.0.0) + webmock (3.22.0) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webpacker (6.0.0.rc.5) + activesupport (>= 5.2) + rack-proxy (>= 0.6.1) + railties (>= 5.2) + semantic_range (>= 2.3.0) + webpush (1.1.0) + hkdf (~> 0.2) + jwt (~> 2.0) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + wicked_pdf (2.7.0) + activesupport + wisper (2.0.1) + wisper-rspec (1.1.0) + wkhtmltopdf-binary (0.12.6.6) + xpath (3.2.0) + nokogiri (~> 1.8) + zeitwerk (2.6.13) + +PLATFORMS + x86_64-linux + +DEPENDENCIES + aws-sdk-s3 + bootsnap (~> 1.7) + byebug + decidim! + decidim-calendar! + decidim-civicrm! + decidim-conferences! + decidim-decidim_awesome! + decidim-dev! + decidim-direct_verifications! + decidim-templates! + decidim-term_customizer! + deepl-rb + deface + faker + letter_opener_web + listen + puma + rubocop-faker + sidekiq + sidekiq-cron + spring + spring-watcher-listen + web-console + wicked_pdf (~> 2.1) + +RUBY VERSION + ruby 3.0.6p216 + +BUNDLED WITH + 2.4.22 From c7ee15e73589b49f28ff1e0a8b66a8ccca74223b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Thu, 22 Feb 2024 18:25:01 +0100 Subject: [PATCH 44/46] fix test --- spec/system/limit_amendments_spec.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/system/limit_amendments_spec.rb b/spec/system/limit_amendments_spec.rb index a2506623..3c59a670 100644 --- a/spec/system/limit_amendments_spec.rb +++ b/spec/system/limit_amendments_spec.rb @@ -159,6 +159,8 @@ def amendment_path context "when proposal original locale is the organization locale" do let(:creator) { create(:user, :confirmed, organization: organization, locale: "fr") } let(:proposal) { create :proposal, users: [creator], component: component, title: { en: "Proposal in english language", machine_translations: { fr: "Proposition en langue anglaise" } } } + let(:amendment) { nil } + let(:emendation) { nil } before do within_language_menu do @@ -177,7 +179,7 @@ def amendment_path expect(page).not_to have_field(with: "Proposition en langue anglaise") fill_in "Title", with: "New Proposal in english language" click_button "Create" - expect(page).to have_content("Amendment draft has been created successfully.") + expect(page).to have_content("EDIT AMENDMENT DRAFT") end context "and is an official proposal" do From 554b76498a73d348f4b134b3610a11272ca1ab07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Fri, 23 Feb 2024 12:04:32 +0100 Subject: [PATCH 45/46] skip hidden emendations --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 43136f70..4837da29 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -47,7 +47,7 @@ GIT GIT remote: https://github.com/openpoke/decidim.git - revision: aee1e1488187f0af8713d6686fac819f9b9d2f33 + revision: b69120dcd096bb761aa5ca0ac8ad4798d8c16739 branch: 0.27-canada specs: decidim (0.27.5) From 3f6171d0a78d0bc623a047a7478b85b8b04b7e32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Fri, 23 Feb 2024 12:29:23 +0100 Subject: [PATCH 46/46] update awesome --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4837da29..82bb1344 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -17,7 +17,7 @@ GIT GIT remote: https://github.com/decidim-ice/decidim-module-decidim_awesome.git - revision: c182090ea9b09629b014b9e6625f62201651ffc8 + revision: 32164f7853713634b4172bf15389969591e90c18 branch: limit-amendments specs: decidim-decidim_awesome (0.10.2)