decidim-core 0.29.0.rc4 → 0.29.0

Sign up to get free protection for your applications and to get access to all the features.
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: