decidim-debates 0.23.5 → 0.24.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/admin/decidim_debates_manifest.js +1 -0
  3. data/app/assets/javascripts/decidim/debates/admin/debates.js.es6 +25 -0
  4. data/app/cells/decidim/debates/debate_m/open_date.erb +7 -0
  5. data/app/cells/decidim/debates/debate_m_cell.rb +1 -1
  6. data/app/cells/decidim/debates/reported_content/show.erb +4 -0
  7. data/app/cells/decidim/debates/reported_content_cell.rb +13 -0
  8. data/app/commands/decidim/debates/admin/create_debate.rb +3 -2
  9. data/app/commands/decidim/debates/admin/update_debate.rb +2 -1
  10. data/app/commands/decidim/debates/create_debate.rb +1 -0
  11. data/app/commands/decidim/debates/update_debate.rb +2 -1
  12. data/app/controllers/decidim/debates/debates_controller.rb +1 -5
  13. data/app/forms/decidim/debates/admin/close_debate_form.rb +1 -1
  14. data/app/forms/decidim/debates/admin/debate_form.rb +30 -2
  15. data/app/forms/decidim/debates/close_debate_form.rb +1 -1
  16. data/app/forms/decidim/debates/debate_form.rb +17 -0
  17. data/app/models/decidim/debates/debate.rb +11 -1
  18. data/app/permissions/decidim/debates/admin/permissions.rb +8 -1
  19. data/app/views/decidim/debates/admin/debates/_form.html.erb +15 -2
  20. data/app/views/decidim/debates/admin/debates/index.html.erb +10 -2
  21. data/app/views/decidim/debates/debates/_filters.html.erb +1 -1
  22. data/app/views/decidim/debates/debates/_filters_small_view.html.erb +1 -1
  23. data/app/views/decidim/debates/debates/_form.html.erb +6 -0
  24. data/app/views/decidim/debates/debates/show.html.erb +5 -21
  25. data/config/locales/ca.yml +17 -4
  26. data/config/locales/cs.yml +17 -4
  27. data/config/locales/de.yml +18 -5
  28. data/config/locales/en.yml +17 -4
  29. data/config/locales/es-MX.yml +17 -4
  30. data/config/locales/es-PY.yml +17 -4
  31. data/config/locales/es.yml +17 -4
  32. data/config/locales/fi-plain.yml +17 -4
  33. data/config/locales/fi.yml +17 -4
  34. data/config/locales/fr-CA.yml +17 -4
  35. data/config/locales/fr.yml +17 -4
  36. data/config/locales/gl.yml +10 -4
  37. data/config/locales/ja.yml +10 -4
  38. data/config/locales/nl.yml +17 -4
  39. data/config/locales/no.yml +10 -4
  40. data/config/locales/pl.yml +17 -4
  41. data/config/locales/ro-RO.yml +15 -3
  42. data/config/locales/sv.yml +20 -4
  43. data/config/locales/tr-TR.yml +17 -4
  44. data/config/locales/zh-CN.yml +10 -4
  45. data/db/migrate/20200930145546_add_scope_to_debates_debate.rb +7 -0
  46. data/db/migrate/20201126112752_archive_debates.rb +8 -0
  47. data/db/migrate/20210125101735_revert_archive_debates.rb +8 -0
  48. data/db/migrate/20210310120652_add_followable_counter_cache_to_debates.rb +16 -0
  49. data/lib/decidim/api/debate_type.rb +26 -0
  50. data/lib/decidim/api/debates_type.rb +26 -0
  51. data/lib/decidim/debates.rb +1 -0
  52. data/lib/decidim/debates/admin_engine.rb +4 -0
  53. data/lib/decidim/debates/api.rb +8 -0
  54. data/lib/decidim/debates/component.rb +22 -10
  55. data/lib/decidim/debates/test/factories.rb +1 -1
  56. data/lib/decidim/debates/version.rb +1 -1
  57. metadata +24 -14
  58. data/app/types/decidim/debates/debate_type.rb +0 -28
  59. data/app/types/decidim/debates/debates_type.rb +0 -32
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Debates
5
+ class DebatesType < Decidim::Api::Types::BaseObject
6
+ implements Decidim::Core::ComponentInterface
7
+
8
+ graphql_name "Debates"
9
+ description "A debates component of a participatory space."
10
+
11
+ field :debates, Decidim::Debates::DebateType.connection_type, null: true, connection: true
12
+
13
+ def debates
14
+ Debate.where(component: object).includes(:component)
15
+ end
16
+
17
+ field :debate, Decidim::Debates::DebateType, null: true do
18
+ argument :id, GraphQL::Types::ID, required: true
19
+ end
20
+
21
+ def debate(**args)
22
+ Debate.where(component: object).find_by(id: args[:id])
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "decidim/debates/admin"
4
+ require "decidim/debates/api"
4
5
  require "decidim/debates/engine"
5
6
  require "decidim/debates/admin_engine"
6
7
  require "decidim/debates/component"
@@ -21,6 +21,10 @@ module Decidim
21
21
  def load_seed
22
22
  nil
23
23
  end
24
+
25
+ initializer "decidim_debates.admin_assets" do |app|
26
+ app.config.assets.precompile += %w(admin/decidim_debates_manifest.js)
27
+ end
24
28
  end
25
29
  end
26
30
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Debates
5
+ autoload :DebateType, "decidim/api/debate_type"
6
+ autoload :DebatesType, "decidim/api/debates_type"
7
+ end
8
+ end
@@ -50,12 +50,23 @@ Decidim.register_component(:debates) do |component|
50
50
  component.register_resource(:debate) do |resource|
51
51
  resource.model_class_name = "Decidim::Debates::Debate"
52
52
  resource.card = "decidim/debates/debate"
53
+ resource.reported_content_cell = "decidim/debates/reported_content"
53
54
  resource.searchable = true
54
55
  resource.actions = %w(create endorse)
55
56
  end
56
57
 
57
58
  component.actions = %w(create endorse)
58
59
 
60
+ component.exports :comments do |exports|
61
+ exports.collection do |component_instance|
62
+ Decidim::Comments::Export.comments_for_resource(
63
+ Decidim::Debates::Debate, component_instance
64
+ )
65
+ end
66
+
67
+ exports.serializer Decidim::Comments::CommentSerializer
68
+ end
69
+
59
70
  component.seeds do |participatory_space|
