decidim-debates 0.19.1 → 0.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/decidim/gamification/badges/commented_debates.svg +1 -78
  3. data/app/cells/decidim/debates/debate_activity_cell.rb +4 -0
  4. data/app/cells/decidim/debates/debate_m/data.erb +10 -8
  5. data/app/cells/decidim/debates/debate_m/footer.erb +6 -1
  6. data/app/cells/decidim/debates/debate_m/multiple_dates.erb +1 -1
  7. data/app/cells/decidim/debates/debate_m_cell.rb +27 -1
  8. data/app/commands/decidim/debates/admin/close_debate.rb +54 -0
  9. data/app/commands/decidim/debates/admin/create_debate.rb +4 -2
  10. data/app/commands/decidim/debates/admin/update_debate.rb +5 -2
  11. data/app/commands/decidim/debates/close_debate.rb +58 -0
  12. data/app/commands/decidim/debates/create_debate.rb +17 -12
  13. data/app/commands/decidim/debates/update_debate.rb +56 -0
  14. data/app/controllers/decidim/debates/admin/debate_closes_controller.rb +43 -0
  15. data/app/controllers/decidim/debates/admin/debates_controller.rb +4 -2
  16. data/app/controllers/decidim/debates/debates_controller.rb +70 -9
  17. data/app/controllers/decidim/debates/orderable.rb +41 -0
  18. data/app/controllers/decidim/debates/versions_controller.rb +16 -0
  19. data/app/controllers/decidim/debates/widgets_controller.rb +19 -0
  20. data/app/events/decidim/debates/close_debate_event.rb +15 -0
  21. data/app/events/decidim/debates/create_debate_event.rb +0 -2
  22. data/app/forms/decidim/debates/admin/close_debate_form.rb +34 -0
  23. data/app/forms/decidim/debates/admin/debate_form.rb +5 -1
  24. data/app/forms/decidim/debates/close_debate_form.rb +39 -0
  25. data/app/forms/decidim/debates/debate_form.rb +27 -1
  26. data/app/helpers/decidim/debates/admin/application_helper.rb +13 -0
  27. data/app/helpers/decidim/debates/application_helper.rb +55 -0
  28. data/app/models/decidim/debates/debate.rb +70 -8
  29. data/app/permissions/decidim/debates/admin/permissions.rb +3 -1
  30. data/app/permissions/decidim/debates/permissions.rb +28 -0
  31. data/app/presenters/decidim/debates/admin_log/debate_presenter.rb +6 -2
  32. data/app/presenters/decidim/debates/admin_log/value_types/debate_title_description_presenter.rb +20 -0
  33. data/app/presenters/decidim/debates/debate_presenter.rb +64 -3
  34. data/app/presenters/decidim/debates/log/resource_presenter.rb +18 -0
  35. data/app/presenters/decidim/debates/official_author_presenter.rb +1 -29
  36. data/app/queries/decidim/debates/metrics/debates_metric_manage.rb +2 -8
  37. data/app/services/decidim/debates/debate_search.rb +13 -23
  38. data/app/services/decidim/debates/diff_renderer.rb +27 -0
  39. data/app/types/decidim/debates/debate_type.rb +28 -0
  40. data/app/types/decidim/debates/debates_type.rb +32 -0
  41. data/app/views/decidim/debates/admin/debate_closes/edit.html.erb +17 -0
  42. data/app/views/decidim/debates/admin/debates/_form.html.erb +5 -5
  43. data/app/views/decidim/debates/admin/debates/index.html.erb +7 -1
  44. data/app/views/decidim/debates/debates/_close_debate_modal.html.erb +13 -0
  45. data/app/views/decidim/debates/debates/_debates.html.erb +7 -0
  46. data/app/views/decidim/debates/debates/_filters.html.erb +20 -6
  47. data/app/views/decidim/debates/debates/_form.html.erb +19 -0
  48. data/app/views/decidim/debates/debates/edit.html.erb +22 -0
  49. data/app/views/decidim/debates/debates/index.html.erb +5 -6
  50. data/app/views/decidim/debates/debates/new.html.erb +2 -23
  51. data/app/views/decidim/debates/debates/show.html.erb +86 -10
  52. data/app/views/decidim/debates/versions/index.html.erb +8 -0
  53. data/app/views/decidim/debates/versions/show.html.erb +10 -0
  54. data/config/locales/am-ET.yml +1 -0
  55. data/config/locales/ar.yml +2 -1
  56. data/config/locales/bg-BG.yml +7 -0
  57. data/config/locales/bg.yml +15 -0
  58. data/config/locales/ca.yml +73 -1
  59. data/config/locales/cs.yml +112 -40
  60. data/config/locales/da-DK.yml +1 -0
  61. data/config/locales/da.yml +1 -0
  62. data/config/locales/de.yml +51 -1
  63. data/config/locales/el-GR.yml +1 -0
  64. data/config/locales/el.yml +155 -0
  65. data/config/locales/en.yml +73 -1
  66. data/config/locales/eo.yml +1 -0
  67. data/config/locales/es-MX.yml +73 -1
  68. data/config/locales/es-PY.yml +73 -1
  69. data/config/locales/es.yml +73 -1
  70. data/config/locales/et-EE.yml +1 -0
  71. data/config/locales/et.yml +1 -0
  72. data/config/locales/eu.yml +2 -1
  73. data/config/locales/fi-plain.yml +73 -1
  74. data/config/locales/fi.yml +78 -6
  75. data/config/locales/fr-CA.yml +223 -0
  76. data/config/locales/fr.yml +73 -1
  77. data/config/locales/ga-IE.yml +1 -0
  78. data/config/locales/gl.yml +2 -1
  79. data/config/locales/hr-HR.yml +1 -0
  80. data/config/locales/hr.yml +1 -0
  81. data/config/locales/hu.yml +31 -6
  82. data/config/locales/id-ID.yml +2 -1
  83. data/config/locales/is-IS.yml +102 -0
  84. data/config/locales/is.yml +102 -0
  85. data/config/locales/it.yml +45 -10
  86. data/config/locales/ja-JP.yml +195 -0
  87. data/config/locales/ja.yml +221 -0
  88. data/config/locales/ko-KR.yml +1 -0
  89. data/config/locales/ko.yml +1 -0
  90. data/config/locales/lt-LT.yml +1 -0
  91. data/config/locales/lt.yml +1 -0
  92. data/config/locales/lv.yml +135 -0
  93. data/config/locales/mt-MT.yml +1 -0
  94. data/config/locales/mt.yml +1 -0
  95. data/config/locales/nl.yml +51 -3
  96. data/config/locales/no.yml +159 -9
  97. data/config/locales/om-ET.yml +1 -0
  98. data/config/locales/pl.yml +100 -45
  99. data/config/locales/pt-BR.yml +3 -4
  100. data/config/locales/pt.yml +56 -36
  101. data/config/locales/ro-RO.yml +173 -0
  102. data/config/locales/ru.yml +2 -1
  103. data/config/locales/sk-SK.yml +156 -0
  104. data/config/locales/sk.yml +157 -0
  105. data/config/locales/sl.yml +22 -0
  106. data/config/locales/so-SO.yml +1 -0
  107. data/config/locales/sr-CS.yml +6 -0
  108. data/config/locales/sv.yml +54 -1
  109. data/config/locales/ti-ER.yml +1 -0
  110. data/config/locales/tr-TR.yml +2 -1
  111. data/config/locales/uk.yml +2 -1
  112. data/config/locales/vi-VN.yml +1 -0
  113. data/config/locales/vi.yml +1 -0
  114. data/config/locales/zh-CN.yml +218 -0
  115. data/config/locales/zh-TW.yml +1 -0
  116. data/db/migrate/20200320105918_index_foreign_keys_in_decidim_debates_debates.rb +7 -0
  117. data/db/migrate/20200703134657_close_debates.rb +9 -0
  118. data/db/migrate/20200708072042_fix_debates_i18n_fields.rb +48 -0
  119. data/db/migrate/20200716143929_add_endorsable_to_debates.rb +8 -0
  120. data/db/migrate/20200827154116_add_commentable_counter_cache_to_debates.rb +14 -0
  121. data/db/migrate/20200902133452_add_cached_comment_metadata_to_debates.rb +23 -0
  122. data/lib/decidim/debates/admin_engine.rb +3 -1
  123. data/lib/decidim/debates/component.rb +51 -1
  124. data/lib/decidim/debates/engine.rb +7 -1
  125. data/lib/decidim/debates/test/factories.rb +62 -6
  126. data/lib/decidim/debates/version.rb +1 -1
  127. metadata +84 -13
@@ -0,0 +1 @@
1
+ zh-TW:
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class IndexForeignKeysInDecidimDebatesDebates < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_index :decidim_debates_debates, :decidim_user_group_id
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CloseDebates < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :decidim_debates_debates, :closed_at, :datetime
6
+ add_column :decidim_debates_debates, :conclusions, :jsonb
7
+ add_index :decidim_debates_debates, :closed_at
8
+ end
9
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ class FixDebatesI18nFields < ActiveRecord::Migration[5.2]
4
+ class User < ApplicationRecord
5
+ self.table_name = :decidim_users
6
+ end
7
+
8
+ class Debate < ApplicationRecord
9
+ self.table_name = :decidim_debates_debates
10
+ end
11
+
12
+ class Organization < ApplicationRecord
13
+ self.table_name = :decidim_organizations
14
+ end
15
+
16
+ def change
17
+ reset_column_information
18
+
19
+ debates.find_each do |debate|
20
+ locale, org_id = User.where(id: debate.decidim_author_id).pluck(:locale, :decidim_organization_id).first
21
+ locale = locale.presence || Organization.find(org_id).default_locale
22
+ locale = locale.to_s
23
+
24
+ debate.title = {
25
+ locale => debate.title[locale]
26
+ }
27
+ debate.description = {
28
+ locale => debate.description[locale]
29
+ }
30
+
31
+ debate.save!(validate: false)
32
+ end
33
+
34
+ reset_column_information
35
+ end
36
+
37
+ def debates
38
+ Debate
39
+ .where.not(decidim_author_type: "Decidim::Organization")
40
+ .select(:id, :decidim_author_id, :title, :description)
41
+ end
42
+
43
+ def reset_column_information
44
+ User.reset_column_information
45
+ Debate.reset_column_information
46
+ Organization.reset_column_information
47
+ end
48
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddEndorsableToDebates < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :decidim_debates_debates, :endorsements_count, :integer, null: false, default: 0
6
+ add_index :decidim_debates_debates, :endorsements_count, name: "idx_decidim_debates_debates_on_endorsemnts_count"
7
+ end
8
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddCommentableCounterCacheToDebates < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :decidim_debates_debates, :comments_count, :integer, null: false, default: 0, index: true
6
+ Decidim::Debates::Debate.reset_column_information
7
+
8
+ # rubocop:disable Rails/SkipsModelValidations
9
+ Decidim::Debates::Debate.includes(:comments).find_each do |debate|
10
+ debate.update_columns(comments_count: debate.comments.not_hidden.count)
11
+ end
12
+ # rubocop:enable Rails/SkipsModelValidations
13
+ end
14
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddCachedCommentMetadataToDebates < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :decidim_debates_debates, :last_comment_at, :datetime
6
+ add_column :decidim_debates_debates, :last_comment_by_id, :integer
7
+ add_column :decidim_debates_debates, :last_comment_by_type, :string
8
+
9
+ # rubocop:disable Rails/SkipsModelValidations
10
+ Decidim::Debates::Debate.reset_column_information
11
+ Decidim::Debates::Debate.includes(comments: [:author, :user_group]).find_each do |debate|
12
+ last_comment = debate.comments.order("created_at DESC").first
13
+ next unless last_comment
14
+
15
+ debate.update_columns(
16
+ last_comment_at: last_comment.created_at,
17
+ last_comment_by_id: last_comment.decidim_author_id,
18
+ last_comment_by_type: last_comment.decidim_author_type
19
+ )
20
+ end
21
+ # rubocop:enable Rails/SkipsModelValidations
22
+ end
23
+ end
@@ -12,7 +12,9 @@ module Decidim
12
12
  paths["lib/tasks"] = nil
13
13
 
14
14
  routes do
15
- resources :debates
15
+ resources :debates do
16
+ resources :debate_closes, only: [:edit, :update]
17
+ end
16
18
  root to: "debates#index"
17
19
  end
18
20
 
@@ -8,6 +8,7 @@ Decidim.register_component(:debates) do |component|
8
8
  component.icon = "decidim/debates/icon.svg"
9
9
  component.permissions_class_name = "Decidim::Debates::Permissions"
10
10
 
11
+ component.query_type = "Decidim::Debates::DebatesType"
11
12
  component.data_portable_entities = ["Decidim::Debates::Debate"]
12
13
 
13
14
  component.newsletter_participant_entities = ["Decidim::Debates::Debate"]
@@ -17,11 +18,16 @@ Decidim.register_component(:debates) do |component|
17
18
  end
18
19
 
19
20
  component.settings(:global) do |settings|
21
+ settings.attribute :scopes_enabled, type: :boolean, default: false
22
+ settings.attribute :scope_id, type: :scope
20
23
  settings.attribute :comments_enabled, type: :boolean, default: true
24
+ settings.attribute :comments_max_length, type: :integer, required: false
21
25
  settings.attribute :announcement, type: :text, translated: true, editor: true
22
26
  end
23
27
 
24
28
  component.settings(:step) do |settings|
29
+ settings.attribute :endorsements_enabled, type: :boolean, default: true
30
+ settings.attribute :endorsements_blocked, type: :boolean
25
31
  settings.attribute :creation_enabled, type: :boolean, default: false
26
32
  settings.attribute :comments_blocked, type: :boolean, default: false
27
33
  settings.attribute :announcement, type: :text, translated: true, editor: true
@@ -31,12 +37,24 @@ Decidim.register_component(:debates) do |component|
31
37
  Decidim::Debates::Debate.where(component: components).not_hidden.count
32
38
  end
33
39
 
40
+ component.register_stat :followers_count, tag: :followers, priority: Decidim::StatsRegistry::LOW_PRIORITY do |components, _start_at, _end_at|
41
+ debates_ids = Decidim::Debates::Debate.where(component: components).not_hidden.pluck(:id)
42
+ Decidim::Follow.where(decidim_followable_type: "Decidim::Debates::Debate", decidim_followable_id: debates_ids).count
43
+ end
44
+
45
+ component.register_stat :endorsements_count, priority: Decidim::StatsRegistry::MEDIUM_PRIORITY do |components, _start_at, _end_at|
46
+ debates_ids = Decidim::Debates::Debate.where(component: components).not_hidden.pluck(:id)
47
+ Decidim::Endorsement.where(resource_id: debates_ids, resource_type: Decidim::Debates::Debate.name).count
48
+ end
49
+
34
50
  component.register_resource(:debate) do |resource|
35
51
  resource.model_class_name = "Decidim::Debates::Debate"
36
52
  resource.card = "decidim/debates/debate"
53
+ resource.searchable = true
54
+ resource.actions = %w(create endorse)
37
55
  end
38
56
 
39
- component.actions = %w(create)
57
+ component.actions = %w(create endorse)
40
58
 
41
59
  component.seeds do |participatory_space|
42
60
  admin_user = Decidim::User.find_by(
@@ -44,6 +62,11 @@ Decidim.register_component(:debates) do |component|
44
62
  email: "admin@example.org"
45
63
  )
46
64
 
65
+ user = Decidim::User.find_by(
66
+ organization: participatory_space.organization,
67
+ email: "user@example.org"
68
+ )
69
+
47
70
  params = {
48
71
  name: Decidim::Components::Namer.new(participatory_space.organization.available_locales, :debates).i18n_name,
49
72
  manifest_name: :debates,
@@ -85,5 +108,32 @@ Decidim.register_component(:debates) do |component|
85
108
 
86
109
  Decidim::Comments::Seed.comments_for(debate)
87
110
  end
111
+
112
+ closed_debate = Decidim::Debates::Debate.last
113
+ closed_debate.conclusions = Decidim::Faker::Localized.wrapped("<p>", "</p>") do
114
+ Decidim::Faker::Localized.paragraph(3)
115
+ end
116
+ closed_debate.closed_at = Time.current
117
+ closed_debate.save!
118
+
119
+ params = {
120
+ component: component,
121
+ category: participatory_space.categories.sample,
122
+ title: Decidim::Faker::Localized.sentence(2),
123
+ description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
124
+ Decidim::Faker::Localized.paragraph(3)
125
+ end,
126
+ instructions: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
127
+ Decidim::Faker::Localized.paragraph(3)
128
+ end,
129
+ author: user
130
+ }
131
+
132
+ Decidim.traceability.create!(
133
+ Decidim::Debates::Debate,
134
+ user,
135
+ params,
136
+ visibility: "all"
137
+ )
88
138
  end
89
139
  end
@@ -12,7 +12,13 @@ module Decidim
12
12
  isolate_namespace Decidim::Debates
13
13
 
14
14
  routes do
15
- resources :debates, only: [:index, :show, :new, :create]
15
+ resources :debates, except: [:destroy] do
16
+ member do
17
+ post :close
18
+ end
19
+ resources :versions, only: [:show, :index]
20
+ resource :widget, only: :show, path: "embed"
21
+ end
16
22
  root to: "debates#index"
17
23
  end
18
24
 
@@ -10,8 +10,6 @@ FactoryBot.define do
10
10
  description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_debate_title } }
11
11
  information_updates { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_debate_title } }
12
12
  instructions { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_debate_title } }
13
- start_time { 1.day.from_now }
14
- end_time { start_time.advance(hours: 2) }
15
13
  component { build(:component, manifest_name: "debates") }
16
14
  author { component.try(:organization) }
17
15
 
@@ -20,20 +18,37 @@ FactoryBot.define do
20
18
  end_time { 1.day.from_now }
21
19
  end
22
20
 
23
- trait :with_author do
21
+ trait :citizen_author do
22
+ start_time { nil }
23
+ end_time { nil }
24
24
  author do
25
25
  build(:user, organization: component.organization) if component
26
26
  end
27
27
  end
28
28
 
29
- trait :with_user_group_author do
29
+ trait :official do
30
+ author { component.try(:organization) }
31
+ end
32
+
33
+ trait :user_group_author do
30
34
  author do
31
- build(:user, organization: component.organization) if component
35
+ create(:user, organization: component.organization) if component
32
36
  end
37
+
33
38
  user_group do
34
- build(:user_group, :verified, organization: component.organization, users: [author]) if component
39
+ create(:user_group, :verified, organization: component.organization, users: [author]) if component
35
40
  end
36
41
  end
42
+
43
+ trait :closed do
44
+ closed_at { Time.current }
45
+ conclusions { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_debate_title } }
46
+ end
47
+
48
+ after(:build) do |debate|
49
+ debate.title = Decidim::ContentProcessor.parse_with_processor(:hashtag, debate.title, current_organization: debate.organization).rewrite
50
+ debate.description = Decidim::ContentProcessor.parse_with_processor(:hashtag, debate.description, current_organization: debate.organization).rewrite
51
+ end
37
52
  end
38
53
 
39
54
  factory :debates_component, parent: :component do
@@ -46,6 +61,16 @@ FactoryBot.define do
46
61
  }
47
62
  end
48
63
 
64
+ trait :with_comments_blocked do
65
+ step_settings do
66
+ {
67
+ participatory_space.active_step.id => {
68
+ comments_blocked: true
69
+ }
70
+ }
71
+ end
72
+ end
73
+
49
74
  trait :with_creation_enabled do
50
75
  step_settings do
51
76
  {
@@ -53,5 +78,36 @@ FactoryBot.define do
53
78
  }
54
79
  end
55
80
  end
81
+
82
+ trait :with_votes_enabled do
83
+ # Needed for endorsements tests
84
+ end
85
+
86
+ trait :with_endorsements_blocked do
87
+ step_settings do
88
+ {
89
+ participatory_space.active_step.id => {
90
+ endorsements_enabled: true,
91
+ endorsements_blocked: true
92
+ }
93
+ }
94
+ end
95
+ end
96
+
97
+ trait :with_endorsements_enabled do
98
+ step_settings do
99
+ {
100
+ participatory_space.active_step.id => { endorsements_enabled: true }
101
+ }
102
+ end
103
+ end
104
+
105
+ trait :with_endorsements_disabled do
106
+ step_settings do
107
+ {
108
+ participatory_space.active_step.id => { endorsements_enabled: false }
109
+ }
110
+ end
111
+ end
56
112
  end
57
113
  end
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-debates version.
5
5
  module Debates
6
6
  def self.version
7
- "0.19.1"
7
+ "0.23.0"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-debates
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.1
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2019-12-13 00:00:00.000000000 Z
14
+ date: 2020-11-05 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: decidim-comments
@@ -19,42 +19,48 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 0.19.1
22
+ version: 0.23.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.19.1
29
+ version: 0.23.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: decidim-core
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - '='
35
35
  - !ruby/object:Gem::Version
36
- version: 0.19.1
36
+ version: 0.23.0
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - '='
42
42
  - !ruby/object:Gem::Version
43
- version: 0.19.1
43
+ version: 0.23.0
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: kaminari
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - "~>"
49
49
  - !ruby/object:Gem::Version
50
- version: '1.1'
50
+ version: '1.2'
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.2.1
51
54
  type: :runtime
52
55
  prerelease: false
53
56
  version_requirements: !ruby/object:Gem::Requirement
54
57
  requirements:
55
58
  - - "~>"
56
59
  - !ruby/object:Gem::Version
57
- version: '1.1'
60
+ version: '1.2'
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 1.2.1
58
64
  - !ruby/object:Gem::Dependency
59
65
  name: searchlight
60
66
  requirement: !ruby/object:Gem::Requirement
@@ -75,28 +81,28 @@ dependencies:
75
81
  requirements:
76
82
  - - '='
77
83
  - !ruby/object:Gem::Version
78
- version: 0.19.1
84
+ version: 0.23.0
79
85
  type: :development
80
86
  prerelease: false
81
87
  version_requirements: !ruby/object:Gem::Requirement
82
88
  requirements:
83
89
  - - '='
84
90
  - !ruby/object:Gem::Version
85
- version: 0.19.1
91
+ version: 0.23.0
86
92
  - !ruby/object:Gem::Dependency
87
93
  name: decidim-dev
88
94
  requirement: !ruby/object:Gem::Requirement
89
95
  requirements:
90
96
  - - '='
91
97
  - !ruby/object:Gem::Version
92
- version: 0.19.1
98
+ version: 0.23.0
93
99
  type: :development
94
100
  prerelease: false
95
101
  version_requirements: !ruby/object:Gem::Requirement
96
102
  requirements:
97
103
  - - '='
98
104
  - !ruby/object:Gem::Version
99
- version: 0.19.1
105
+ version: 0.23.0
100
106
  description: A debates component for decidim's participatory spaces.
101
107
  email:
102
108
  - josepjaume@gmail.com
@@ -120,18 +126,29 @@ files:
120
126
  - app/cells/decidim/debates/debate_m/single_date.erb
121
127
  - app/cells/decidim/debates/debate_m/tags.erb
122
128
  - app/cells/decidim/debates/debate_m_cell.rb
129
+ - app/commands/decidim/debates/admin/close_debate.rb
123
130
  - app/commands/decidim/debates/admin/create_debate.rb
124
131
  - app/commands/decidim/debates/admin/update_debate.rb
132
+ - app/commands/decidim/debates/close_debate.rb
125
133
  - app/commands/decidim/debates/create_debate.rb
134
+ - app/commands/decidim/debates/update_debate.rb
126
135
  - app/controllers/decidim/debates/admin/application_controller.rb
136
+ - app/controllers/decidim/debates/admin/debate_closes_controller.rb
127
137
  - app/controllers/decidim/debates/admin/debates_controller.rb
128
138
  - app/controllers/decidim/debates/application_controller.rb
