decidim-proposals 0.27.6 → 0.27.7

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/decidim/proposals/application_helper.rb +1 -1
  3. data/app/presenters/decidim/proposals/admin_log/proposal_presenter.rb +1 -5
  4. data/app/presenters/decidim/proposals/admin_log/value_types/proposal_title_body_presenter.rb +1 -3
  5. data/app/presenters/decidim/proposals/log/valuation_assignment_presenter.rb +1 -1
  6. data/config/locales/ar.yml +1 -2
  7. data/config/locales/bg.yml +594 -1
  8. data/config/locales/ca.yml +8 -8
  9. data/config/locales/cs.yml +0 -1
  10. data/config/locales/de.yml +1 -1
  11. data/config/locales/el.yml +0 -1
  12. data/config/locales/es-MX.yml +2 -2
  13. data/config/locales/es-PY.yml +1 -1
  14. data/config/locales/es.yml +4 -4
  15. data/config/locales/eu.yml +1 -1
  16. data/config/locales/fr-CA.yml +1 -1
  17. data/config/locales/fr.yml +1 -1
  18. data/config/locales/ga-IE.yml +6 -0
  19. data/config/locales/gl.yml +1 -2
  20. data/config/locales/hu.yml +1 -2
  21. data/config/locales/id-ID.yml +0 -1
  22. data/config/locales/is-IS.yml +0 -2
  23. data/config/locales/it.yml +1 -2
  24. data/config/locales/lt.yml +0 -1
  25. data/config/locales/lv.yml +0 -1
  26. data/config/locales/nl.yml +1 -2
  27. data/config/locales/no.yml +0 -1
  28. data/config/locales/pl.yml +62 -1
  29. data/config/locales/pt-BR.yml +0 -1
  30. data/config/locales/pt.yml +0 -1
  31. data/config/locales/ru.yml +1 -2
  32. data/config/locales/sk.yml +0 -1
  33. data/config/locales/sv.yml +0 -1
  34. data/config/locales/tr-TR.yml +2 -2
  35. data/config/locales/uk.yml +1 -2
  36. data/config/locales/zh-CN.yml +0 -1
  37. data/config/locales/zh-TW.yml +0 -1
  38. data/lib/decidim/proposals/proposal_serializer.rb +51 -0
  39. data/lib/decidim/proposals/test/factories.rb +13 -1
  40. data/lib/decidim/proposals/version.rb +1 -1
  41. metadata +24 -25
  42. data/app/presenters/decidim/proposals/log/resource_presenter.rb +0 -22
@@ -171,7 +171,6 @@ zh-TW:
171
171
  proposal_wizard_step_1_help_text: 提案向導「創建」步驟說明文字
172
172
  proposal_wizard_step_2_help_text: 提案向導「比較」步驟說明文字
173
173
  proposal_wizard_step_3_help_text: 提案向導「完成」步驟說明文字
174
- proposal_wizard_step_4_help_text: 提案向導「發佈」步驟說明文字
175
174
  resources_permissions_enabled: 每個提案都可以設定行動權限
176
175
  scope_id: 範圍
177
176
  scopes_enabled: 啟用範圍
@@ -19,6 +19,9 @@ module Decidim
19
19
  def serialize
20
20
  {
21
21
  id: proposal.id,
22
+ author: {
23
+ **author_fields
24
+ },
22
25
  category: {
23
26
  id: proposal.category.try(:id),
24
27
  name: proposal.category.try(:name) || empty_translatable
@@ -102,6 +105,54 @@ module Decidim
102
105
 
103
106
  convert_to_text(value)
104
107
  end
108
+
109
+ def author_fields
110
+ is_author_user_group = resource.coauthorships.map(&:decidim_user_group_id).any?
111
+
112
+ {
113
+ id: resource.authors.map(&:id),
114
+ name: resource.authors.map do |author|
115
+ author_name(is_author_user_group ? resource.coauthorships.first.user_group : author)
116
+ end,
117
+ url: resource.authors.map do |author|
118
+ author_url(is_author_user_group ? resource.coauthorships.first.user_group : author)
119
+ end
120
+ }
121
+ end
122
+
123
+ def author_name(author)
124
+ if author.respond_to?(:name)
125
+ translated_attribute(author.name) # is a Decidim::User or Decidim::Organization or Decidim::UserGroup
126
+ elsif author.respond_to?(:title)
127
+ translated_attribute(author.title) # is a Decidim::Meetings::Meeting
128
+ end
129
+ end
130
+
131
+ def author_url(author)
132
+ if author.respond_to?(:nickname)
133
+ profile_url(author.nickname) # is a Decidim::User or Decidim::UserGroup
134
+ elsif author.respond_to?(:title)
135
+ meeting_url(author) # is a Decidim::Meetings::Meeting
136
+ else
137
+ root_url # is a Decidim::Organization
138
+ end
139
+ end
140
+
141
+ def profile_url(nickname)
142
+ Decidim::Core::Engine.routes.url_helpers.profile_url(nickname, host: host)
143
+ end
144
+
145
+ def meeting_url(meeting)
146
+ Decidim::EngineRouter.main_proxy(meeting.component).meeting_url(id: meeting.id, host: host)
147
+ end
148
+
149
+ def root_url
150
+ Decidim::Core::Engine.routes.url_helpers.root_url(host: host)
151
+ end
152
+
153
+ def host
154
+ resource.organization.host
155
+ end
105
156
  end
106
157
  end
107
158
  end
@@ -409,6 +409,12 @@ FactoryBot.define do
409
409
  proposal.attachments << create(:attachment, :with_pdf, attached_to: proposal, skip_injection: evaluator.skip_injection)
410
410
  end
411
411
  end
412
+
413
+ trait :moderated do
414
+ after(:create) do |proposal, evaluator|
415
+ create(:moderation, reportable: proposal, hidden_at: 2.days.ago, skip_injection: evaluator.skip_injection)
416
+ end
417
+ end
412
418
  end
413
419
 
414
420
  factory :proposal_vote, class: "Decidim::Proposals::ProposalVote" do
@@ -433,7 +439,13 @@ FactoryBot.define do
433
439
  transient do
434
440
  skip_injection { false }
435
441
  end
436
- body { Faker::Lorem.sentences(number: 3).join("\n") }
442
+ body do
443
+ if skip_injection
444
+ generate(:title)
445
+ else
446
+ "<script>alert(\"proposal_note_body\");</script> #{generate(:title)}"
447
+ end
448
+ end
437
449
  proposal { build(:proposal, skip_injection: skip_injection) }
438
450
  author { build(:user, organization: proposal.organization, skip_injection: skip_injection) }
439
451
  end
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds decidim-proposals version.
5
5
  module Proposals
6
6
  def self.version
7
- "0.27.6"
7
+ "0.27.7"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-proposals
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.6
4
+ version: 0.27.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
8
8
  - Marc Riera Casals
9
9
  - Oriol Gual Oliva
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-04-30 00:00:00.000000000 Z
13
+ date: 2024-07-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: decidim-comments
@@ -18,28 +18,28 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.27.6
21
+ version: 0.27.7
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 0.27.6
28
+ version: 0.27.7
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: decidim-core
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.27.6
35
+ version: 0.27.7
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.27.6
42
+ version: 0.27.7
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: doc2text
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -80,98 +80,98 @@ dependencies:
80
80
  requirements:
81
81
  - - '='
82
82
  - !ruby/object:Gem::Version
83
- version: 0.27.6
83
+ version: 0.27.7
84
84
  type: :development
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - '='
89
89
  - !ruby/object:Gem::Version
90
- version: 0.27.6
90
+ version: 0.27.7
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: decidim-assemblies
93
93
  requirement: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - '='
96
96
  - !ruby/object:Gem::Version
97
- version: 0.27.6
97
+ version: 0.27.7
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - '='
103
103
  - !ruby/object:Gem::Version
104
- version: 0.27.6
104
+ version: 0.27.7
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: decidim-budgets
107
107
  requirement: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - '='
110
110
  - !ruby/object:Gem::Version
111
- version: 0.27.6
111
+ version: 0.27.7
112
112
  type: :development
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - '='
117
117
  - !ruby/object:Gem::Version
118
- version: 0.27.6
118
+ version: 0.27.7
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: decidim-conference
121
121
  requirement: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - '='
124
124
  - !ruby/object:Gem::Version
125
- version: 0.27.6
125
+ version: 0.27.7
126
126
  type: :development
127
127
  prerelease: false
128
128
  version_requirements: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - '='
131
131
  - !ruby/object:Gem::Version
132
- version: 0.27.6
132
+ version: 0.27.7
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: decidim-dev
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - '='
138
138
  - !ruby/object:Gem::Version
139
- version: 0.27.6
139
+ version: 0.27.7
140
140
  type: :development
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - '='
145
145
  - !ruby/object:Gem::Version
146
- version: 0.27.6
146
+ version: 0.27.7
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: decidim-meetings
149
149
  requirement: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - '='
152
152
  - !ruby/object:Gem::Version
153
- version: 0.27.6
153
+ version: 0.27.7
154
154
  type: :development
155
155
  prerelease: false
156
156
  version_requirements: !ruby/object:Gem::Requirement
157
157
  requirements:
158
158
  - - '='
159
159
  - !ruby/object:Gem::Version
160
- version: 0.27.6
160
+ version: 0.27.7
161
161
  - !ruby/object:Gem::Dependency
162
162
  name: decidim-participatory_processes
163
163
  requirement: !ruby/object:Gem::Requirement
164
164
  requirements:
165
165
  - - '='
166
166
  - !ruby/object:Gem::Version
167
- version: 0.27.6
167
+ version: 0.27.7
168
168
  type: :development
169
169
  prerelease: false
170
170
  version_requirements: !ruby/object:Gem::Requirement
171
171
  requirements:
172
172
  - - '='
173
173
  - !ruby/object:Gem::Version
174
- version: 0.27.6
174
+ version: 0.27.7
175
175
  description: A proposals component for decidim's participatory spaces.
176
176
  email:
177
177
  - josepjaume@gmail.com
@@ -363,7 +363,6 @@ files:
363
363
  - app/presenters/decidim/proposals/admin_log/value_types/proposal_title_body_presenter.rb
364
364
  - app/presenters/decidim/proposals/admin_log/value_types/valuator_role_user_presenter.rb
365
365
  - app/presenters/decidim/proposals/collaborative_draft_presenter.rb
366
- - app/presenters/decidim/proposals/log/resource_presenter.rb
367
366
  - app/presenters/decidim/proposals/log/valuation_assignment_presenter.rb
368
367
  - app/presenters/decidim/proposals/official_author_presenter.rb
369
368
  - app/presenters/decidim/proposals/proposal_presenter.rb
@@ -628,7 +627,7 @@ homepage: https://github.com/decidim/decidim
628
627
  licenses:
629
628
  - AGPL-3.0
630
629
  metadata: {}
631
- post_install_message:
630
+ post_install_message:
632
631
  rdoc_options: []
633
632
  require_paths:
634
633
  - lib
@@ -643,8 +642,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
643
642
  - !ruby/object:Gem::Version
644
643
  version: '0'
645
644
  requirements: []
646
- rubygems_version: 3.2.22
647
- signing_key:
645
+ rubygems_version: 3.5.14
646
+ signing_key:
648
647
  specification_version: 4
649
648
  summary: Decidim proposals module
650
649
  test_files: []
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- module Log
6
- class ResourcePresenter < Decidim::Log::ResourcePresenter
7
- private
8
-
9
- # Private: Presents resource name.
10
- #
11
- # Returns an HTML-safe String.
12
- def present_resource_name
13
- if resource.present?
14
- Decidim::Proposals::ProposalPresenter.new(resource).title
15
- else
16
- super
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end