60
71
  admin_user = Decidim::User.find_by(
61
72
  organization: participatory_space.organization,
@@ -83,19 +94,20 @@ Decidim.register_component(:debates) do |component|
83
94
  Decidim::Component.create!(params)
84
95
  end
85
96
 
86
- 3.times do
97
+ 5.times do |x|
98
+ finite = x != 2
87
99
  params = {
88
100
  component: component,
89
101
  category: participatory_space.categories.sample,
90
- title: Decidim::Faker::Localized.sentence(2),
102
+ title: Decidim::Faker::Localized.sentence(word_count: 2),
91
103
  description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
92
- Decidim::Faker::Localized.paragraph(3)
104
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
93
105
  end,
94
106
  instructions: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
95
- Decidim::Faker::Localized.paragraph(3)
107
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
96
108
  end,
97
- start_time: 3.weeks.from_now,
98
- end_time: 3.weeks.from_now + 4.hours,
109
+ start_time: (3.weeks.from_now if finite),
110
+ end_time: (3.weeks.from_now + 4.hours if finite),
99
111
  author: component.organization
100
112
  }
101
113
 
@@ -111,7 +123,7 @@ Decidim.register_component(:debates) do |component|
111
123
 
112
124
  closed_debate = Decidim::Debates::Debate.last
113
125
  closed_debate.conclusions = Decidim::Faker::Localized.wrapped("<p>", "</p>") do
114
- Decidim::Faker::Localized.paragraph(3)
126
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
115
127
  end
116
128
  closed_debate.closed_at = Time.current
117
129
  closed_debate.save!
@@ -119,12 +131,12 @@ Decidim.register_component(:debates) do |component|
119
131
  params = {
120
132
  component: component,
121
133
  category: participatory_space.categories.sample,
122
- title: Decidim::Faker::Localized.sentence(2),
134
+ title: Decidim::Faker::Localized.sentence(word_count: 2),
123
135
  description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
124
- Decidim::Faker::Localized.paragraph(3)
136
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
125
137
  end,
126
138
  instructions: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
127
- Decidim::Faker::Localized.paragraph(3)
139
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
128
140
  end,
129
141
  author: user
130
142
  }
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  def generate_localized_debate_title
4
- Decidim::Faker::Localized.localized { "<script>alert(\"TITLE\");</script> " + generate(:title) }
4
+ Decidim::Faker::Localized.localized { "<script>alert(\"TITLE\");</script> #{generate(:title)}" }
5
5
  end
6
6
 
7
7
  FactoryBot.define do
@@ -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.23.5"
7
+ "0.24.2"
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.23.5
4
+ version: 0.24.2
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: 2021-04-08 00:00:00.000000000 Z
14
+ date: 2021-05-07 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: decidim-comments
@@ -19,28 +19,28 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 0.23.5
22
+ version: 0.24.2
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.23.5
29
+ version: 0.24.2
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.23.5
36
+ version: 0.24.2
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.23.5
43
+ version: 0.24.2
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: kaminari
46
46
  requirement: !ruby/object:Gem::Requirement
@@ -81,28 +81,28 @@ dependencies:
81
81
  requirements:
82
82
  - - '='
83
83
  - !ruby/object:Gem::Version
84
- version: 0.23.5
84
+ version: 0.24.2
85
85
  type: :development
86
86
  prerelease: false
87
87
  version_requirements: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - '='
90
90
  - !ruby/object:Gem::Version
91
- version: 0.23.5
91
+ version: 0.24.2
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: decidim-dev
94
94
  requirement: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - '='
97
97
  - !ruby/object:Gem::Version
98
- version: 0.23.5
98
+ version: 0.24.2
99
99
  type: :development
100
100
  prerelease: false
101
101
  version_requirements: !ruby/object:Gem::Requirement
102
102
  requirements:
103
103
  - - '='
104
104
  - !ruby/object:Gem::Version
105
- version: 0.23.5
105
+ version: 0.24.2
106
106
  description: A debates component for decidim's participatory spaces.
107
107
  email:
108
108
  - josepjaume@gmail.com
@@ -115,17 +115,22 @@ extra_rdoc_files: []
115
115
  files:
116
116
  - README.md
117
117
  - Rakefile
118
+ - app/assets/config/admin/decidim_debates_manifest.js
118
119
  - app/assets/config/decidim_debates_manifest.js
119
120
  - app/assets/images/decidim/debates/icon.svg
120
121
  - app/assets/images/decidim/gamification/badges/commented_debates.svg
122
+ - app/assets/javascripts/decidim/debates/admin/debates.js.es6
121
123
  - app/cells/decidim/debates/debate_activity_cell.rb
122
124
  - app/cells/decidim/debates/debate_cell.rb
123
125
  - app/cells/decidim/debates/debate_m/data.erb
124
126
  - app/cells/decidim/debates/debate_m/footer.erb
125
127
  - app/cells/decidim/debates/debate_m/multiple_dates.erb
128
+ - app/cells/decidim/debates/debate_m/open_date.erb
126
129
  - app/cells/decidim/debates/debate_m/single_date.erb
127
130
  - app/cells/decidim/debates/debate_m/tags.erb
128
131
  - app/cells/decidim/debates/debate_m_cell.rb
132
+ - app/cells/decidim/debates/reported_content/show.erb
133
+ - app/cells/decidim/debates/reported_content_cell.rb
129
134
  - app/commands/decidim/debates/admin/close_debate.rb
130
135
  - app/commands/decidim/debates/admin/create_debate.rb
131
136
  - app/commands/decidim/debates/admin/update_debate.rb
@@ -167,8 +172,6 @@ files:
167
172
  - app/serializers/decidim/debates/data_portability_debate_serializer.rb
168
173
  - app/services/decidim/debates/debate_search.rb
169
174
  - app/services/decidim/debates/diff_renderer.rb
170
- - app/types/decidim/debates/debate_type.rb
171
- - app/types/decidim/debates/debates_type.rb
172
175
  - app/views/decidim/debates/admin/debate_closes/edit.html.erb
173
176
  - app/views/decidim/debates/admin/debates/_form.html.erb
174
177
  - app/views/decidim/debates/admin/debates/edit.html.erb
@@ -271,9 +274,16 @@ files:
271
274
  - db/migrate/20200716143929_add_endorsable_to_debates.rb
272
275
  - db/migrate/20200827154116_add_commentable_counter_cache_to_debates.rb
273
276
  - db/migrate/20200902133452_add_cached_comment_metadata_to_debates.rb
277
+ - db/migrate/20200930145546_add_scope_to_debates_debate.rb
278
+ - db/migrate/20201126112752_archive_debates.rb
279
+ - db/migrate/20210125101735_revert_archive_debates.rb
280
+ - db/migrate/20210310120652_add_followable_counter_cache_to_debates.rb
281
+ - lib/decidim/api/debate_type.rb
282
+ - lib/decidim/api/debates_type.rb
274
283
  - lib/decidim/debates.rb
275
284
  - lib/decidim/debates/admin.rb
276
285
  - lib/decidim/debates/admin_engine.rb
286
+ - lib/decidim/debates/api.rb
277
287
  - lib/decidim/debates/component.rb
278
288
  - lib/decidim/debates/engine.rb
279
289
  - lib/decidim/debates/test/factories.rb
@@ -290,14 +300,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
290
300
  requirements:
291
301
  - - ">="
292
302
  - !ruby/object:Gem::Version
293
- version: '2.6'
303
+ version: '2.7'
294
304
  required_rubygems_version: !ruby/object:Gem::Requirement
295
305
  requirements:
296
306
  - - ">="
297
307
  - !ruby/object:Gem::Version
298
308
  version: '0'
299
309
  requirements: []
300
- rubygems_version: 3.0.3
310
+ rubygems_version: 3.1.2
301
311
  signing_key:
302
312
  specification_version: 4
303
313
  summary: Decidim debates module
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Debates
5
- DebateType = GraphQL::ObjectType.define do
6
- interfaces [
7
- -> { Decidim::Core::CategorizableInterface },
8
- -> { Decidim::Comments::CommentableInterface },
9
- -> { Decidim::Core::AuthorableInterface }
10
- ]
11
-
12
- name "Debate"
13
- description "A debate"
14
-
15
- field :id, !types.ID, "The internal ID for this debate"
16
- field :title, Decidim::Core::TranslatedFieldType, "The title for this debate"
17
- field :description, Decidim::Core::TranslatedFieldType, "The description for this debate"
18
- field :instructions, Decidim::Core::TranslatedFieldType, "The instructions for this debate"
19
- field :startTime, Decidim::Core::DateTimeType, "The start time for this debate", property: :start_time
20
- field :endTime, Decidim::Core::DateTimeType, "The end time for this debate", property: :end_time
21
- field :image, types.String, "The image of this debate"
22
- field :createdAt, Decidim::Core::DateTimeType, "When this debate was created", property: :created_at
23
- field :updatedAt, Decidim::Core::DateTimeType, "When this debate was updated", property: :updated_at
24
- field :informationUpdates, Decidim::Core::TranslatedFieldType, "The information updates for this debate", property: :information_updates
25
- field :reference, types.String, "The reference for this debate"
26
- end
27
- end
28
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Debates
5
- DebatesType = GraphQL::ObjectType.define do
6
- interfaces [-> { Decidim::Core::ComponentInterface }]
7
-
8
- name "Debates"
9
- description "A debates component of a participatory space."
10
-
11
- connection :debates, DebateType.connection_type do
12
- resolve ->(component, _args, _ctx) {
13
- DebatesTypeHelper.base_scope(component).includes(:component)
14
- }
15
- end
16
-
17
- field(:debate, DebateType) do
18
- argument :id, !types.ID
19
-
20
- resolve ->(component, args, _ctx) {
21
- DebatesTypeHelper.base_scope(component).find_by(id: args[:id])
22
- }
23
- end
24
- end
25
-
26
- module DebatesTypeHelper
27
- def self.base_scope(component)
28
- Debate.where(component: component)
29
- end
30
- end
31
- end
32
- end