decidim-core 0.29.0.rc4 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/address/online.erb +2 -2
  3. data/app/cells/decidim/address_cell.rb +4 -0
  4. data/app/cells/decidim/nav_links/show.erb +3 -3
  5. data/app/cells/decidim/resource_types_filter/show.erb +11 -12
  6. data/app/controllers/concerns/decidim/paginable.rb +1 -1
  7. data/app/helpers/decidim/menu_helper.rb +1 -1
  8. data/app/helpers/decidim/paginate_helper.rb +3 -5
  9. data/app/models/decidim/component.rb +4 -1
  10. data/app/packs/src/decidim/a11y.js +11 -15
  11. data/app/packs/src/decidim/attachments/file_or_link_tabs.js +7 -3
  12. data/app/packs/src/decidim/input_character_counter.js +1 -1
  13. data/app/packs/stylesheets/decidim/_dropdown.scss +9 -9
  14. data/app/packs/stylesheets/decidim/_forms.scss +4 -4
  15. data/app/packs/stylesheets/decidim/_tooltip.scss +10 -10
  16. data/app/packs/stylesheets/decidim/editor.scss +1 -1
  17. data/app/presenters/decidim/menu_item_presenter.rb +1 -1
  18. data/app/services/decidim/open_data_exporter.rb +8 -7
  19. data/app/views/decidim/pages/_tabbed.html.erb +3 -3
  20. data/app/views/decidim/shared/_filters.html.erb +5 -5
  21. data/app/views/decidim/shared/_orders.html.erb +3 -2
  22. data/app/views/decidim/shared/filters/_check_boxes_tree.html.erb +1 -1
  23. data/app/views/decidim/shared/filters/_collection.html.erb +1 -1
  24. data/app/views/layouts/decidim/shared/_layout_user_profile.html.erb +2 -2
  25. data/config/locales/ca.yml +3 -3
  26. data/config/locales/cs.yml +14 -0
  27. data/config/locales/fi-plain.yml +3 -3
  28. data/config/locales/fi.yml +28 -28
  29. data/config/locales/sv.yml +72 -64
  30. data/db/migrate/20181025082245_add_timestamps_to_components.rb +5 -1
  31. data/lib/decidim/core/test/shared_examples/follows_examples.rb +8 -3
  32. data/lib/decidim/core/test/shared_examples/paginated_resource_examples.rb +5 -5
  33. data/lib/decidim/core/version.rb +1 -1
  34. data/lib/tasks/upgrade/decidim_fix_categorization.rake +100 -0
  35. metadata +8 -8
@@ -1,10 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class AddTimestampsToComponents < ActiveRecord::Migration[5.2]
4
+ class Component < ApplicationRecord
5
+ self.table_name = :decidim_components
6
+ end
7
+
4
8
  def change
5
9
  add_timestamps :decidim_components, null: true
6
10
  # rubocop:disable Rails/SkipsModelValidations
7
- Decidim::Component.update_all(created_at: Time.current, updated_at: Time.current)
11
+ Component.update_all(created_at: Time.current, updated_at: Time.current)
8
12
  # rubocop:enable Rails/SkipsModelValidations
9
13
  change_column_null :decidim_components, :created_at, false
10
14
  change_column_null :decidim_components, :updated_at, false
@@ -1,7 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- shared_examples "follows" do
3
+ # When using these shared examples, make sure there are no prior requests within
4
+ # the same group of examples where this is included. Otherwise you may end up
5
+ # in race conditions that cause these to fail as explained at:
6
+ # https://github.com/decidim/decidim/pull/6161
7
+ shared_examples "followable content for users" do
4
8
  before do
9
+ switch_to_host(organization.host)
5
10
  login_as user, scope: :user
6
11
  end
7
12
 
@@ -34,9 +39,9 @@ shared_examples "follows" do
34
39
  end
35
40
  end
36
41
 
37
- shared_examples "follows with a component" do
42
+ shared_examples "followable content for users with a component" do
38
43
  include_context "with a component"
39
- include_examples "follows"
44
+ include_examples "followable content for users"
40
45
 
41
46
  context "when the user is following the followable's participatory space" do
42
47
  before do
@@ -1,22 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  shared_examples "a paginated resource" do
4
- let(:collection_size) { 30 }
4
+ let(:collection_size) { 50 }
5
5
 
6
6
  before do
7
7
  visit_component
8
8
  end
9
9
 
10
- it "lists 10 resources per page by default" do
11
- expect(page).to have_css(resource_selector, count: 10)
12
- expect(page).to have_css("[data-pages] [data-page]", count: 3)
10
+ it "lists 25 resources per page by default" do
11
+ expect(page).to have_css(resource_selector, count: 25)
12
+ expect(page).to have_css("[data-pages] [data-page]", count: 2)
13
13
  end
14
14
 
15
15
  it "results per page can be changed from the selector" do
16
16
  expect(page).to have_css("[data-pagination]")
17
17
 
18
18
  within "[data-pagination]" do
19
- page.find("summary", text: "10").click
19
+ page.find("summary", text: "25").click
20
20
  click_on "50"
21
21
  end
22
22
 
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-core version.
5
5
  module Core
6
6
  def self.version
7
- "0.29.0.rc4"
7
+ "0.29.0"
8
8
  end
9
9
  end
10
10
  end
@@ -2,6 +2,106 @@
2
2
 
3
3
  namespace :decidim do
4
4
  namespace :upgrade do
5
+ namespace :clean do
6
+ desc "Removes all the invalid records from search, notifications, follows and action_logs"
7
+ task invalid_records: [
8
+ :"decidim:upgrade:clean:searchable_resources",
9
+ :"decidim:upgrade:clean:notifications",
10
+ :"decidim:upgrade:clean:follows",
11
+ :"decidim:upgrade:clean:action_logs"
12
+ ]
13
+
14
+ desc "Removes any action logs belonging to invalid resources"
15
+ task :action_logs, [] => :environment do
16
+ puts "=== Deleting Action logs\n"
17
+ invalid = 0
18
+ Decidim::ActionLog.find_each do |log|
19
+ log.participatory_space if log.participatory_space_type.present?
20
+ log.resource if log.resource_type.present?
21
+
22
+ if log.resource_type == "Decidim::Component" && log.resource.blank?
23
+ log.delete
24
+ invalid += 1
25
+ end
26
+
27
+ next if log.decidim_component_id.blank?
28
+ next if log.component.present?
29
+
30
+ log.delete
31
+ invalid += 1
32
+ rescue NameError
33
+ log.delete
34
+ invalid += 1
35
+ end
36
+ puts "===== Deleted #{invalid} invalid action logs\n"
37
+ end
38
+
39
+ desc "Removes any follows belonging to invalid resources"
40
+ task :follows, [] => :environment do
41
+ puts "=== Deleting Follows\n"
42
+ invalid = 0
43
+ Decidim::Follow.find_each do |follow|
44
+ follow.followable
45
+
46
+ next unless follow.followable.respond_to?(:component)
47
+ next if follow.followable.component.present?
48
+
49
+ # We attempt to remove any of the follows that refer to spaces or components that disappeared
50
+ follow.destroy
51
+ invalid += 1
52
+ rescue NameError
53
+ # We use delete as we do not want to call the hooks
54
+ follow.delete
55
+ invalid += 1
56
+ end
57
+ puts "===== Deleted #{invalid} invalid follows\n"
58
+ end
59
+
60
+ desc "Removes any notifications belonging to invalid resources"
61
+ task :notifications, [] => :environment do
62
+ puts "=== Deleting Notification\n"
63
+ invalid = 0
64
+ Decidim::Notification.find_each do |notification|
65
+ # Check if the resource class still exists
66
+ notification.resource
67
+ # Check if the event class still exists
68
+ notification.event_class_instance
69
+ rescue NameError
70
+ notification.destroy
71
+ invalid += 1
72
+ end
73
+ puts "===== Deleted #{invalid} invalid notifications\n"
74
+ end
75
+
76
+ desc "Removes any resources from search index that do not exist"
77
+ task :searchable_resources, [] => :environment do
78
+ puts "=== Deleting Searchable results\n"
79
+ puts "==== Deleting invalid spaces \n"
80
+ invalid = 0
81
+ Decidim::SearchableResource.where.not(decidim_participatory_space_type: nil).find_each do |search|
82
+ search.decidim_participatory_space
83
+ rescue NameError
84
+ search.destroy!
85
+ invalid += 1
86
+ end
87
+ puts "===== Deleted #{invalid} invalid spaces\n"
88
+
89
+ puts "==== Deleting invalid resources from search index \n"
90
+ invalid = 0
91
+ Decidim::SearchableResource.find_each do |search|
92
+ next unless search.resource.respond_to?(:component)
93
+ next if search.resource.component.present?
94
+
95
+ search.destroy
96
+ invalid += 1
97
+ rescue NameError
98
+ search.destroy!
99
+ invalid += 1
100
+ end
101
+ puts "===== Deleted #{invalid} invalid resources\n"
102
+ end
103
+ end
104
+
5
105
  desc "Removes orphan categorizations"
6
106
  task fix_orphan_categorizations: :environment do
7
107
  logger = Logger.new($stdout)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.0.rc4
4
+ version: 0.29.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-07-30 00:00:00.000000000 Z
13
+ date: 2024-09-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: active_link_to
@@ -758,28 +758,28 @@ dependencies:
758
758
  requirements:
759
759
  - - '='
760
760
  - !ruby/object:Gem::Version
761
- version: 0.29.0.rc4
761
+ version: 0.29.0
762
762
  type: :development
763
763
  prerelease: false
764
764
  version_requirements: !ruby/object:Gem::Requirement
765
765
  requirements:
766
766
  - - '='
767
767
  - !ruby/object:Gem::Version
768
- version: 0.29.0.rc4
768
+ version: 0.29.0
769
769
  - !ruby/object:Gem::Dependency
770
770
  name: decidim-dev
771
771
  requirement: !ruby/object:Gem::Requirement
772
772
  requirements:
773
773
  - - '='
774
774
  - !ruby/object:Gem::Version
775
- version: 0.29.0.rc4
775
+ version: 0.29.0
776
776
  type: :development
777
777
  prerelease: false
778
778
  version_requirements: !ruby/object:Gem::Requirement
779
779
  requirements:
780
780
  - - '='
781
781
  - !ruby/object:Gem::Version
782
- version: 0.29.0.rc4
782
+ version: 0.29.0
783
783
  description: Adds core features so other engines can hook into the framework.
784
784
  email:
785
785
  - josepjaume@gmail.com
@@ -2994,9 +2994,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2994
2994
  version: 3.2.0
2995
2995
  required_rubygems_version: !ruby/object:Gem::Requirement
2996
2996
  requirements:
2997
- - - ">"
2997
+ - - ">="
2998
2998
  - !ruby/object:Gem::Version
2999
- version: 1.3.1
2999
+ version: '0'
3000
3000
  requirements: []
3001
3001
  rubygems_version: 3.4.10
3002
3002
  signing_key: