diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 884248e7d..264e79800 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -7,8 +7,8 @@ on: pull_request: env: - RUBY_VERSION: 3.0.6 - NODE_VERSION: 16.9.1 + RUBY_VERSION: 3.1.1 + NODE_VERSION: 18.17.1 jobs: lint-report: diff --git a/.github/workflows/precompile.yml b/.github/workflows/precompile.yml deleted file mode 100644 index edae4d578..000000000 --- a/.github/workflows/precompile.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: "[CI] Precompile" - -on: - push: - branches: - - main - pull_request: - -env: - RUBY_VERSION: 3.0.6 - NODE_VERSION: 16.9.1 - -jobs: - lint-report: - runs-on: ubuntu-latest - - services: - postgres: - image: postgres:11 - ports: ["5432:5432"] - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - env: - POSTGRES_PASSWORD: postgres - env: - DATABASE_USERNAME: postgres - DATABASE_PASSWORD: postgres - DATABASE_HOST: localhost - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ env.RUBY_VERSION }} - bundler-cache: true - - - uses: actions/setup-node@master - with: - node-version: ${{ env.NODE_VERSION }} - - - name: Setup Test App - run: bundle exec rake test_app - - - name: Precompile - run: | - cd spec/decidim_dummy_app - bundle exec rails assets:precompile - env: - RAILS_ENV: production - SECRET_KEY_BASE: just-testing \ No newline at end of file diff --git a/.github/workflows/tests-legacy.yml b/.github/workflows/tests-legacy.yml deleted file mode 100644 index 3ce5c2d89..000000000 --- a/.github/workflows/tests-legacy.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: "[CI] Tests 0.26" - -on: - push: - branches: - - main - pull_request: - -env: - CI: 1 - SIMPLECOV: 1 - NODE_VERSION: 16.9.1 - RUBY_VERSION: 2.7.7 - BUNDLE_GEMFILE: Gemfile.legacy - -jobs: - tests-legacy: - runs-on: ubuntu-latest - strategy: - matrix: - include: - - rspec: awesome_summary_spec.rb - features: disabled - - rspec: " --exclude-pattern 'spec/system/**/*_spec.rb'" - features: enabled - - rspec: system/admin - features: enabled - - rspec: system/*_spec.rb - features: enabled - - rspec: system/awesome_map - features: enabled - fail-fast: false - - services: - postgres: - image: postgres:11 - ports: ["5432:5432"] - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - env: - POSTGRES_PASSWORD: postgres - env: - DATABASE_USERNAME: postgres - DATABASE_PASSWORD: postgres - DATABASE_HOST: localhost - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ env.RUBY_VERSION }} - bundler-cache: true - - - uses: actions/setup-node@master - with: - node-version: ${{ env.NODE_VERSION }} - - - name: Setup Test App - run: bundle exec rake test_app - - - name: General RSpec with config vars ${{ matrix.features }} - run: bundle exec rspec spec/${{ matrix.rspec }} - env: - FEATURES: ${{ matrix.features }} - - - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3 - - - uses: actions/upload-artifact@v2-preview - if: always() - with: - name: screenshots - path: ./spec/decidim_dummy_app/tmp/screenshots diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1f72f5e93..84495b812 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,4 +1,4 @@ -name: "[CI] Tests 0.27" +name: "[CI] Tests 0.28" on: push: @@ -9,27 +9,24 @@ on: env: CI: 1 SIMPLECOV: 1 - NODE_VERSION: 16.9.1 - RUBY_VERSION: 3.0.6 + NODE_VERSION: 18.17.1 + RUBY_VERSION: 3.1.1 BUNDLE_GEMFILE: Gemfile + DISPLAY: ":99" + PARALLEL_TEST_PROCESSORS: 2 + SHAKAPACKER_RUNTIME_COMPILE: "false" + NODE_ENV: "test" + RAILS_ENV: "test" + RUBYOPT: '-W:no-deprecated' + DATABASE_USERNAME: postgres + DATABASE_PASSWORD: postgres + DATABASE_HOST: localhost + POSTGRES_PASSWORD: postgres jobs: - tests-latest: + build: + name: Build & Precompile runs-on: ubuntu-latest - strategy: - matrix: - include: - - rspec: awesome_summary_spec.rb - features: disabled - - rspec: " --exclude-pattern 'spec/system/**/*_spec.rb'" - features: enabled - - rspec: system/admin - features: enabled - - rspec: system/*_spec.rb - features: enabled - - rspec: system/awesome_map - features: enabled - fail-fast: false services: postgres: @@ -42,10 +39,6 @@ jobs: --health-retries 5 env: POSTGRES_PASSWORD: postgres - env: - DATABASE_USERNAME: postgres - DATABASE_PASSWORD: postgres - DATABASE_HOST: localhost steps: - uses: actions/checkout@v4 @@ -75,18 +68,104 @@ jobs: with: node-version: ${{ env.NODE_VERSION }} - - name: Setup Test App - run: bundle exec rake test_app + - uses: actions/cache@v3 + id: app-cache + with: + path: ./spec/decidim_dummy_app/ + key: app-${{ github.sha }} + restore-keys: app-${{ github.sha }} + + - run: bundle exec rake test_app + name: Create test app + shell: "bash" + + - run: mkdir -p ./spec/decidim_dummy_app/tmp/screenshots + name: Create the screenshots folder + shell: "bash" + + - run: bundle exec rails assets:precompile + name: Precompile assets + working-directory: ./spec/decidim_dummy_app/ + shell: "bash" + env: + BUNDLE_GEMFILE: ../../Gemfile + + - run: tar -zcf /tmp/testapp-env.tar.gz ./spec/decidim_dummy_app + + - uses: actions/upload-artifact@v3 + with: + name: workspace + path: /tmp/testapp-env.tar.gz + + tests-latest: + name: Tests latest + runs-on: ubuntu-latest + needs: build + + strategy: + matrix: + include: + - rspec: spec/awesome_summary_spec.rb + features: disabled + - rspec: spec\/(?!system) + features: enabled + - rspec: spec/system/admin + features: enabled + - rspec: spec/system/public + features: enabled + - rspec: spec/system/awesome_map + features: enabled + fail-fast: false + + services: + postgres: + image: postgres:11 + ports: ["5432:5432"] + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + env: + POSTGRES_PASSWORD: postgres + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ env.RUBY_VERSION }} + bundler-cache: true + + - uses: actions/download-artifact@v3 + with: + name: workspace + path: /tmp + + - run: tar -zxf /tmp/testapp-env.tar.gz + name: Restore application + + - run: bundle exec rake parallel:create parallel:load_schema + name: Parallel tests + shell: "bash" + working-directory: ./spec/decidim_dummy_app/ + env: + BUNDLE_GEMFILE: ../../Gemfile - name: General RSpec with config vars ${{ matrix.features }} - run: bundle exec rspec spec/${{ matrix.rspec }} + run: | + sudo Xvfb -ac $DISPLAY -screen 0 1920x1084x24 > /dev/null 2>&1 & # optional + ln -s spec/decidim_dummy_app spec/decidim_dummy_app_last + bundle exec rake parallel:spec['${{ matrix.rspec }}'] env: FEATURES: ${{ matrix.features }} - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v3 - - uses: actions/upload-artifact@v2-preview + - uses: actions/upload-artifact@v3 if: always() with: name: screenshots diff --git a/.gitignore b/.gitignore index f651acad8..bf8715337 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ node_modules/ npm_debug.log .ruby-version +.rubocop-http* \ No newline at end of file diff --git a/.gitpod.dockerfile b/.gitpod.dockerfile index 59df600d9..e5b1c718f 100644 --- a/.gitpod.dockerfile +++ b/.gitpod.dockerfile @@ -5,4 +5,4 @@ RUN sudo apt-get update && sudo apt-get install -y redis-server apt-transport-h USER gitpod SHELL ["/bin/bash", "-c"] -RUN cd && /home/gitpod/.rvm/bin/rvm install "ruby-3.0.5" +RUN cd && /home/gitpod/.rvm/bin/rvm install "ruby-3.1.1" diff --git a/.gitpod.yml b/.gitpod.yml index 7dc46bcda..a48d71e73 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -8,7 +8,7 @@ tasks: command: bundle exec rspec #- name: webpacker # before: rvm --default use "ruby-3.0.4" - # command: bin/webpack-dev-server + # command: bin/shakapacker-dev-server vscode: extensions: - dbaeumer.vscode-eslint diff --git a/.rubocop-https---raw-githubusercontent-com-decidim-decidim-release-0-28-stable--rubocop-yml b/.rubocop-https---raw-githubusercontent-com-decidim-decidim-release-0-28-stable--rubocop-yml deleted file mode 100644 index 13bc55c4a..000000000 --- a/.rubocop-https---raw-githubusercontent-com-decidim-decidim-release-0-28-stable--rubocop-yml +++ /dev/null @@ -1,94 +0,0 @@ -inherit_gem: - decidim-dev: rubocop-decidim.yml - -inherit_mode: - merge: - - Exclude - -AllCops: - Exclude: - - "decidim-initiatives/lib/gem_overrides/origami/date.rb" - -Naming/FileName: - Exclude: - - "decidim-dev/lib/decidim-dev.rb" - -Metrics/CyclomaticComplexity: - Exclude: - - "decidim-admin/app/queries/decidim/admin/newsletter_recipients.rb" - -Metrics/ParameterLists: - Exclude: - - "decidim-core/lib/decidim/filter_form_builder.rb" - -Metrics/PerceivedComplexity: - Exclude: - - "decidim-admin/app/queries/decidim/admin/newsletter_recipients.rb" - -RSpec/DescribeClass: - Exclude: - - decidim-core/spec/lib/global_engines_spec.rb - -RSpec/EmptyExampleGroup: - Exclude: - - decidim-core/spec/lib/participatory_space_manifest_spec.rb - -RSpec/MultipleMemoizedHelpers: - Exclude: - - decidim-assemblies/spec/forms/assembly_form_spec.rb - -Rails/Output: - Exclude: - - lib/decidim/git_backport_manager.rb - - lib/decidim/github_manager/poster.rb - - decidim-core/lib/decidim/core.rb - - decidim-core/lib/decidim/component_manifest.rb - - decidim-core/lib/decidim/participatory_space_manifest.rb - -Rails/Exit: - Exclude: - - lib/decidim/git_backport_manager.rb - -RSpec/NoExpectationExample: - Exclude: - - decidim-admin/spec/system/participatory_space_private_user_spec.rb - - decidim-comments/spec/services/decidim/comments/comment_creation_spec.rb - - decidim-conferences/spec/cells/decidim/conferences/conference_speaker_cell_spec.rb - - decidim-core/spec/cells/decidim/date_range_cell_spec.rb - - decidim-core/spec/commands/decidim/unsubscribe_settings_spec.rb - - decidim-core/spec/controllers/registrations_controller_spec.rb - - decidim-core/spec/lib/importers/import_manifest_spec.rb - - decidim-core/spec/lib/map/geocoding_spec.rb - - decidim-core/spec/lib/participatory_space_manifest_spec.rb - - decidim-core/spec/services/decidim/events_manager_spec.rb - - decidim-core/spec/services/decidim/settings_change_spec.rb - - decidim-core/spec/services/decidim/zip_stream/zip_stream_writer_spec.rb - - decidim-core/spec/tasks/decidim_tasks_right_to_be_forgotten_spec.rb - - decidim-elections/spec/lib/tasks/decidim_election_generate_identification_keys_spec.rb - - decidim-elections/spec/lib/tasks/decidim_election_scheduled_tasks_spec.rb - - decidim-elections/spec/shared/vote_examples.rb - - decidim-elections/spec/system/key_ceremony_spec.rb - - decidim-elections/spec/system/vote_online_inside_a_voting_spec.rb - - decidim-initiatives/spec/system/admin/update_initiative_spec.rb - - decidim-initiatives/spec/system/initiative_signing_spec.rb - - decidim-meetings/spec/commands/admin/export_meeting_registrations_spec.rb - - decidim-meetings/spec/system/explore_meeting_directory_spec.rb - - decidim-meetings/spec/system/explore_meetings_spec.rb - - decidim-proposals/spec/lib/decidim/proposals/markdown_to_proposals_spec.rb - - decidim-proposals/spec/shared/import_proposals_examples.rb - - decidim-proposals/spec/shared/proposals_wizards_examples.rb - - decidim-proposals/spec/system/admin/admin_manages_participatory_texts_spec.rb - - decidim-proposals/spec/system/participatory_texts_spec.rb - - decidim-participatory_processes/spec/system/participatory_processes_spec.rb - -# fix these rules later -Capybara/SpecificFinders: - Enabled: false - -RSpec/IndexedLet: - Enabled: false - -Rails/HelperInstanceVariable: - Enabled: false - -# EOF fix these rules later diff --git a/.rubocop.yml b/.rubocop.yml index 870c0b9ff..7f5e26818 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,3 +1,6 @@ inherit_from: - - .rubocop_ruby.yml - - .rubocop_rails.yml + - https://raw.githubusercontent.com/decidim/decidim/release/0.28-stable/.rubocop.yml + +AllCops: + Exclude: + - "spec/decidim_dummy_app*/**/*" diff --git a/.simplecov b/.simplecov index 23809933a..1aa1259d4 100644 --- a/.simplecov +++ b/.simplecov @@ -6,6 +6,7 @@ if ENV["SIMPLECOV"] add_filter "/config/" add_filter "/db/" add_filter "lib/decidim/decidim_awesome/version.rb" + add_filter "lib/decidim/decidim_awesome/test" add_filter "/spec" end diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e5c29977..eea1b9597 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,30 @@ CHANGELOG ========= +v0.11.1 +------ + +Compatibility: + - Decidim v0.28.x + +Features: + - Added Private Custom Fields feature + - Added GraphQL types for weighted voting in the API + - Added GraphQL types for custom fields in the API + - Adds parsed information about custom fields in the Proposals export + - Adds parsed information bout private custom fields when admins exports private data + - Adds a maintenance menu with tools to remove old private data + +v0.11 +------ + +Compatibility: + - Decidim v0.28.x + +Features: + - Redesign to version 0.28 + - Removed markdown editor + v0.10.2 ------ diff --git a/Gemfile b/Gemfile index d2b2f13ab..eed36eb35 100644 --- a/Gemfile +++ b/Gemfile @@ -4,32 +4,33 @@ source "https://rubygems.org" ruby RUBY_VERSION -DECIDIM_VERSION = "0.27.6" +DECIDIM_VERSION = "0.28.2" gem "decidim", DECIDIM_VERSION +# this causes failures if not enabled (check if still necessary in the future) gem "decidim-decidim_awesome", path: "." +gem "decidim-templates", DECIDIM_VERSION gem "bootsnap", "~> 1.4" -gem "puma", ">= 5.5.1" - -gem "faker", "~> 2.14" +gem "puma", ">= 6.3.1" group :development, :test do gem "byebug", "~> 11.0", platform: :mri gem "decidim-dev", DECIDIM_VERSION + + gem "brakeman", "~> 5.4" + gem "net-imap", "~> 0.2.3" + gem "net-pop", "~> 0.1.1" + gem "net-smtp", "~> 0.3.1" + gem "parallel_tests", "~> 4.2" end group :development do - gem "letter_opener_web", "~> 1.3" + gem "letter_opener_web", "~> 2.0" gem "listen", "~> 3.1" - gem "rubocop-faker" gem "spring", "~> 2.0" - gem "spring-watcher-listen", "~> 2.0.0" - gem "web-console" -end - -group :test do - gem "codecov", require: false + gem "spring-watcher-listen", "~> 2.0" + gem "web-console", "~> 4.2" end diff --git a/Gemfile.legacy b/Gemfile.legacy deleted file mode 100644 index c276279d9..000000000 --- a/Gemfile.legacy +++ /dev/null @@ -1,35 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -ruby RUBY_VERSION -DECIDIM_VERSION = "0.26.8" - -gem "decidim", DECIDIM_VERSION -gem "decidim-decidim_awesome", path: "." - -gem "bootsnap", "~> 1.4" - -gem "puma", ">= 5.5.1" -gem "uglifier", "~> 4.1" - -gem "faker", "~> 2.14" - -group :development, :test do - gem "byebug", "~> 11.0", platform: :mri - - gem "decidim-dev", DECIDIM_VERSION -end - -group :development do - gem "letter_opener_web", "~> 1.3" - gem "listen", "~> 3.1" - gem "rubocop-faker" - gem "spring", "~> 2.0" - gem "spring-watcher-listen", "~> 2.0.0" - gem "web-console", "~> 3.5" -end - -group :test do - gem "codecov", require: false -end diff --git a/Gemfile.legacy.lock b/Gemfile.legacy.lock deleted file mode 100644 index b0620d4c4..000000000 --- a/Gemfile.legacy.lock +++ /dev/null @@ -1,811 +0,0 @@ -PATH - remote: . - 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) - -GEM - remote: https://rubygems.org/ - specs: - actioncable (6.0.6.1) - actionpack (= 6.0.6.1) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (6.0.6.1) - actionpack (= 6.0.6.1) - activejob (= 6.0.6.1) - activerecord (= 6.0.6.1) - activestorage (= 6.0.6.1) - activesupport (= 6.0.6.1) - mail (>= 2.7.1) - actionmailer (6.0.6.1) - actionpack (= 6.0.6.1) - actionview (= 6.0.6.1) - activejob (= 6.0.6.1) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (6.0.6.1) - actionview (= 6.0.6.1) - activesupport (= 6.0.6.1) - rack (~> 2.0, >= 2.0.8) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.6.1) - actionpack (= 6.0.6.1) - activerecord (= 6.0.6.1) - activestorage (= 6.0.6.1) - activesupport (= 6.0.6.1) - nokogiri (>= 1.8.5) - actionview (6.0.6.1) - activesupport (= 6.0.6.1) - 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.0.6.1) - activesupport (= 6.0.6.1) - globalid (>= 0.3.6) - activemodel (6.0.6.1) - activesupport (= 6.0.6.1) - activerecord (6.0.6.1) - activemodel (= 6.0.6.1) - activesupport (= 6.0.6.1) - activestorage (6.0.6.1) - actionpack (= 6.0.6.1) - activejob (= 6.0.6.1) - activerecord (= 6.0.6.1) - marcel (~> 1.0) - activesupport (6.0.6.1) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - zeitwerk (~> 2.2, >= 2.2.2) - acts_as_list (0.9.19) - activerecord (>= 3.0) - addressable (2.8.5) - public_suffix (>= 2.0.2, < 6.0) - ast (2.4.2) - axe-core-api (4.8.0) - 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.19) - 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 - bindex (0.8.1) - bootsnap (1.17.0) - msgpack (~> 1.2) - browser (2.7.1) - builder (3.2.4) - byebug (11.1.3) - capybara (3.39.2) - addressable - matrix - mini_mime (>= 0.1.3) - nokogiri (~> 1.8) - rack (>= 1.6.0) - rack-test (>= 0.6.3) - regexp_parser (>= 1.5, < 3.0) - xpath (~> 3.2) - carrierwave (2.2.4) - 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.3.0) - concurrent-ruby - childprocess (3.0.0) - codecov (0.6.0) - simplecov (>= 0.15, < 0.22) - 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) - concurrent-ruby (1.2.2) - crack (0.4.5) - rexml - crass (1.0.6) - css_parser (1.16.0) - addressable - date (3.3.4) - date_validator (0.9.0) - activemodel - activesupport - db-query-matchers (0.10.0) - activesupport (>= 4.0, < 7) - rspec (~> 3.0) - decidim (0.26.8) - decidim-accountability (= 0.26.8) - decidim-admin (= 0.26.8) - decidim-api (= 0.26.8) - decidim-assemblies (= 0.26.8) - decidim-blogs (= 0.26.8) - decidim-budgets (= 0.26.8) - decidim-comments (= 0.26.8) - decidim-core (= 0.26.8) - decidim-debates (= 0.26.8) - decidim-forms (= 0.26.8) - decidim-generators (= 0.26.8) - decidim-meetings (= 0.26.8) - decidim-pages (= 0.26.8) - decidim-participatory_processes (= 0.26.8) - decidim-proposals (= 0.26.8) - decidim-sortitions (= 0.26.8) - decidim-surveys (= 0.26.8) - decidim-system (= 0.26.8) - decidim-templates (= 0.26.8) - decidim-verifications (= 0.26.8) - decidim-accountability (0.26.8) - decidim-comments (= 0.26.8) - decidim-core (= 0.26.8) - decidim-admin (0.26.8) - active_link_to (~> 1.0) - decidim-core (= 0.26.8) - devise (~> 4.7) - devise-i18n (~> 1.2) - devise_invitable (~> 2.0) - decidim-api (0.26.8) - graphql (~> 1.12, < 1.13) - rack-cors (~> 1.0) - redcarpet (~> 3.5, >= 3.5.1) - decidim-assemblies (0.26.8) - decidim-core (= 0.26.8) - decidim-blogs (0.26.8) - decidim-admin (= 0.26.8) - decidim-comments (= 0.26.8) - decidim-core (= 0.26.8) - decidim-budgets (0.26.8) - decidim-comments (= 0.26.8) - decidim-core (= 0.26.8) - decidim-comments (0.26.8) - decidim-core (= 0.26.8) - redcarpet (~> 3.5, >= 3.5.1) - decidim-core (0.26.8) - active_link_to (~> 1.0) - acts_as_list (~> 0.9) - batch-loader (~> 1.2) - browser (~> 2.7) - carrierwave (~> 2.2.1) - cells-erb (~> 0.1.0) - cells-rails (~> 0.1.3) - charlock_holmes (~> 0.7) - date_validator (~> 0.9.0) - decidim-api (= 0.26.8) - devise (~> 4.7) - devise-i18n (~> 1.2) - diffy (~> 3.3) - doorkeeper (~> 5.1) - doorkeeper-i18n (~> 4.0) - file_validators (~> 2.1) - fog-local (~> 0.6) - foundation_rails_helper - geocoder (~> 1.7.5) - hashdiff (>= 0.4.0, < 2.0.0) - invisible_captcha (~> 0.12) - kaminari (~> 1.2, >= 1.2.1) - loofah (~> 2.3.1) - 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.0.4) - rails-i18n (~> 6.0) - ransack (~> 2.4.1) - rectify (~> 0.13.0) - redis (~> 4.1) - request_store (~> 1.5.0) - rubyXL (~> 3.4) - rubyzip (~> 2.0) - searchlight (~> 4.1) - seven_zip_ruby (~> 1.3) - social-share-button (~> 1.2, >= 1.2.1) - valid_email2 (~> 2.1) - webpacker (= 6.0.0.rc.5) - wisper (~> 2.0) - decidim-debates (0.26.8) - decidim-comments (= 0.26.8) - decidim-core (= 0.26.8) - decidim-dev (0.26.8) - axe-core-rspec (~> 4.1.0) - byebug (~> 11.0) - capybara (~> 3.24) - db-query-matchers (~> 0.10.0) - decidim (= 0.26.8) - erb_lint (~> 0.0.35) - factory_bot_rails (~> 4.8) - i18n-tasks (~> 0.9.18) - mdl (~> 0.5) - nokogiri (~> 1.12) - puma (~> 5.0) - rails-controller-testing (~> 1.0) - rspec-cells (~> 0.3.4) - rspec-html-matchers (~> 0.9.1) - rspec-rails (~> 4.0) - rspec-retry (~> 0.6.2) - rspec_junit_formatter (~> 0.3.0) - rubocop (~> 0.92.0) - rubocop-rails (~> 2.8) - rubocop-rspec (= 1.43.2) - selenium-webdriver (~> 3.142) - simplecov (~> 0.19.0) - simplecov-cobertura (~> 1.3.1) - system_test_html_screenshots (~> 0.2) - w3c_rspec_validators (~> 0.3.0) - webmock (~> 3.6) - wisper-rspec (~> 1.0) - decidim-forms (0.26.8) - decidim-core (= 0.26.8) - wicked_pdf (~> 2.1) - wkhtmltopdf-binary (~> 0.12) - decidim-generators (0.26.8) - decidim-core (= 0.26.8) - decidim-meetings (0.26.8) - decidim-core (= 0.26.8) - decidim-forms (= 0.26.8) - icalendar (~> 2.5) - decidim-pages (0.26.8) - decidim-core (= 0.26.8) - decidim-participatory_processes (0.26.8) - decidim-core (= 0.26.8) - decidim-proposals (0.26.8) - decidim-comments (= 0.26.8) - decidim-core (= 0.26.8) - doc2text (~> 0.4.4) - redcarpet (~> 3.5, >= 3.5.1) - decidim-sortitions (0.26.8) - decidim-admin (= 0.26.8) - decidim-comments (= 0.26.8) - decidim-core (= 0.26.8) - decidim-proposals (= 0.26.8) - decidim-surveys (0.26.8) - decidim-core (= 0.26.8) - decidim-forms (= 0.26.8) - decidim-templates (= 0.26.8) - decidim-system (0.26.8) - active_link_to (~> 1.0) - decidim-core (= 0.26.8) - devise (~> 4.7) - devise-i18n (~> 1.2) - devise_invitable (~> 2.0) - decidim-templates (0.26.8) - decidim-core (= 0.26.8) - decidim-forms (= 0.26.8) - decidim-verifications (0.26.8) - decidim-core (= 0.26.8) - declarative-builder (0.1.0) - declarative-option (< 0.2.0) - declarative-option (0.1.0) - 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.0) - diffy (3.4.2) - doc2text (0.4.6) - nokogiri (>= 1.13.2, < 1.15.0) - rubyzip (~> 2.3.0) - docile (1.4.0) - doorkeeper (5.6.6) - railties (>= 5) - doorkeeper-i18n (4.0.1) - dumb_delegator (1.0.0) - equalizer (0.0.11) - 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) - excon (0.104.0) - execjs (2.9.1) - 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 (2.23.0) - i18n (>= 1.8.11, < 2) - faraday (2.7.11) - base64 - faraday-net_http (>= 2.0, < 3.1) - ruby2_keywords (>= 0.0.4) - faraday-net_http (3.0.2) - ffi (1.16.3) - file_validators (2.3.0) - activemodel (>= 3.2) - mime-types (>= 1.0) - fog-core (2.3.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) - geocoder (1.7.5) - globalid (1.1.0) - activesupport (>= 5.0) - graphql (1.12.24) - hashdiff (1.0.1) - hashie (5.0.0) - highline (2.1.0) - 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.0) - 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) - json (2.6.3) - jwt (2.7.1) - 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.8.1) - launchy (>= 2.2, < 3) - letter_opener_web (1.4.1) - actionmailer (>= 3.2) - letter_opener (~> 1.0) - railties (>= 3.2) - listen (3.8.0) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.3.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.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2023.1003) - mini_magick (4.12.0) - mini_mime (1.1.5) - minitest (5.20.0) - 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-imap (0.4.5) - date - net-protocol - net-pop (0.1.2) - net-protocol - net-protocol (0.2.2) - timeout - net-smtp (0.4.0) - net-protocol - nio4r (2.5.9) - nokogiri (1.14.5-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.1) - 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.23.0) - parser (3.2.2.4) - 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.21.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.3) - puma (5.6.7) - nio4r (~> 2.0) - racc (1.7.3) - rack (2.2.8) - rack-attack (6.7.0) - rack (>= 1.0, < 4) - rack-cors (1.1.1) - rack (>= 2.0.0) - rack-protection (3.1.0) - rack (~> 2.2, >= 2.2.4) - rack-proxy (0.7.7) - rack - rack-test (2.1.0) - rack (>= 1.3) - rails (6.0.6.1) - actioncable (= 6.0.6.1) - actionmailbox (= 6.0.6.1) - actionmailer (= 6.0.6.1) - actionpack (= 6.0.6.1) - actiontext (= 6.0.6.1) - actionview (= 6.0.6.1) - activejob (= 6.0.6.1) - activemodel (= 6.0.6.1) - activerecord (= 6.0.6.1) - activestorage (= 6.0.6.1) - activesupport (= 6.0.6.1) - bundler (>= 1.3.0) - railties (= 6.0.6.1) - 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.4.3) - loofah (~> 2.3) - rails-i18n (6.0.0) - i18n (>= 0.7, < 2) - railties (>= 6.0.0, < 7) - railties (6.0.6.1) - actionpack (= 6.0.6.1) - activesupport (= 6.0.6.1) - method_source - rake (>= 0.8.7) - thor (>= 0.20.3, < 2.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) - rectify (0.13.0) - activemodel (>= 4.1.0) - activerecord (>= 4.1.0) - activesupport (>= 4.1.0) - virtus (~> 1.0.5) - wisper (>= 1.6.1) - redcarpet (3.6.0) - redis (4.8.1) - regexp_parser (2.8.2) - request_store (1.5.1) - rack (>= 1.4) - responders (3.1.1) - actionpack (>= 5.2) - railties (>= 5.2) - rexml (3.2.6) - rspec (3.12.0) - rspec-core (~> 3.12.0) - rspec-expectations (~> 3.12.0) - rspec-mocks (~> 3.12.0) - rspec-cells (0.3.8) - cells (>= 4.0.0, < 6.0.0) - rspec-rails (>= 3.0.0, < 6.1.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-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.12.1) - rspec_junit_formatter (0.3.0) - rspec-core (>= 2, < 4, != 2.12.0) - rubocop (0.92.0) - parallel (~> 1.10) - parser (>= 2.7.1.5) - rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.7) - rexml - rubocop-ast (>= 0.5.0) - ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 2.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.9.1) - activesupport (>= 4.2.0) - rack (>= 1.1) - rubocop (>= 0.90.0, < 2.0) - rubocop-rspec (1.43.2) - rubocop (~> 0.87) - ruby-progressbar (1.13.0) - ruby-vips (2.2.0) - ffi (~> 1.12) - ruby2_keywords (0.0.5) - rubyXL (3.4.25) - nokogiri (>= 1.10.8) - rubyzip (>= 1.3.0) - rubyzip (2.3.2) - sassc (2.4.0) - ffi (~> 1.9) - searchlight (4.1.0) - selenium-webdriver (3.142.7) - childprocess (>= 0.5, < 4.0) - rubyzip (>= 1.2.2) - semantic_range (3.0.0) - seven_zip_ruby (1.3.0) - simplecov (0.19.1) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov-cobertura (1.3.1) - simplecov (~> 0.8) - simplecov-html (0.12.3) - 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 (2.1.1) - spring-watcher-listen (2.0.1) - listen (>= 2.7, < 4.0) - spring (>= 1.2, < 3.0) - 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) - system_test_html_screenshots (0.2.0) - actionpack (>= 5.2, < 6.1.a) - 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 (1.2.11) - thread_safe (~> 0.1) - uber (0.1.0) - uglifier (4.2.0) - execjs (>= 0.3.0, < 3) - unicode-display_width (1.8.0) - valid_email2 (2.3.1) - activemodel (>= 3.2) - mail (~> 2.5) - version_gem (1.1.3) - virtus (1.0.5) - axiom-types (~> 0.1) - coercible (~> 1.0) - descendants_tracker (~> 0.0, >= 0.0.3) - equalizer (~> 0.0, >= 0.0.9) - 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 (3.7.0) - actionview (>= 5.0) - activemodel (>= 5.0) - bindex (>= 0.4.0) - railties (>= 5.0) - webmock (3.19.1) - 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) - 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.12) - -PLATFORMS - x86_64-linux - -DEPENDENCIES - bootsnap (~> 1.4) - byebug (~> 11.0) - codecov - decidim (= 0.26.8) - decidim-decidim_awesome! - decidim-dev (= 0.26.8) - faker (~> 2.14) - letter_opener_web (~> 1.3) - listen (~> 3.1) - puma (>= 5.5.1) - rubocop-faker - spring (~> 2.0) - spring-watcher-listen (~> 2.0.0) - uglifier (~> 4.1) - web-console (~> 3.5) - -RUBY VERSION - ruby 2.7.7p221 - -BUNDLED WITH - 2.3.20 diff --git a/Gemfile.lock b/Gemfile.lock index 84a507f9c..8e942e19c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,49 +1,49 @@ PATH remote: . specs: - decidim-decidim_awesome (0.10.2) - decidim-admin (>= 0.26.0, < 0.28) - decidim-core (>= 0.26.0, < 0.28) + decidim-decidim_awesome (0.11.1) + decidim-admin (>= 0.28.0, < 0.29) + decidim-core (>= 0.28.0, < 0.29) deface (>= 1.5) sassc (~> 2.3) 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.8) + actionpack (= 6.1.7.8) + activesupport (= 6.1.7.8) 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.8) + actionpack (= 6.1.7.8) + activejob (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) 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.8) + actionpack (= 6.1.7.8) + actionview (= 6.1.7.8) + activejob (= 6.1.7.8) + activesupport (= 6.1.7.8) 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.8) + actionview (= 6.1.7.8) + activesupport (= 6.1.7.8) 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.8) + actionpack (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) nokogiri (>= 1.8.5) - actionview (6.1.7.6) - activesupport (= 6.1.7.6) + actionview (6.1.7.8) + activesupport (= 6.1.7.8) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -51,60 +51,53 @@ GEM active_link_to (1.0.5) actionpack addressable - activejob (6.1.7.6) - activesupport (= 6.1.7.6) + activejob (6.1.7.8) + activesupport (= 6.1.7.8) 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.8) + activesupport (= 6.1.7.8) + activerecord (6.1.7.8) + activemodel (= 6.1.7.8) + activesupport (= 6.1.7.8) + activestorage (6.1.7.8) + actionpack (= 6.1.7.8) + activejob (= 6.1.7.8) + activerecord (= 6.1.7.8) + activesupport (= 6.1.7.8) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.7.6) + activesupport (6.1.7.8) 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.5) - public_suffix (>= 2.0.2, < 6.0) + acts_as_list (1.2.1) + activerecord (>= 6.1) + activesupport (>= 6.1) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) ast (2.4.2) - axe-core-api (4.9.0) - 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.1.1) + base64 (0.2.0) batch-loader (1.5.0) - bcrypt (3.1.19) - better_html (1.0.16) - actionview (>= 4.0) - activesupport (>= 4.0) + bcrypt (3.1.20) + better_html (2.1.1) + actionview (>= 6.0) + activesupport (>= 6.0) ast (~> 2.0) erubi (~> 1.4) - html_tokenizer (~> 0.0.6) parser (>= 2.4) smart_properties bigdecimal (3.1.8) bindex (0.8.1) - bootsnap (1.17.0) + bootsnap (1.18.3) msgpack (~> 1.2) + brakeman (5.4.1) browser (2.7.1) - builder (3.2.4) + builder (3.3.0) + bullet (7.2.0) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.11) byebug (11.1.3) capybara (3.40.0) addressable @@ -134,86 +127,71 @@ GEM cells-rails (0.1.5) actionpack (>= 5.0) cells (>= 4.1.6, < 5.0.0) - charlock_holmes (0.7.7) - chef-utils (18.4.12) - concurrent-ruby - childprocess (4.1.0) - codecov (0.6.0) - simplecov (>= 0.15, < 0.22) - 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) + charlock_holmes (0.7.8) + childprocess (5.0.0) commonmarker (0.23.10) - concurrent-ruby (1.2.2) + concurrent-ruby (1.3.3) crack (1.0.0) bigdecimal rexml crass (1.0.6) - css_parser (1.16.0) + css_parser (1.17.1) addressable - date (3.3.3) + csv (3.3.0) date_validator (0.12.0) activemodel (>= 3) activesupport (>= 3) - db-query-matchers (0.10.0) - activesupport (>= 4.0, < 7) - rspec (~> 3.0) - decidim (0.27.6) - decidim-accountability (= 0.27.6) - decidim-admin (= 0.27.6) - decidim-api (= 0.27.6) - decidim-assemblies (= 0.27.6) - decidim-blogs (= 0.27.6) - decidim-budgets (= 0.27.6) - decidim-comments (= 0.27.6) - decidim-core (= 0.27.6) - decidim-debates (= 0.27.6) - decidim-forms (= 0.27.6) - decidim-generators (= 0.27.6) - decidim-meetings (= 0.27.6) - decidim-pages (= 0.27.6) - decidim-participatory_processes (= 0.27.6) - decidim-proposals (= 0.27.6) - decidim-sortitions (= 0.27.6) - decidim-surveys (= 0.27.6) - decidim-system (= 0.27.6) - decidim-templates (= 0.27.6) - decidim-verifications (= 0.27.6) - decidim-accountability (0.27.6) - decidim-comments (= 0.27.6) - decidim-core (= 0.27.6) - decidim-admin (0.27.6) + decidim (0.28.2) + decidim-accountability (= 0.28.2) + decidim-admin (= 0.28.2) + decidim-api (= 0.28.2) + decidim-assemblies (= 0.28.2) + decidim-blogs (= 0.28.2) + decidim-budgets (= 0.28.2) + decidim-comments (= 0.28.2) + decidim-core (= 0.28.2) + decidim-debates (= 0.28.2) + decidim-forms (= 0.28.2) + decidim-generators (= 0.28.2) + decidim-meetings (= 0.28.2) + decidim-pages (= 0.28.2) + decidim-participatory_processes (= 0.28.2) + decidim-proposals (= 0.28.2) + decidim-sortitions (= 0.28.2) + decidim-surveys (= 0.28.2) + decidim-system (= 0.28.2) + decidim-templates (= 0.28.2) + decidim-verifications (= 0.28.2) + decidim-accountability (0.28.2) + decidim-comments (= 0.28.2) + decidim-core (= 0.28.2) + decidim-admin (0.28.2) active_link_to (~> 1.0) - decidim-core (= 0.27.6) + decidim-core (= 0.28.2) devise (~> 4.7) devise-i18n (~> 1.2) devise_invitable (~> 2.0, >= 2.0.9) - decidim-api (0.27.6) - decidim-core (= 0.27.6) - graphql (~> 1.12, < 1.13) - graphql-docs (~> 2.1.0) + decidim-api (0.28.2) + commonmarker (~> 0.23.0, >= 0.23.9) + decidim-core (= 0.28.2) + graphql (~> 2.0.0) + graphql-docs (~> 3.0.1) rack-cors (~> 1.0) - decidim-assemblies (0.27.6) - decidim-core (= 0.27.6) - decidim-blogs (0.27.6) - decidim-admin (= 0.27.6) - decidim-comments (= 0.27.6) - decidim-core (= 0.27.6) - decidim-budgets (0.27.6) - decidim-comments (= 0.27.6) - decidim-core (= 0.27.6) - decidim-comments (0.27.6) - decidim-core (= 0.27.6) + decidim-assemblies (0.28.2) + decidim-core (= 0.28.2) + decidim-blogs (0.28.2) + decidim-admin (= 0.28.2) + decidim-comments (= 0.28.2) + decidim-core (= 0.28.2) + decidim-budgets (0.28.2) + decidim-comments (= 0.28.2) + decidim-core (= 0.28.2) + decidim-comments (0.28.2) + decidim-core (= 0.28.2) redcarpet (~> 3.5, >= 3.5.1) - decidim-core (0.27.6) + decidim-core (0.28.2) active_link_to (~> 1.0) - acts_as_list (~> 0.9) + acts_as_list (~> 1.0) batch-loader (~> 1.2) browser (~> 2.7) carrierwave (~> 2.2.5, >= 2.2.5) @@ -222,9 +200,9 @@ GEM charlock_holmes (~> 0.7) date_validator (~> 0.12.0) devise (~> 4.7) - devise-i18n (~> 1.2) + devise-i18n (~> 1.2, < 1.11.1) diffy (~> 3.3) - doorkeeper (~> 5.1) + doorkeeper (~> 5.6, >= 5.6.6) doorkeeper-i18n (~> 4.0) file_validators (~> 3.0) fog-local (~> 0.6) @@ -233,102 +211,104 @@ GEM hashdiff (>= 0.4.0, < 2.0.0) invisible_captcha (~> 0.12) kaminari (~> 1.2, >= 1.2.1) - loofah (~> 2.19.0) + loofah (~> 2.19, >= 2.19.1) mime-types (>= 1.16, < 4.0) mini_magick (~> 4.9) + net-smtp (~> 0.3.1) 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 (~> 1.4.0, < 2) pg_search (~> 2.2) premailer-rails (~> 1.10) - rack (~> 2.2, >= 2.2.3) + psych (~> 4.0) + rack (~> 2.2, >= 2.2.6.4) rack-attack (~> 6.0) - rails (~> 6.1.0) + rails (~> 6.1.7, >= 6.1.7.4) rails-i18n (~> 6.0) - ransack (~> 2.4.1) + ransack (~> 3.2.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) + shakapacker (~> 7.1.0) + valid_email2 (~> 4.0) + web-push (~> 3.0) wisper (~> 2.0) - decidim-debates (0.27.6) - decidim-comments (= 0.27.6) - decidim-core (= 0.27.6) - decidim-dev (0.27.6) - axe-core-rspec (~> 4.1.0) + decidim-debates (0.28.2) + decidim-comments (= 0.28.2) + decidim-core (= 0.28.2) + decidim-dev (0.28.2) + bullet (~> 7.0) byebug (~> 11.0) - capybara (~> 3.24) - db-query-matchers (~> 0.10.0) - decidim (= 0.27.6) - 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) + capybara (~> 3.39) + decidim (= 0.28.2) + erb_lint (~> 0.4.0) + factory_bot_rails (~> 6.2) + faker (~> 3.2) + i18n-tasks (~> 1.0) + nokogiri (~> 1.14, >= 1.14.3) + parallel_tests (~> 4.2) + puma (~> 6.2, >= 6.3.1) rails-controller-testing (~> 1.0) + rspec (~> 3.12) rspec-cells (~> 0.3.7) - rspec-html-matchers (~> 0.9.1) - rspec-rails (~> 4.0) + rspec-html-matchers (~> 0.10) + rspec-rails (~> 6.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) + rspec_junit_formatter (~> 0.6.0) + rubocop (~> 1.50.0) + rubocop-faker (~> 1.1) + rubocop-rails (~> 2.19) + rubocop-rspec (~> 2.20) + selenium-webdriver (~> 4.9) + simplecov (~> 0.22.0) simplecov-cobertura (~> 2.1.0) w3c_rspec_validators (~> 0.3.0) - webmock (~> 3.6) + webmock (~> 3.18) wisper-rspec (~> 1.0) - decidim-forms (0.27.6) - decidim-core (= 0.27.6) + decidim-forms (0.28.2) + decidim-core (= 0.28.2) wicked_pdf (~> 2.1) wkhtmltopdf-binary (~> 0.12) - decidim-generators (0.27.6) - decidim-core (= 0.27.6) - decidim-meetings (0.27.6) - decidim-core (= 0.27.6) - decidim-forms (= 0.27.6) + decidim-generators (0.28.2) + decidim-core (= 0.28.2) + decidim-meetings (0.28.2) + decidim-core (= 0.28.2) + decidim-forms (= 0.28.2) icalendar (~> 2.5) - decidim-pages (0.27.6) - decidim-core (= 0.27.6) - decidim-participatory_processes (0.27.6) - decidim-core (= 0.27.6) - decidim-proposals (0.27.6) - decidim-comments (= 0.27.6) - decidim-core (= 0.27.6) - doc2text (~> 0.4.5) + decidim-pages (0.28.2) + decidim-core (= 0.28.2) + decidim-participatory_processes (0.28.2) + decidim-core (= 0.28.2) + decidim-proposals (0.28.2) + decidim-comments (= 0.28.2) + decidim-core (= 0.28.2) + doc2text (~> 0.4.6) redcarpet (~> 3.5, >= 3.5.1) - decidim-sortitions (0.27.6) - decidim-admin (= 0.27.6) - decidim-comments (= 0.27.6) - decidim-core (= 0.27.6) - decidim-proposals (= 0.27.6) - decidim-surveys (0.27.6) - decidim-core (= 0.27.6) - decidim-forms (= 0.27.6) - decidim-system (0.27.6) + decidim-sortitions (0.28.2) + decidim-admin (= 0.28.2) + decidim-comments (= 0.28.2) + decidim-core (= 0.28.2) + decidim-proposals (= 0.28.2) + decidim-surveys (0.28.2) + decidim-core (= 0.28.2) + decidim-forms (= 0.28.2) + decidim-system (0.28.2) active_link_to (~> 1.0) - decidim-core (= 0.27.6) + decidim-core (= 0.28.2) devise (~> 4.7) devise-i18n (~> 1.2) devise_invitable (~> 2.0, >= 2.0.9) - decidim-templates (0.27.6) - decidim-core (= 0.27.6) - decidim-forms (= 0.27.6) - decidim-verifications (0.27.6) - decidim-core (= 0.27.6) + decidim-templates (0.28.2) + decidim-core (= 0.28.2) + decidim-forms (= 0.28.2) + decidim-verifications (0.28.2) + decidim-core (= 0.28.2) declarative-builder (0.1.0) declarative-option (< 0.2.0) declarative-option (0.1.0) @@ -338,62 +318,58 @@ GEM polyglot railties (>= 5.2) rainbow (>= 2.1.0) - descendants_tracker (0.0.4) - thread_safe (~> 0.3, >= 0.3.1) - devise (4.9.3) + devise (4.9.4) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-i18n (1.12.0) + devise-i18n (1.11.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) + digest (3.1.1) doc2text (0.4.7) nokogiri (>= 1.13.2, < 1.17.0) rubyzip (~> 2.3.0) - docile (1.4.0) - doorkeeper (5.6.6) + docile (1.4.1) + doorkeeper (5.7.1) railties (>= 5) doorkeeper-i18n (4.0.1) - dumb_delegator (1.0.0) - erb_lint (0.0.37) + erb_lint (0.4.0) activesupport - better_html (~> 1.0.7) - html_tokenizer + better_html (>= 2.0.1) parser (>= 2.7.1.4) rainbow rubocop smart_properties erbse (0.1.4) temple - erubi (1.12.0) - escape_utils (1.3.0) - excon (0.104.0) - execjs (2.9.1) + erubi (1.13.0) + escape_utils (1.2.2) + excon (0.111.0) 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 (2.23.0) + factory_bot (6.4.6) + activesupport (>= 5.0.0) + factory_bot_rails (6.4.3) + factory_bot (~> 6.4) + railties (>= 5.0.0) + faker (3.4.2) i18n (>= 1.8.11, < 2) - faraday (2.7.11) - base64 - faraday-net_http (>= 2.0, < 3.1) - ruby2_keywords (>= 0.0.4) - faraday-net_http (3.0.2) - ffi (1.16.3) + faraday (2.10.0) + faraday-net_http (>= 2.0, < 3.2) + logger + faraday-net_http (3.1.0) + net-http + ffi (1.17.0) file_validators (3.0.0) activemodel (>= 3.2) mime-types (>= 1.0) - fog-core (2.3.0) + fog-core (2.4.0) builder excon (~> 0.71) formatador (>= 0.2, < 2.0) @@ -407,50 +383,53 @@ GEM activesupport (>= 4.1, < 7.1) railties (>= 4.1, < 7.1) gemoji (3.0.1) - geocoder (1.8.2) + geocoder (1.8.3) + base64 (>= 0.1.0) + csv (>= 3.0.0) globalid (1.2.1) activesupport (>= 6.1) - graphql (1.12.24) - graphql-docs (2.1.0) + graphql (2.0.31) + base64 + graphql-docs (3.0.1) commonmarker (~> 0.16) - escape_utils (~> 1.2) + escape_utils (~> 1.2.2) extended-markdown-filter (~> 0.4) gemoji (~> 3.0) - graphql (~> 1.12) + graphql (~> 2.0) html-pipeline (~> 2.9) sass (~> 3.4) - hashdiff (1.0.1) + hashdiff (1.1.0) hashie (5.0.0) - highline (3.0.1) - hkdf (0.3.0) + highline (3.1.0) + reline html-pipeline (2.14.3) activesupport (>= 2) nokogiri (>= 1.4) - html_tokenizer (0.0.8) htmlentities (4.3.4) - i18n (1.14.1) + i18n (1.14.5) concurrent-ruby (~> 1.0) - i18n-tasks (0.9.37) + i18n-tasks (1.0.14) activesupport (>= 4.0.2) ast (>= 2.1.0) erubi highline (>= 2.0.0) i18n - parser (>= 2.2.3.0) + parser (>= 3.2.2.1) rails-i18n rainbow (>= 2.2.2, < 4.0) terminal-table (>= 1.5.1) - icalendar (2.10.1) + icalendar (2.10.2) ice_cube (~> 0.16) - ice_cube (0.16.4) - ice_nine (0.11.2) + ice_cube (0.17.0) 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) + io-console (0.7.2) json (2.7.2) - jwt (2.7.1) + jwt (2.8.2) + base64 kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -463,62 +442,53 @@ GEM 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) + launchy (3.0.1) addressable (~> 2.8) - letter_opener (1.8.1) - launchy (>= 2.2, < 3) - letter_opener_web (1.4.1) - actionmailer (>= 3.2) - letter_opener (~> 1.0) - railties (>= 3.2) - listen (3.8.0) + childprocess (~> 5.0) + letter_opener (1.10.0) + launchy (>= 2.2, < 4) + letter_opener_web (2.0.0) + actionmailer (>= 5.2) + letter_opener (~> 1.7) + railties (>= 5.2) + rexml + listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.19.1) + logger (1.6.0) + loofah (2.22.0) crass (~> 1.0.2) - nokogiri (>= 1.5.9) + nokogiri (>= 1.12.0) mail (2.8.1) mini_mime (>= 0.1.1) net-imap net-pop net-smtp - marcel (1.0.2) + marcel (1.0.4) 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.1) + method_source (1.1.0) + mime-types (3.5.2) mime-types-data (~> 3.2015) - mime-types-data (3.2023.1003) - mini_magick (4.12.0) + mime-types-data (3.2024.0702) + mini_magick (4.13.2) mini_mime (1.1.5) - minitest (5.20.0) - mixlib-cli (2.1.8) - mixlib-config (3.0.27) - tomlrb - mixlib-shellout (3.2.7) - chef-utils + minitest (5.24.1) msgpack (1.7.2) multi_xml (0.6.0) - net-imap (0.4.4) - date + net-http (0.4.1) + uri + net-imap (0.2.4) + digest net-protocol + strscan net-pop (0.1.2) net-protocol - net-protocol (0.2.1) + net-protocol (0.2.2) timeout - net-smtp (0.4.0) + net-smtp (0.3.4) net-protocol - nio4r (2.5.9) - nokogiri (1.14.5-x86_64-linux) + nio4r (2.7.3) + nokogiri (1.16.6-x86_64-linux) racc (~> 1.4) oauth (1.1.0) oauth-tty (~> 1.0, >= 1.0.1) @@ -533,45 +503,46 @@ GEM rack (>= 1.2, < 4) snaky_hash (~> 2.0) version_gem (~> 1.1) - omniauth (2.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) + omniauth-google-oauth2 (1.1.2) jwt (>= 2.0) - oauth2 (~> 2.0.6) + oauth2 (~> 2.0) omniauth (~> 2.0) - omniauth-oauth2 (~> 1.8.0) + omniauth-oauth2 (~> 1.8) 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) + omniauth-rails_csrf_protection (1.0.2) actionpack (>= 4.2) omniauth (~> 2.0) omniauth-twitter (1.4.0) omniauth-oauth (~> 1.1) rack + openssl (3.2.0) orm_adapter (0.5.0) paper_trail (12.3.0) activerecord (>= 5.2) request_store (~> 1.1) - parallel (1.23.0) - parallel_tests (3.13.0) + parallel (1.25.1) + parallel_tests (4.7.1) parallel - parser (3.2.2.4) + parser (3.3.4.0) ast (~> 2.4.1) racc - pg (1.1.4) + pg (1.4.6) pg_search (2.3.6) activerecord (>= 5.2) activesupport (>= 5.2) polyglot (0.3.5) - premailer (1.21.0) + premailer (1.23.0) addressable css_parser (>= 1.12.0) htmlentities (>= 4.0.0) @@ -579,35 +550,38 @@ GEM actionmailer (>= 3) net-smtp premailer (~> 1.7, >= 1.7.9) - public_suffix (5.0.3) - puma (5.6.7) + psych (4.0.6) + stringio + public_suffix (6.0.0) + puma (6.4.2) nio4r (~> 2.0) - racc (1.7.2) - rack (2.2.8) + racc (1.8.0) + rack (2.2.9) rack-attack (6.7.0) rack (>= 1.0, < 4) rack-cors (1.1.1) rack (>= 2.0.0) - rack-protection (3.1.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.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.8) + actioncable (= 6.1.7.8) + actionmailbox (= 6.1.7.8) + actionmailer (= 6.1.7.8) + actionpack (= 6.1.7.8) + actiontext (= 6.1.7.8) + actionview (= 6.1.7.8) + activejob (= 6.1.7.8) + activemodel (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) bundler (>= 1.15.0) - railties (= 6.1.7.6) + railties (= 6.1.7.8) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -617,35 +591,39 @@ GEM activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) 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.8) + actionpack (= 6.1.7.8) + activesupport (= 6.1.7.8) 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) + rake (13.2.1) + ransack (3.2.1) + activerecord (>= 6.1.5) + activesupport (>= 6.1.5) i18n rb-fsevent (0.11.2) - rb-inotify (0.10.1) + rb-inotify (0.11.1) ffi (~> 1.0) redcarpet (3.6.0) redis (4.8.1) - regexp_parser (2.8.2) + regexp_parser (2.9.2) + reline (0.5.9) + io-console (~> 0.5) request_store (1.5.1) rack (>= 1.4) responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.2.6) + rexml (3.3.1) + strscan rspec (3.13.0) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) @@ -655,53 +633,56 @@ GEM rspec-rails (>= 3.0.0, < 6.2.0) rspec-core (3.13.0) rspec-support (~> 3.13.0) - rspec-expectations (3.13.0) + rspec-expectations (3.13.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-html-matchers (0.9.4) + rspec-html-matchers (0.10.0) nokogiri (~> 1) - rspec (>= 3.0.0.a, < 4) + rspec (>= 3.0.0.a) rspec-mocks (3.13.1) 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-rails (6.1.3) + actionpack (>= 6.1) + activesupport (>= 6.1) + railties (>= 6.1) + rspec-core (~> 3.13) + rspec-expectations (~> 3.13) + rspec-mocks (~> 3.13) + rspec-support (~> 3.13) rspec-retry (0.6.2) rspec-core (> 3.3) rspec-support (3.13.1) - rspec_junit_formatter (0.3.0) + rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.28.2) + rubocop (1.50.2) + json (~> 2.3) parallel (~> 1.10) - parser (>= 3.1.0.0) + parser (>= 3.2.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) - rexml - rubocop-ast (>= 1.17.0, < 2.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.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) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.31.3) + parser (>= 3.3.1.0) + rubocop-capybara (2.18.0) + rubocop (~> 1.41) rubocop-faker (1.1.0) faker (>= 2.12.0) rubocop (>= 0.82.0) - rubocop-rails (2.15.2) + rubocop-rails (2.19.1) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 1.7.0, < 2.0) - rubocop-rspec (2.11.1) - rubocop (~> 1.19) + rubocop (>= 1.33.0, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) ruby-progressbar (1.13.0) - ruby-vips (2.2.0) + ruby-vips (2.2.1) ffi (~> 1.12) - ruby2_keywords (0.0.5) - rubyXL (3.4.25) + rubyXL (3.4.27) nokogiri (>= 1.10.8) rubyzip (>= 1.3.0) rubyzip (2.3.2) @@ -712,13 +693,20 @@ GEM rb-inotify (~> 0.9, >= 0.9.7) sassc (2.4.0) ffi (~> 1.9) - selenium-webdriver (4.1.0) - childprocess (>= 0.5, < 5.0) + selenium-webdriver (4.23.0) + base64 (~> 0.2) + logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) - rubyzip (>= 1.2.2) + rubyzip (>= 1.2.2, < 3.0) + websocket (~> 1.0) semantic_range (3.0.0) seven_zip_ruby (1.3.0) - simplecov (0.21.2) + shakapacker (7.1.0) + activesupport (>= 5.2) + rack-proxy (>= 0.6.1) + railties (>= 5.2) + semantic_range (>= 2.3.0) + simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) @@ -731,8 +719,6 @@ GEM snaky_hash (2.0.1) hashie version_gem (~> 1.1, >= 1.1.1) - social-share-button (1.2.4) - coffee-rails spring (2.1.1) spring-watcher-listen (2.0.1) listen (>= 2.7, < 4.0) @@ -740,31 +726,29 @@ GEM 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-rails (3.5.1) + actionpack (>= 6.1) + activesupport (>= 6.1) sprockets (>= 3.0.0) ssrf_filter (1.1.2) + stringio (3.1.1) + strscan (3.1.0) 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.0) - tomlrb (2.0.3) + thor (1.3.1) + tilt (2.4.0) + timeout (0.4.1) tzinfo (2.0.6) concurrent-ruby (~> 1.0) uber (0.1.0) unicode-display_width (2.5.0) - valid_email2 (2.3.1) + uniform_notifier (1.16.0) + uri (0.13.0) + valid_email2 (4.0.6) 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) + version_gem (1.1.4) w3c_rspec_validators (0.3.0) rails rspec @@ -780,18 +764,14 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webmock (3.23.0) + web-push (3.0.1) + jwt (~> 2.0) + openssl (~> 3.0) + webmock (3.23.1) 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 (1.2.11) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) @@ -799,32 +779,35 @@ GEM activesupport wisper (2.0.1) wisper-rspec (1.1.0) - wkhtmltopdf-binary (0.12.6.6) + wkhtmltopdf-binary (0.12.6.7) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.12) + zeitwerk (2.6.16) PLATFORMS x86_64-linux DEPENDENCIES bootsnap (~> 1.4) + brakeman (~> 5.4) byebug (~> 11.0) - codecov - decidim (= 0.27.6) + decidim (= 0.28.2) decidim-decidim_awesome! - decidim-dev (= 0.27.6) - faker (~> 2.14) - letter_opener_web (~> 1.3) + decidim-dev (= 0.28.2) + decidim-templates (= 0.28.2) + letter_opener_web (~> 2.0) listen (~> 3.1) - puma (>= 5.5.1) - rubocop-faker + net-imap (~> 0.2.3) + net-pop (~> 0.1.1) + net-smtp (~> 0.3.1) + parallel_tests (~> 4.2) + puma (>= 6.3.1) spring (~> 2.0) - spring-watcher-listen (~> 2.0.0) - web-console + spring-watcher-listen (~> 2.0) + web-console (~> 4.2) RUBY VERSION - ruby 3.0.6p216 + ruby 3.1.1p18 BUNDLED WITH - 2.4.22 + 2.5.4 diff --git a/README.md b/README.md index cc818ace6..26c1f9a45 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,14 @@ # Decidim::DecidimAwesome -[![[CI] Tests 0.27](https://github.com/decidim-ice/decidim-module-decidim_awesome/actions/workflows/tests.yml/badge.svg)](https://github.com/decidim-ice/decidim-module-decidim_awesome/actions/workflows/tests.yml) -[![[CI] Tests 0.26](https://github.com/decidim-ice/decidim-module-decidim_awesome/actions/workflows/tests-legacy.yml/badge.svg)](https://github.com/decidim-ice/decidim-module-decidim_awesome/actions/workflows/tests-legacy.yml) +[![[CI] Tests 0.28](https://github.com/decidim-ice/decidim-module-decidim_awesome/actions/workflows/tests.yml/badge.svg)](https://github.com/decidim-ice/decidim-module-decidim_awesome/actions/workflows/tests.yml) [![[CI] Lint](https://github.com/decidim-ice/decidim-module-decidim_awesome/actions/workflows/lint.yml/badge.svg)](https://github.com/decidim-ice/decidim-module-decidim_awesome/actions/workflows/lint.yml) -[![[CI] Precompile](https://github.com/decidim-ice/decidim-module-decidim_awesome/actions/workflows/precompile.yml/badge.svg)](https://github.com/decidim-ice/decidim-module-decidim_awesome/actions/workflows/precompile.yml) [![Maintainability](https://api.codeclimate.com/v1/badges/2dada53525dd5a944089/maintainability)](https://codeclimate.com/github/decidim-ice/decidim-module-decidim_awesome/maintainability) [![Test Coverage](https://codecov.io/gh/decidim-ice/decidim-module-decidim_awesome/branch/main/graph/badge.svg?token=TFBMCLLZJG)](https://codecov.io/gh/decidim-ice/decidim-module-decidim_awesome) -Usability and UX tweaks for Decidim. +**Usability and UX tweaks for Decidim.** This plugin allows the administrators to expand the possibilities of Decidim beyond some existing limitations. -All tweaks are provided in a optional fashion with granular permissions that let the administrator to choose exactly where to apply those mods. Some tweaks can be applied to any assembly, other in an specific participatory process or even in type of component only. +All tweaks are provided in a optional fashion with granular permissions that let the administrator to choose exactly where to apply those mods. Some tweaks can be applied to an assembly, other in an specific participatory process or even in a type of component only (for instance, only in proposals). **DISCLAIMER: This module is heavily tested and widely used, however we do not accept any responsibility for breaking anything. Feedback is appreciated though.** @@ -31,13 +29,13 @@ Each hack can be scoped to one or more specific participatory spaces or componen ### Tweaks: -#### 1. Image support for the Quill editor +#### 1. Image support for the RichText editor Modifies the WYSIWYG editor in Decidim by adding the possibility to insert images. When uploading images, Drag & Drop is supported. Images will be uploaded to the server and inserted as external resources (it doesn't use base64 in-line encoding). This feature allows you use images in newsletters as well. -![Images in Quill Editor](examples/quill-images.png) +![Images in RichText Editor](examples/quill-images.png) #### 2. Auto-save for surveys and forms @@ -47,27 +45,23 @@ It works purely in the client side by using LocalStorage capabilities of the bro Saving the form removes the stored data. -![Auto save in forms](examples/auto-save.png) +![Auto save in forms](examples/auto-save.gif) #### 3. Images in proposals -Event if you haven't activated the WYSIWYG editor (Quill) in public views (eg: proposals use a simple textarea if rich text editor has not been activated for users). You can allow users to upload images in them by drag & drop over the text area. +Event if you haven't activated the WYSIWYG editor (RichText) in public views (eg: proposals use a simple textarea if rich text editor has not been activated for users). You can allow users to upload images in them by drag & drop over the text area. ![Proposal images](examples/proposal-images.png) -#### 4. Markdown editor for proposals - -Allows to use markdown when creating proposals instead of a bare textarea. - -#### 5. Admin scope configuration +#### 4. Restrict scope for tweaks All tweaks can be configured and scoped to a specific participatory space, a type of participatory space, a type of component or a specific component. -Many scopes can be defined for every tweak. +Many scopes can be defined for every tweak. If a tweak is not scoped, it will be applied globally. -![Admin tweaks for editors](examples/admin-editors.png) +![Tweak scopes](examples/tweak-scopes.png) -#### 6. Awesome map component +#### 5. Awesome map component This is a component you can add in any participatory space. It retrieves all the geolocated content in that participatory space (meetings or proposals) and displays it in a big map. @@ -75,25 +69,25 @@ It also provides a simple search by category, each category is assigned to a dif ![Awesome map](examples/awesome-map.png) -#### 7. Fullscreen Iframe component +#### 6. Fullscreen Iframe component Another simple component that can be used to embed and Iframe with any external content in it that fills all the viewport. ![Fullscreen iframe](examples/fullscreen-iframe.png) -#### 8. Live support chat +#### 7. Live support chat -With this feature you can have a support chat in Decidim. It is linked to a [Telegram](https://telegram.org/) group or a single user chat using the [[IntergramBot](https://web.telegram.org/#/im?p=@IntergramBot). Just invite the bot to a group or chat with it directly, grab your ID, put it on the Awesome settings and have fun!. For more info or for hosting your own version of the bot check the [Intergram project](https://github.com/idoco/intergram). +With this feature you can have a support chat in Decidim. It is linked to a [Telegram](https://telegram.org/) group or a single user chat using the [IntergramBot](https://web.telegram.org/#/im?p=@IntergramBot). Just invite the bot to a group or chat with it directly, grab your ID, put it on the Awesome settings and have fun!. For more info or for hosting your own version of the bot check the [Intergram project](https://github.com/idoco/intergram). ![Intergram screenshot](examples/intergram.png) -#### 9. Custom CSS applied only according scoped restrictions +#### 8. Custom CSS applied only according scoped restrictions With this feature you can create directly in the admin a CSS snipped that is only applied globally, in a particular assembly or even a single proposal! ![CSS screenshot](examples/custom_styles.png) -#### 10. Change the main menu of Decidim entirely! +#### 9. Change the main menu of Decidim entirely! Feel free to hide, modify or add items in the Decidim's main menu. You can also change the order, establish some conditions (like showing only for logged users) or open in a new window. @@ -102,7 +96,7 @@ Feel free to hide, modify or add items in the Decidim's main menu. You can also ![Menu hacks screenshot](examples/menu-3.png) ![Menu hacks screenshot](examples/menu-4.png) -#### 11. Assign admins to specific scopes and prevent them modify anything else +#### 10. Assign admins to specific scopes and prevent them modify anything else Convert any user on the platform (that is not currently an admin) to a limited subset of participatory spaces or event components. Just add users to a box and scope them to some constraints. These users will see the "Edit" button in everywhere they have permissions. Any access to non allowed zones will redirect the user to the admin index page. @@ -110,7 +104,7 @@ Convert any user on the platform (that is not currently an admin) to a limited s ![Scoped admins unauthorized](examples/scoped_admins_unauthorized.png) ![Scoped admins configuration](examples/scoped_admins_config.png) -#### 12. Custom fields for proposals +#### 11. Custom fields for proposals Now admins can substitute the body of a proposal with a set of form fields. Edition is make with a Drag & Drop interface in the admin and can (and should) be scoped to apply only to certain proposal components. @@ -121,12 +115,79 @@ Technically, the content is stored in the database as an XML document compatible ![Custom fields screenshot](examples/custom-fields-2.png) ![Custom fields screenshot](examples/custom-fields-1.gif) -#### 13. Custom Redirections (or URL shortener feature) +Note that the custom fields are build using the jQuery library [formBuilder](https://formbuilder.online). This package is included in Decidim Awesome but the i18n translations are not. By default they are dynamically downloaded from the CDN https://cdn.jsdelivr.net/npm/formbuilder-languages@1.1.0/. +If you wish to provide an alternative place for those files, you can configure the variable `form_builder_langs_location` in an initializer: + +```ruby +# config/initializers/awesome_defaults.rb + +# A URL where to obtain the translations for the FormBuilder component +# you can a custom place if you are worried about the CDN geolocation +# Download them from https://github.com/kevinchappell/formBuilder-languages + +# For instance, copy them to your /public/fb_locales/ directory and set the path here: +Decidim::DecidimAwesome.configure do |config| + config.form_builder_langs_location = "/fb_locales/" +end +``` + +##### 11.1. GraphQL types for custom fields + +#### 11.1. GraphQL types for custom fields + +Custom fields are displayed in the GaphQL API according to their definition in a formatted array of objects in the attribute `bodyFields`. + +A query to extract this information could look like this (see that the original `body` is also available): + +```graphql +{ + component(id: 999) { + ... on Proposals { + proposals { + edges { + node { + id + bodyFields { + locales + translation(locale: "en") + translations { + locale + fields + machineTranslated + } + } + body { + locales + translations { + locale + text + machineTranslated + } + } + } + } + } + } + } +} +``` + +You can then use this custom type in your GraphQL queries and mutations to handle the custom fields in proposals. + + +##### 11.2. Private Custom fields + +Similar to the custom fields feature, but only admins can see the content of the fields. This is useful for adding metadata to proposals that should not be visible to the public (such as contact data). +Data is stored encrypted in the database. + +![Private Custom fields screenshot](examples/private_custom_fields.png) + +#### 12. Custom Redirections (or URL shortener feature) Admins can create custom paths that redirect to other places. Destinations can be internal absolute paths or external sites. There's also possible to choose to sanitize (ie: remove) any query string or to maintain it (so you can decide to use). -For instance you can create a redirection like +For instance you can create a redirection like * `/take-me-somewhere` => `/processes/canary-islands` @@ -141,7 +202,7 @@ Using a link with a query string (ie: `/take-me-somewhere?locale=es`) that will ![Custom redirections screenshot](examples/custom-redirections.png) -#### 14. Custom validation rules for title and body in proposals +#### 13. Custom validation rules for title and body in proposals Configure as you wish how the fields "title" and "body" are validated in proposals creation. @@ -154,7 +215,7 @@ Rules available: ![Custom validations](examples/custom_validations.png) -#### 15. Admin accountability +#### 14. Admin accountability This feature allows you to list all the users that are, or have been at any point in time, admins, valuators, user managers or any other role in Decidim. Including global admin roles or private admins of a particular participatory space. @@ -162,7 +223,7 @@ Results can be filtered by role and by time range and also exported as CSV or ot ![Admin accountability](examples/admin_accountability.png) -#### 16. Additional proposal sortings +#### 15. Additional proposal sortings ![Proposal sorting](examples/proposal_sorting.png) ![Proposal sorting admin](examples/proposal_sorting-admin.png) @@ -191,7 +252,7 @@ Decidim::DecidimAwesome.configure do |config| end ``` -#### 17. Weighted voting +#### 16. Weighted voting This feature allows you to configure a proposals component to use a weighted voting system. This means that each vote can have a different weight and the result of the vote is calculated as the sum of all the weights. @@ -214,7 +275,7 @@ if Decidim::DecidimAwesome.enabled?(:weighted_proposal_voting) voting.show_vote_button_view = "decidim/decidim_awesome/voting/no_admins_vote/show_vote_button" voting.show_votes_count_view = "decidim/decidim_awesome/voting/no_admins_vote/show_votes_count" # voting.show_votes_count_view = "" # hide votes count if needed - voting.proposal_m_cell_footer = "decidim/decidim_awesome/voting/no_admins_vote/proposal_m_cell_footer" + voting.proposal_metadata_cell = "decidim/decidim_awesome/voting/proposal_metadata" # define a weight validator (optional, by default all weights are valid) voting.weight_validator do |weight, context| # don't allow admins to vote @@ -240,11 +301,11 @@ A manifest must define a vote button view for the main proposal view, a vote cou All views are optional, if set to `nil` they will use the original ones. If set to an empty string `""` they will be hidden. -The `weight_validator` is a Proc that receives the weight value and the context with the current user and the proposal and returns true or false if the weight is valid or not. +The `weight_validator` is a `Proc` that receives the weight value and the context with the current user and the proposal and returns true or false if the weight is valid or not. **Notes for view `show_vote_button_view`** -When building a new view for the vote button ([see the original](https://github.com/decidim/decidim/blob/release/0.27-stable/decidim-proposals/app/views/decidim/proposals/proposals/_vote_button.html.erb)) is important to take into account the following situations: +When building a new view for the vote button ([see the original](https://github.com/decidim/decidim/blob/release/0.28-stable/decidim-proposals/app/views/decidim/proposals/proposals/_vote_button.html.erb)) is important to take into account the following situations: - If there's a `current_user` logged in - If votes are blocked `if current_settings.votes_blocked?` @@ -252,7 +313,7 @@ When building a new view for the vote button ([see the original](https://github. - If maximum votes have already reached `if proposal.maximum_votes_reached?` - If the proposal can accumulate supports beyond maximum `if proposal.can_accumulate_supports_beyond_threshold` - If the current component allows the user to participate `if current_component.participatory_space.can_participate?(current_user)` -- Note that the [original view](https://github.com/decidim/decidim/blob/release/0.27-stable/decidim-proposals/app/views/decidim/proposals/proposals/_vote_button.html.erb) is overridden only inside the tag `