129
139
  - app/controllers/decidim/debates/debates_controller.rb
140
+ - app/controllers/decidim/debates/orderable.rb
141
+ - app/controllers/decidim/debates/versions_controller.rb
142
+ - app/controllers/decidim/debates/widgets_controller.rb
143
+ - app/events/decidim/debates/close_debate_event.rb
130
144
  - app/events/decidim/debates/create_debate_event.rb
131
145
  - app/events/decidim/debates/creation_disabled_event.rb
132
146
  - app/events/decidim/debates/creation_enabled_event.rb
147
+ - app/forms/decidim/debates/admin/close_debate_form.rb
133
148
  - app/forms/decidim/debates/admin/debate_form.rb
149
+ - app/forms/decidim/debates/close_debate_form.rb
134
150
  - app/forms/decidim/debates/debate_form.rb
151
+ - app/helpers/decidim/debates/admin/application_helper.rb
135
152
  - app/helpers/decidim/debates/application_helper.rb
136
153
  - app/helpers/decidim/debates/debate_cells_helper.rb
137
154
  - app/jobs/decidim/debates/settings_change_job.rb
@@ -140,55 +157,103 @@ files:
140
157
  - app/permissions/decidim/debates/admin/permissions.rb
141
158
  - app/permissions/decidim/debates/permissions.rb
142
159
  - app/presenters/decidim/debates/admin_log/debate_presenter.rb
160
+ - app/presenters/decidim/debates/admin_log/value_types/debate_title_description_presenter.rb
143
161
  - app/presenters/decidim/debates/debate_presenter.rb
162
+ - app/presenters/decidim/debates/log/resource_presenter.rb
144
163
  - app/presenters/decidim/debates/official_author_presenter.rb
145
164
  - app/queries/decidim/debates/metrics/debate_followers_metric_measure.rb
146
165
  - app/queries/decidim/debates/metrics/debate_participants_metric_measure.rb
147
166
  - app/queries/decidim/debates/metrics/debates_metric_manage.rb
148
167
  - app/serializers/decidim/debates/data_portability_debate_serializer.rb
149
168
  - app/services/decidim/debates/debate_search.rb
169
+ - app/services/decidim/debates/diff_renderer.rb
170
+ - app/types/decidim/debates/debate_type.rb
171
+ - app/types/decidim/debates/debates_type.rb
172
+ - app/views/decidim/debates/admin/debate_closes/edit.html.erb
150
173
  - app/views/decidim/debates/admin/debates/_form.html.erb
151
174
  - app/views/decidim/debates/admin/debates/edit.html.erb
152
175
  - app/views/decidim/debates/admin/debates/index.html.erb
153
176
  - app/views/decidim/debates/admin/debates/new.html.erb
177
+ - app/views/decidim/debates/debates/_close_debate_modal.html.erb
154
178
  - app/views/decidim/debates/debates/_count.html.erb
155
179
  - app/views/decidim/debates/debates/_debate.html.erb
156
180
  - app/views/decidim/debates/debates/_debates.html.erb
157
181
  - app/views/decidim/debates/debates/_filters.html.erb
158
182
  - app/views/decidim/debates/debates/_filters_small_view.html.erb
183
+ - app/views/decidim/debates/debates/_form.html.erb
184
+ - app/views/decidim/debates/debates/edit.html.erb
159
185
  - app/views/decidim/debates/debates/index.html.erb
160
186
  - app/views/decidim/debates/debates/index.js.erb
161
187
  - app/views/decidim/debates/debates/new.html.erb
162
188
  - app/views/decidim/debates/debates/show.html.erb
189
+ - app/views/decidim/debates/versions/index.html.erb
190
+ - app/views/decidim/debates/versions/show.html.erb
191
+ - config/locales/am-ET.yml
163
192
  - config/locales/ar-SA.yml
164
193
  - config/locales/ar.yml
194
+ - config/locales/bg-BG.yml
195
+ - config/locales/bg.yml
165
196
  - config/locales/ca.yml
166
197
  - config/locales/cs-CZ.yml
167
198
  - config/locales/cs.yml
199
+ - config/locales/da-DK.yml
200
+ - config/locales/da.yml
168
201
  - config/locales/de.yml
202
+ - config/locales/el-GR.yml
203
+ - config/locales/el.yml
169
204
  - config/locales/en.yml
170
205
  - config/locales/eo-UY.yml
206
+ - config/locales/eo.yml
171
207
  - config/locales/es-MX.yml
172
208
  - config/locales/es-PY.yml
173
209
  - config/locales/es.yml
210
+ - config/locales/et-EE.yml
211
+ - config/locales/et.yml
174
212
  - config/locales/eu.yml
175
213
  - config/locales/fi-pl.yml
176
214
  - config/locales/fi-plain.yml
177
215
  - config/locales/fi.yml
216
+ - config/locales/fr-CA.yml
178
217
  - config/locales/fr.yml
218
+ - config/locales/ga-IE.yml
179
219
  - config/locales/gl.yml
220
+ - config/locales/hr-HR.yml
221
+ - config/locales/hr.yml
180
222
  - config/locales/hu.yml
181
223
  - config/locales/id-ID.yml
224
+ - config/locales/is-IS.yml
225
+ - config/locales/is.yml
182
226
  - config/locales/it.yml
227
+ - config/locales/ja-JP.yml
228
+ - config/locales/ja.yml
229
+ - config/locales/ko-KR.yml
230
+ - config/locales/ko.yml
231
+ - config/locales/lt-LT.yml
232
+ - config/locales/lt.yml
233
+ - config/locales/lv.yml
234
+ - config/locales/mt-MT.yml
235
+ - config/locales/mt.yml
183
236
  - config/locales/nl.yml
184
237
  - config/locales/no.yml
238
+ - config/locales/om-ET.yml
185
239
  - config/locales/pl.yml
186
240
  - config/locales/pt-BR.yml
187
241
  - config/locales/pt.yml
242
+ - config/locales/ro-RO.yml
188
243
  - config/locales/ru.yml
244
+ - config/locales/sk-SK.yml
245
+ - config/locales/sk.yml
246
+ - config/locales/sl.yml
247
+ - config/locales/so-SO.yml
248
+ - config/locales/sr-CS.yml
189
249
  - config/locales/sv.yml
250
+ - config/locales/ti-ER.yml
190
251
  - config/locales/tr-TR.yml
191
252
  - config/locales/uk.yml
253
+ - config/locales/vi-VN.yml
254
+ - config/locales/vi.yml
255
+ - config/locales/zh-CN.yml
256
+ - config/locales/zh-TW.yml
192
257
  - db/migrate/20170118141619_create_debates.rb
193
258
  - db/migrate/20180117100413_add_debate_information_updates.rb
194
259
  - db/migrate/20180118132243_add_author_to_debates.rb
@@ -198,6 +263,12 @@ files:
198
263
  - db/migrate/20180305133556_rename_features_to_components_at_debates.rb
199
264
  - db/migrate/20181003081235_fix_user_groups_ids_on_debates.rb
200
265
  - db/migrate/20181016132850_add_organization_as_author_to_debates.rb
266
+ - db/migrate/20200320105918_index_foreign_keys_in_decidim_debates_debates.rb
267
+ - db/migrate/20200703134657_close_debates.rb
268
+ - db/migrate/20200708072042_fix_debates_i18n_fields.rb
269
+ - db/migrate/20200716143929_add_endorsable_to_debates.rb
270
+ - db/migrate/20200827154116_add_commentable_counter_cache_to_debates.rb
271
+ - db/migrate/20200902133452_add_cached_comment_metadata_to_debates.rb
201
272
  - lib/decidim/debates.rb
202
273
  - lib/decidim/debates/admin.rb
203
274
  - lib/decidim/debates/admin_engine.rb
@@ -217,7 +288,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
288
  requirements:
218
289
  - - ">="
219
290
  - !ruby/object:Gem::Version
220
- version: '2.5'
291
+ version: '2.6'
221
292
  required_rubygems_version: !ruby/object:Gem::Requirement
222
293
  requirements:
223
294
  - - ">="