decidim-proposals 0.28.5 → 0.29.0.rc1

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 (179) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -18
  3. data/app/cells/decidim/proposals/cost_report_cell.rb +0 -3
  4. data/app/cells/decidim/proposals/highlighted_proposals_for_component/show.erb +11 -11
  5. data/app/cells/decidim/proposals/highlighted_proposals_for_component_cell.rb +1 -1
  6. data/app/cells/decidim/proposals/participatory_text_proposal/buttons.erb +1 -1
  7. data/app/cells/decidim/proposals/participatory_text_proposal_cell.rb +2 -3
  8. data/app/cells/decidim/proposals/proposal_cell.rb +2 -0
  9. data/app/cells/decidim/proposals/proposal_g/show.erb +23 -0
  10. data/app/cells/decidim/proposals/proposal_g_cell.rb +48 -0
  11. data/app/cells/decidim/proposals/proposal_l_cell.rb +18 -19
  12. data/app/cells/decidim/proposals/proposal_metadata_cell.rb +23 -15
  13. data/app/commands/decidim/proposals/admin/answer_proposal.rb +2 -1
  14. data/app/commands/decidim/proposals/admin/assign_proposals_to_valuator.rb +7 -5
  15. data/app/commands/decidim/proposals/admin/create_proposal.rb +4 -6
  16. data/app/commands/decidim/proposals/admin/create_proposal_state.rb +15 -0
  17. data/app/commands/decidim/proposals/admin/destroy_proposal_state.rb +10 -0
  18. data/app/commands/decidim/proposals/admin/import_proposals.rb +10 -2
  19. data/app/commands/decidim/proposals/admin/notify_proposal_answer.rb +4 -21
  20. data/app/commands/decidim/proposals/admin/unassign_proposals_from_valuator.rb +6 -4
  21. data/app/commands/decidim/proposals/admin/update_proposal_state.rb +13 -0
  22. data/app/commands/decidim/proposals/create_proposal.rb +21 -2
  23. data/app/commands/decidim/proposals/update_proposal.rb +2 -2
  24. data/app/commands/decidim/proposals/vote_proposal.rb +1 -1
  25. data/app/commands/decidim/proposals/withdraw_proposal.rb +3 -7
  26. data/app/controllers/concerns/decidim/proposals/admin/filterable.rb +10 -22
  27. data/app/controllers/decidim/proposals/admin/proposal_states_controller.rb +86 -0
  28. data/app/controllers/decidim/proposals/admin/proposals_controller.rb +4 -0
  29. data/app/controllers/decidim/proposals/admin/valuation_assignments_controller.rb +8 -11
  30. data/app/controllers/decidim/proposals/proposals_controller.rb +38 -39
  31. data/app/events/decidim/proposals/proposal_state_changed_event.rb +37 -0
  32. data/app/forms/decidim/proposals/admin/proposal_answer_form.rb +8 -4
  33. data/app/forms/decidim/proposals/admin/proposal_form.rb +1 -1
  34. data/app/forms/decidim/proposals/admin/proposal_state_form.rb +22 -0
  35. data/app/forms/decidim/proposals/admin/proposals_fork_form.rb +1 -1
  36. data/app/forms/decidim/proposals/admin/proposals_import_form.rb +1 -1
  37. data/app/forms/decidim/proposals/admin/valuation_assignment_form.rb +12 -14
  38. data/app/forms/decidim/proposals/proposal_form.rb +25 -4
  39. data/app/forms/decidim/proposals/reject_access_to_collaborative_draft_form.rb +1 -1
  40. data/app/forms/decidim/proposals/request_access_to_collaborative_draft_form.rb +1 -1
  41. data/app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb +7 -17
  42. data/app/helpers/decidim/proposals/admin/proposals_helper.rb +13 -89
  43. data/app/helpers/decidim/proposals/application_helper.rb +16 -10
  44. data/app/helpers/decidim/proposals/map_helper.rb +1 -1
  45. data/app/helpers/decidim/proposals/proposal_cells_helper.rb +6 -2
  46. data/app/helpers/decidim/proposals/proposal_votes_helper.rb +3 -3
  47. data/app/helpers/decidim/proposals/proposal_wizard_helper.rb +5 -8
  48. data/app/helpers/decidim/proposals/proposals_helper.rb +18 -24
  49. data/app/models/decidim/proposals/proposal.rb +83 -29
  50. data/app/models/decidim/proposals/proposal_state.rb +58 -0
  51. data/app/packs/documents/decidim/proposals/participatory_texts/participatory_text.md +1 -3
  52. data/app/packs/images/decidim/proposals/proposal-placeholder-card-g.svg +15 -0
  53. data/app/packs/src/decidim/proposals/add_proposal.js +2 -0
  54. data/app/packs/src/decidim/proposals/admin/proposals.js +43 -8
  55. data/app/packs/stylesheets/decidim/proposals/proposals.scss +39 -1
  56. data/app/permissions/decidim/proposals/admin/permissions.rb +16 -4
  57. data/app/permissions/decidim/proposals/permissions.rb +3 -4
  58. data/app/presenters/decidim/proposals/admin_log/proposal_state_presenter.rb +21 -0
  59. data/app/presenters/decidim/proposals/proposal_presenter.rb +12 -3
  60. data/app/queries/decidim/proposals/metrics/endorsements_metric_manage.rb +1 -1
  61. data/app/queries/decidim/proposals/metrics/proposal_followers_metric_measure.rb +1 -1
  62. data/app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb +4 -4
  63. data/app/queries/decidim/proposals/metrics/proposals_metric_manage.rb +1 -1
  64. data/app/queries/decidim/proposals/metrics/votes_metric_manage.rb +1 -1
  65. data/app/services/decidim/proposals/diff_renderer.rb +1 -3
  66. data/app/services/decidim/proposals/proposal_builder.rb +1 -1
  67. data/app/views/decidim/proposals/admin/imports/_proposals_fields.html.erb +1 -1
  68. data/app/views/decidim/proposals/admin/participatory_texts/index.html.erb +3 -2
  69. data/app/views/decidim/proposals/admin/proposal_answers/_form.html.erb +2 -2
  70. data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes.html.erb +3 -3
  71. data/app/views/decidim/proposals/admin/proposal_states/_form.html.erb +67 -0
  72. data/app/views/decidim/proposals/admin/proposal_states/edit.html.erb +18 -0
  73. data/app/views/decidim/proposals/admin/proposal_states/index.html.erb +50 -0
  74. data/app/views/decidim/proposals/admin/proposal_states/new.html.erb +18 -0
  75. data/app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb +6 -12
  76. data/app/views/decidim/proposals/admin/proposals/_form.html.erb +6 -6
  77. data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +2 -2
  78. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_assign_to_valuator.html.erb +11 -7
  79. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_dropdown.html.erb +7 -5
  80. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_merge.html.erb +2 -2
  81. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_publish_answers.html.erb +2 -2
  82. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_recategorize.html.erb +2 -2
  83. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_scope-change.html.erb +2 -2
  84. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_split.html.erb +2 -2
  85. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_unassign_from_valuator.html.erb +11 -7
  86. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_valuators_picker.html.erb +12 -0
  87. data/app/views/decidim/proposals/admin/proposals/index.html.erb +11 -7
  88. data/app/views/decidim/proposals/admin/proposals/publish_answers.js.erb +1 -1
  89. data/app/views/decidim/proposals/admin/proposals/show.html.erb +3 -2
  90. data/app/views/decidim/proposals/admin/proposals/update_attribute.js.erb +3 -3
  91. data/app/views/decidim/proposals/proposals/_edit_form_fields.html.erb +12 -5
  92. data/app/views/decidim/proposals/proposals/_proposal.html.erb +1 -1
  93. data/app/views/decidim/proposals/proposals/_proposal_aside.html.erb +1 -1
  94. data/app/views/decidim/proposals/proposals/_proposals.html.erb +9 -3
  95. data/app/views/decidim/proposals/proposals/_vote_button.html.erb +1 -1
  96. data/app/views/decidim/proposals/proposals/_voting_rules.html.erb +3 -3
  97. data/app/views/decidim/proposals/proposals/_wizard_header.html.erb +0 -1
  98. data/app/views/decidim/proposals/proposals/index.html.erb +1 -1
  99. data/app/views/decidim/proposals/proposals/index.js.erb +0 -12
  100. data/app/views/decidim/proposals/proposals/new.html.erb +2 -7
  101. data/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb +4 -4
  102. data/app/views/decidim/proposals/proposals/participatory_texts/_proposal_votes_count.html.erb +8 -8
  103. data/app/views/decidim/proposals/proposals/preview.html.erb +1 -1
  104. data/app/views/decidim/proposals/proposals/show.html.erb +3 -3
  105. data/config/locales/ar.yml +9 -115
  106. data/config/locales/bg.yml +117 -111
  107. data/config/locales/ca.yml +86 -83
  108. data/config/locales/cs.yml +65 -127
  109. data/config/locales/de.yml +128 -125
  110. data/config/locales/el.yml +8 -121
  111. data/config/locales/en.yml +110 -107
  112. data/config/locales/es-MX.yml +85 -82
  113. data/config/locales/es-PY.yml +88 -85
  114. data/config/locales/es.yml +83 -80
  115. data/config/locales/eu.yml +166 -170
  116. data/config/locales/fi-plain.yml +90 -87
  117. data/config/locales/fi.yml +139 -136
  118. data/config/locales/fr-CA.yml +92 -87
  119. data/config/locales/fr.yml +83 -78
  120. data/config/locales/ga-IE.yml +1 -27
  121. data/config/locales/gl.yml +11 -107
  122. data/config/locales/he-IL.yml +0 -17
  123. data/config/locales/hu.yml +18 -90
  124. data/config/locales/id-ID.yml +6 -106
  125. data/config/locales/is-IS.yml +8 -33
  126. data/config/locales/it.yml +14 -103
  127. data/config/locales/ja.yml +117 -112
  128. data/config/locales/lb.yml +1 -0
  129. data/config/locales/lt.yml +6 -123
  130. data/config/locales/lv.yml +4 -101
  131. data/config/locales/nl.yml +11 -102
  132. data/config/locales/no.yml +7 -108
  133. data/config/locales/pl.yml +110 -115
  134. data/config/locales/pt-BR.yml +10 -84
  135. data/config/locales/pt.yml +9 -109
  136. data/config/locales/ro-RO.yml +15 -117
  137. data/config/locales/ru.yml +9 -53
  138. data/config/locales/sk.yml +5 -109
  139. data/config/locales/sl.yml +4 -0
  140. data/config/locales/sv.yml +142 -337
  141. data/config/locales/tr-TR.yml +64 -108
  142. data/config/locales/uk.yml +11 -55
  143. data/config/locales/zh-CN.yml +5 -100
  144. data/config/locales/zh-TW.yml +8 -119
  145. data/db/migrate/20240110203500_add_withdrawn_at_field_to_proposals.rb +27 -0
  146. data/db/migrate/20240110203501_create_decidim_proposals_proposal_state.rb +14 -0
  147. data/db/migrate/20240110203502_add_state_id_to_decidim_proposals_proposals.rb +13 -0
  148. data/db/migrate/20240110203503_remove_state_from_decidim_proposals_proposals.rb +11 -0
  149. data/db/migrate/20240110203504_create_default_proposal_states.rb +31 -0
  150. data/db/migrate/20240209092404_change_color_fields_on_proposals_states.rb +54 -0
  151. data/decidim-proposals.gemspec +3 -3
  152. data/lib/decidim/api/proposal_type.rb +4 -13
  153. data/lib/decidim/api/proposals_type.rb +3 -1
  154. data/lib/decidim/proposals/admin_engine.rb +8 -0
  155. data/lib/decidim/proposals/admin_filter.rb +37 -0
  156. data/lib/decidim/proposals/component.rb +8 -5
  157. data/lib/decidim/proposals/engine.rb +1 -15
  158. data/lib/decidim/proposals/import/proposal_answer_creator.rb +6 -6
  159. data/lib/decidim/proposals/import/proposal_creator.rb +1 -1
  160. data/lib/decidim/proposals/markdown_to_proposals.rb +2 -8
  161. data/lib/decidim/proposals/proposal_serializer.rb +8 -9
  162. data/lib/decidim/proposals/seeds.rb +60 -51
  163. data/lib/decidim/proposals/test/factories.rb +69 -14
  164. data/lib/decidim/proposals/version.rb +1 -1
  165. data/lib/decidim/proposals.rb +84 -12
  166. data/lib/tasks/proposals/upgrade/{decdim_proposals_upgrade_tasks.rake → decidim_proposals_upgrade_tasks.rake} +0 -13
  167. metadata +51 -40
  168. data/app/events/decidim/proposals/accepted_proposal_event.rb +0 -17
  169. data/app/events/decidim/proposals/evaluating_proposal_event.rb +0 -11
  170. data/app/events/decidim/proposals/rejected_proposal_event.rb +0 -17
  171. data/app/forms/decidim/proposals/proposal_wizard_create_step_form.rb +0 -44
  172. data/app/queries/decidim/proposals/similar_proposals.rb +0 -67
  173. data/app/services/decidim/proposals/collaborative_draft_diff_renderer.rb +0 -22
  174. data/app/views/decidim/proposals/proposals/_endorsements_card_row.html.erb +0 -0
  175. data/app/views/decidim/proposals/proposals/_proposal_badge.html.erb +0 -3
  176. data/app/views/decidim/proposals/proposals/compare.html.erb +0 -24
  177. data/app/views/decidim/proposals/proposals/complete.html.erb +0 -31
  178. data/config/locales/bn-BD.yml +0 -1
  179. data/config/locales/bs-BA.yml +0 -100
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-proposals
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.28.5
4
+ version: 0.29.0.rc1
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: 2025-02-12 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,42 +18,42 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.28.5
21
+ version: 0.29.0.rc1
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.28.5
28
+ version: 0.29.0.rc1
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.28.5
35
+ version: 0.29.0.rc1
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.28.5
42
+ version: 0.29.0.rc1
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: doc2text
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: 0.4.6
49
+ version: 0.4.7
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: 0.4.6
56
+ version: 0.4.7
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: redcarpet
59
59
  requirement: !ruby/object:Gem::Requirement
@@ -80,98 +80,98 @@ dependencies:
80
80
  requirements:
81
81
  - - '='
82
82
  - !ruby/object:Gem::Version
83
- version: 0.28.5
83
+ version: 0.29.0.rc1
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.28.5
90
+ version: 0.29.0.rc1
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.28.5
97
+ version: 0.29.0.rc1
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.28.5
104
+ version: 0.29.0.rc1
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.28.5
111
+ version: 0.29.0.rc1
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.28.5
118
+ version: 0.29.0.rc1
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.28.5
125
+ version: 0.29.0.rc1
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.28.5
132
+ version: 0.29.0.rc1
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.28.5
139
+ version: 0.29.0.rc1
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.28.5
146
+ version: 0.29.0.rc1
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.28.5
153
+ version: 0.29.0.rc1
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.28.5
160
+ version: 0.29.0.rc1
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.28.5
167
+ version: 0.29.0.rc1
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.28.5
174
+ version: 0.29.0.rc1
175
175
  description: A proposals component for decidim's participatory spaces.
176
176
  email:
177
177
  - josepjaume@gmail.com
@@ -204,6 +204,8 @@ files:
204
204
  - app/cells/decidim/proposals/participatory_text_proposal_cell.rb
205
205
  - app/cells/decidim/proposals/proposal_activity_cell.rb
206
206
  - app/cells/decidim/proposals/proposal_cell.rb
207
+ - app/cells/decidim/proposals/proposal_g/show.erb
208
+ - app/cells/decidim/proposals/proposal_g_cell.rb
207
209
  - app/cells/decidim/proposals/proposal_l_cell.rb
208
210
  - app/cells/decidim/proposals/proposal_link_to_collaborative_draft_cell.rb
209
211
  - app/cells/decidim/proposals/proposal_link_to_rejected_emendation_cell.rb
@@ -220,6 +222,8 @@ files:
220
222
  - app/commands/decidim/proposals/admin/assign_proposals_to_valuator.rb
221
223
  - app/commands/decidim/proposals/admin/create_proposal.rb
222
224
  - app/commands/decidim/proposals/admin/create_proposal_note.rb
225
+ - app/commands/decidim/proposals/admin/create_proposal_state.rb
226
+ - app/commands/decidim/proposals/admin/destroy_proposal_state.rb
223
227
  - app/commands/decidim/proposals/admin/discard_participatory_text.rb
224
228
  - app/commands/decidim/proposals/admin/import_participatory_text.rb
225
229
  - app/commands/decidim/proposals/admin/import_proposals.rb
@@ -233,6 +237,7 @@ files:
233
237
  - app/commands/decidim/proposals/admin/update_proposal.rb
234
238
  - app/commands/decidim/proposals/admin/update_proposal_category.rb
235
239
  - app/commands/decidim/proposals/admin/update_proposal_scope.rb
240
+ - app/commands/decidim/proposals/admin/update_proposal_state.rb
236
241
  - app/commands/decidim/proposals/create_collaborative_draft.rb
237
242
  - app/commands/decidim/proposals/create_proposal.rb
238
243
  - app/commands/decidim/proposals/destroy_proposal.rb
@@ -255,6 +260,7 @@ files:
255
260
  - app/controllers/decidim/proposals/admin/participatory_texts_controller.rb
256
261
  - app/controllers/decidim/proposals/admin/proposal_answers_controller.rb
257
262
  - app/controllers/decidim/proposals/admin/proposal_notes_controller.rb
263
+ - app/controllers/decidim/proposals/admin/proposal_states_controller.rb
258
264
  - app/controllers/decidim/proposals/admin/proposals_controller.rb
259
265
  - app/controllers/decidim/proposals/admin/proposals_imports_controller.rb
260
266
  - app/controllers/decidim/proposals/admin/proposals_merges_controller.rb
@@ -266,7 +272,6 @@ files:
266
272
  - app/controllers/decidim/proposals/proposal_votes_controller.rb
267
273
  - app/controllers/decidim/proposals/proposals_controller.rb
268
274
  - app/controllers/decidim/proposals/versions_controller.rb
269
- - app/events/decidim/proposals/accepted_proposal_event.rb
270
275
  - app/events/decidim/proposals/admin/proposal_note_created_event.rb
271
276
  - app/events/decidim/proposals/admin/update_proposal_category_event.rb
272
277
  - app/events/decidim/proposals/admin/update_proposal_scope_event.rb
@@ -279,11 +284,10 @@ files:
279
284
  - app/events/decidim/proposals/collaborative_draft_withdrawn_event.rb
280
285
  - app/events/decidim/proposals/creation_enabled_event.rb
281
286
  - app/events/decidim/proposals/endorsing_enabled_event.rb
282
- - app/events/decidim/proposals/evaluating_proposal_event.rb
283
287
  - app/events/decidim/proposals/proposal_endorsed_event.rb
284
288
  - app/events/decidim/proposals/proposal_mentioned_event.rb
289
+ - app/events/decidim/proposals/proposal_state_changed_event.rb
285
290
  - app/events/decidim/proposals/publish_proposal_event.rb
286
- - app/events/decidim/proposals/rejected_proposal_event.rb
287
291
  - app/events/decidim/proposals/voting_enabled_event.rb
288
292
  - app/forms/decidim/proposals/accept_access_to_collaborative_draft_form.rb
289
293
  - app/forms/decidim/proposals/access_to_collaborative_draft_form.rb
@@ -294,6 +298,7 @@ files:
294
298
  - app/forms/decidim/proposals/admin/proposal_base_form.rb
295
299
  - app/forms/decidim/proposals/admin/proposal_form.rb
296
300
  - app/forms/decidim/proposals/admin/proposal_note_form.rb
301
+ - app/forms/decidim/proposals/admin/proposal_state_form.rb
297
302
  - app/forms/decidim/proposals/admin/proposals_file_import_form.rb
298
303
  - app/forms/decidim/proposals/admin/proposals_fork_form.rb
299
304
  - app/forms/decidim/proposals/admin/proposals_import_form.rb
@@ -302,7 +307,6 @@ files:
302
307
  - app/forms/decidim/proposals/admin/valuation_assignment_form.rb
303
308
  - app/forms/decidim/proposals/collaborative_draft_form.rb
304
309
  - app/forms/decidim/proposals/proposal_form.rb
305
- - app/forms/decidim/proposals/proposal_wizard_create_step_form.rb
306
310
  - app/forms/decidim/proposals/reject_access_to_collaborative_draft_form.rb
307
311
  - app/forms/decidim/proposals/request_access_to_collaborative_draft_form.rb
308
312
  - app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb
@@ -327,6 +331,7 @@ files:
327
331
  - app/models/decidim/proposals/participatory_text.rb
328
332
  - app/models/decidim/proposals/proposal.rb
329
333
  - app/models/decidim/proposals/proposal_note.rb
334
+ - app/models/decidim/proposals/proposal_state.rb
330
335
  - app/models/decidim/proposals/proposal_vote.rb
331
336
  - app/models/decidim/proposals/valuation_assignment.rb
332
337
  - app/packs/documents/decidim/proposals/participatory_texts/participatory_text.md
@@ -338,6 +343,7 @@ files:
338
343
  - app/packs/images/decidim/gamification/badges/decidim_gamification_badges_proposal_votes.svg
339
344
  - app/packs/images/decidim/gamification/badges/decidim_gamification_badges_proposals.svg
340
345
  - app/packs/images/decidim/proposals/decidim_proposals.svg
346
+ - app/packs/images/decidim/proposals/proposal-placeholder-card-g.svg
341
347
  - app/packs/src/decidim/proposals/add_proposal.js
342
348
  - app/packs/src/decidim/proposals/admin/proposals.js
343
349
  - app/packs/src/decidim/proposals/admin/proposals_form.js
@@ -349,6 +355,7 @@ files:
349
355
  - app/permissions/decidim/proposals/permissions.rb
350
356
  - app/presenters/decidim/proposals/admin_log/proposal_note_presenter.rb
351
357
  - app/presenters/decidim/proposals/admin_log/proposal_presenter.rb
358
+ - app/presenters/decidim/proposals/admin_log/proposal_state_presenter.rb
352
359
  - app/presenters/decidim/proposals/admin_log/valuation_assignment_presenter.rb
353
360
  - app/presenters/decidim/proposals/admin_log/value_types/proposal_state_presenter.rb
354
361
  - app/presenters/decidim/proposals/admin_log/value_types/proposal_title_body_presenter.rb
@@ -364,8 +371,6 @@ files:
364
371
  - app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb
365
372
  - app/queries/decidim/proposals/metrics/proposals_metric_manage.rb
366
373
  - app/queries/decidim/proposals/metrics/votes_metric_manage.rb
367
- - app/queries/decidim/proposals/similar_proposals.rb
368
- - app/services/decidim/proposals/collaborative_draft_diff_renderer.rb
369
374
  - app/services/decidim/proposals/diff_renderer.rb
370
375
  - app/services/decidim/proposals/proposal_builder.rb
371
376
  - app/services/decidim/proposals/proposal_search.rb
@@ -378,6 +383,10 @@ files:
378
383
  - app/views/decidim/proposals/admin/proposal_answers/_form.html.erb
379
384
  - app/views/decidim/proposals/admin/proposal_notes/_form.html.erb
380
385
  - app/views/decidim/proposals/admin/proposal_notes/_proposal_notes.html.erb
386
+ - app/views/decidim/proposals/admin/proposal_states/_form.html.erb
387
+ - app/views/decidim/proposals/admin/proposal_states/edit.html.erb
388
+ - app/views/decidim/proposals/admin/proposal_states/index.html.erb
389
+ - app/views/decidim/proposals/admin/proposal_states/new.html.erb
381
390
  - app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb
382
391
  - app/views/decidim/proposals/admin/proposals/_documents.html.erb
383
392
  - app/views/decidim/proposals/admin/proposals/_endorsers.html.erb
@@ -393,6 +402,7 @@ files:
393
402
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_scope-change.html.erb
394
403
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_split.html.erb
395
404
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_unassign_from_valuator.html.erb
405
+ - app/views/decidim/proposals/admin/proposals/bulk_actions/_valuators_picker.html.erb
396
406
  - app/views/decidim/proposals/admin/proposals/edit.html.erb
397
407
  - app/views/decidim/proposals/admin/proposals/index.html.erb
398
408
  - app/views/decidim/proposals/admin/proposals/new.html.erb
@@ -416,11 +426,9 @@ files:
416
426
  - app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb
417
427
  - app/views/decidim/proposals/proposals/_actions.html.erb
418
428
  - app/views/decidim/proposals/proposals/_edit_form_fields.html.erb
419
- - app/views/decidim/proposals/proposals/_endorsements_card_row.html.erb
420
429
  - app/views/decidim/proposals/proposals/_linked_proposals.html.erb
421
430
  - app/views/decidim/proposals/proposals/_proposal.html.erb
422
431
  - app/views/decidim/proposals/proposals/_proposal_aside.html.erb
423
- - app/views/decidim/proposals/proposals/_proposal_badge.html.erb
424
432
  - app/views/decidim/proposals/proposals/_proposals.html.erb
425
433
  - app/views/decidim/proposals/proposals/_proposals_picker.html.erb
426
434
  - app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb
@@ -428,8 +436,6 @@ files:
428
436
  - app/views/decidim/proposals/proposals/_votes_count.html.erb
429
437
  - app/views/decidim/proposals/proposals/_voting_rules.html.erb
430
438
  - app/views/decidim/proposals/proposals/_wizard_header.html.erb
431
- - app/views/decidim/proposals/proposals/compare.html.erb
432
- - app/views/decidim/proposals/proposals/complete.html.erb
433
439
  - app/views/decidim/proposals/proposals/edit.html.erb
434
440
  - app/views/decidim/proposals/proposals/edit_draft.html.erb
435
441
  - app/views/decidim/proposals/proposals/index.html.erb
@@ -448,8 +454,6 @@ files:
448
454
  - config/locales/ar.yml
449
455
  - config/locales/bg-BG.yml
450
456
  - config/locales/bg.yml
451
- - config/locales/bn-BD.yml
452
- - config/locales/bs-BA.yml
453
457
  - config/locales/ca.yml
454
458
  - config/locales/cs-CZ.yml
455
459
  - config/locales/cs.yml
@@ -582,6 +586,12 @@ files:
582
586
  - db/migrate/20210318082934_fix_counters_for_copied_proposals.rb
583
587
  - db/migrate/20230427105700_change_states_on_collaborative_drafts.rb
584
588
  - db/migrate/20230427105700_change_states_on_proposals.rb
589
+ - db/migrate/20240110203500_add_withdrawn_at_field_to_proposals.rb
590
+ - db/migrate/20240110203501_create_decidim_proposals_proposal_state.rb
591
+ - db/migrate/20240110203502_add_state_id_to_decidim_proposals_proposals.rb
592
+ - db/migrate/20240110203503_remove_state_from_decidim_proposals_proposals.rb
593
+ - db/migrate/20240110203504_create_default_proposal_states.rb
594
+ - db/migrate/20240209092404_change_color_fields_on_proposals_states.rb
585
595
  - db/migrate/20240404202756_add_valuation_assignments_count_to_decidim_proposals_proposals.rb
586
596
  - decidim-proposals.gemspec
587
597
  - lib/decidim/api/proposal_input_filter.rb
@@ -593,6 +603,7 @@ files:
593
603
  - lib/decidim/proposals.rb
594
604
  - lib/decidim/proposals/admin.rb
595
605
  - lib/decidim/proposals/admin_engine.rb
606
+ - lib/decidim/proposals/admin_filter.rb
596
607
  - lib/decidim/proposals/api.rb
597
608
  - lib/decidim/proposals/commentable_collaborative_draft.rb
598
609
  - lib/decidim/proposals/commentable_proposal.rb
@@ -612,10 +623,10 @@ files:
612
623
  - lib/decidim/proposals/test/factories.rb
613
624
  - lib/decidim/proposals/valuatable.rb
614
625
  - lib/decidim/proposals/version.rb
615
- - lib/tasks/proposals/upgrade/decdim_proposals_upgrade_tasks.rake
626
+ - lib/tasks/proposals/upgrade/decidim_proposals_upgrade_tasks.rake
616
627
  homepage: https://decidim.org
617
628
  licenses:
618
- - AGPL-3.0-or-later
629
+ - AGPL-3.0
619
630
  metadata:
620
631
  bug_tracker_uri: https://github.com/decidim/decidim/issues
621
632
  documentation_uri: https://docs.decidim.org/
@@ -630,14 +641,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
630
641
  requirements:
631
642
  - - "~>"
632
643
  - !ruby/object:Gem::Version
633
- version: 3.1.0
644
+ version: 3.2.0
634
645
  required_rubygems_version: !ruby/object:Gem::Requirement
635
646
  requirements:
636
- - - ">="
647
+ - - ">"
637
648
  - !ruby/object:Gem::Version
638
- version: '0'
649
+ version: 1.3.1
639
650
  requirements: []
640
- rubygems_version: 3.3.7
651
+ rubygems_version: 3.4.10
641
652
  signing_key:
642
653
  specification_version: 4
643
654
  summary: Decidim proposals module
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- class AcceptedProposalEvent < Decidim::Events::SimpleEvent
6
- include Decidim::Events::AuthorEvent
7
-
8
- def resource_text
9
- translated_attribute(resource.answer)
10
- end
11
-
12
- def event_has_roles?
13
- true
14
- end
15
- end
16
- end
17
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- class EvaluatingProposalEvent < Decidim::Events::SimpleEvent
6
- def event_has_roles?
7
- true
8
- end
9
- end
10
- end
11
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- class RejectedProposalEvent < Decidim::Events::SimpleEvent
6
- include Decidim::Events::AuthorEvent
7
-
8
- def resource_text
9
- translated_attribute(resource.answer)
10
- end
11
-
12
- def event_has_roles?
13
- true
14
- end
15
- end
16
- end
17
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- # A form object to be used when public users want to create a proposal.
6
- class ProposalWizardCreateStepForm < Decidim::Form
7
- mimic :proposal
8
-
9
- attribute :title, String
10
- attribute :body, Decidim::Attributes::CleanString
11
- attribute :body_template, String
12
- attribute :user_group_id, Integer
13
-
14
- validates :title, :body, presence: true, etiquette: true
15
- validates :title, length: { in: 15..150 }
16
- validates :body, proposal_length: {
17
- minimum: 15,
18
- maximum: ->(record) { record.component.settings.proposal_length }
19
- }
20
-
21
- validate :body_is_not_bare_template
22
-
23
- alias component current_component
24
-
25
- def map_model(model)
26
- self.title = translated_attribute(model.title)
27
- self.body = translated_attribute(model.body)
28
-
29
- self.user_group_id = model.user_groups.first&.id
30
- return unless model.categorization
31
-
32
- self.category_id = model.categorization.decidim_category_id
33
- end
34
-
35
- private
36
-
37
- def body_is_not_bare_template
38
- return if body_template.blank?
39
-
40
- errors.add(:body, :cant_be_equal_to_template) if body.presence == body_template.presence
41
- end
42
- end
43
- end
44
- end
@@ -1,67 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- # Class used to retrieve similar proposals.
6
- class SimilarProposals < Decidim::Query
7
- include Decidim::TranslationsHelper
8
-
9
- # Syntactic sugar to initialize the class and return the queried objects.
10
- #
11
- # components - Decidim::CurrentComponent
12
- # proposal - Decidim::Proposals::Proposal
13
- def self.for(components, proposal)
14
- new(components, proposal).query
15
- end
16
-
17
- # Initializes the class.
18
- #
19
- # components - Decidim::CurrentComponent
20
- # proposal - Decidim::Proposals::Proposal
21
- def initialize(components, proposal)
22
- @components = components
23
- @proposal = proposal
24
- @translations_enabled = proposal.component.organization.enable_machine_translations
25
- end
26
-
27
- # Retrieves similar proposals
28
- def query
29
- Decidim::Proposals::Proposal
30
- .where(component: @components)
31
- .published
32
- .not_hidden
33
- .where(
34
- Arel.sql("GREATEST(#{title_similarity}, #{body_similarity}) >= ?").to_s,
35
- *similarity_params,
36
- Decidim::Proposals.similarity_threshold
37
- )
38
- .limit(Decidim::Proposals.similarity_limit)
39
- end
40
-
41
- private
42
-
43
- attr_reader :translations_enabled, :proposal
44
-
45
- def title_similarity
46
- return "similarity(title::text, ?)" unless translations_enabled
47
-
48
- language = proposal.content_original_language
49
- "similarity(title->>'#{language}'::text, ?), similarity(title->'machine_translations'->>'#{language}'::text, ?)"
50
- end
51
-
52
- def body_similarity
53
- return "similarity(body::text, ?)" unless translations_enabled
54
-
55
- language = proposal.content_original_language
56
- "similarity(body->>'#{language}'::text, ?), similarity(body->'machine_translations'->>'#{language}'::text, ?)"
57
- end
58
-
59
- def similarity_params
60
- title_attr = translated_attribute(proposal.title)
61
- body_attr = translated_attribute(proposal.body)
62
-
63
- translations_enabled ? [title_attr, title_attr, body_attr, body_attr] : [title_attr, body_attr]
64
- end
65
- end
66
- end
67
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- class CollaborativeDraftDiffRenderer < DiffRenderer
6
- private
7
-
8
- def attribute_types
9
- {
10
- title: :string,
11
- body: :string,
12
- decidim_category_id: :category,
13
- decidim_scope_id: :scope,
14
- address: :string,
15
- latitude: :string,
16
- longitude: :string,
17
- decidim_proposals_proposal_state_id: :string
18
- }
19
- end
20
- end
21
- end
22
- end
@@ -1,3 +0,0 @@
1
- <% if proposal.published_state? || proposal.withdrawn? %>
2
- <span class="<%= proposal_state_badge_css_class(proposal.state) %> label proposal-status"><%= humanize_proposal_state proposal.state %></span>
3
- <% end %>
@@ -1,24 +0,0 @@
1
- <% add_decidim_page_title(proposal_wizard_step_title(action_name)) %>
2
-
3
- <% append_stylesheet_pack_tag "decidim_proposals", media: "all" %>
4
- <% append_javascript_pack_tag "decidim_proposals" %>
5
-
6
- <%= render layout: "layouts/decidim/shared/layout_center" do %>
7
-
8
- <%= render partial: "wizard_header", locals: { callout_step_help_text_class: "warning" } %>
9
-
10
- <% if @similar_proposals.present? %>
11
- <div class="proposal__container my-10">
12
- <% @similar_proposals.each do |proposal| %>
13
- <%= card_for proposal %>
14
- <% end %>
15
- </div>
16
- <% end %>
17
-
18
- <div class="form__wrapper-block flex-col-reverse md:flex-row justify-between">
19
- <%= link_to complete_proposal_path(@proposal), class: "button button__sm md:button__lg button__secondary ml-auto" do %>
20
- <span><%= t("continue", scope: "decidim.proposals.proposals.compare") %></span>
21
- <%= icon "arrow-right-line" %>
22
- <% end %>
23
- </div>
24
- <% end %>
@@ -1,31 +0,0 @@
1
- <% add_decidim_page_title(proposal_wizard_step_title(action_name)) %>
2
-
3
- <%= append_stylesheet_pack_tag "decidim_proposals", media: "all" %>
4
- <%= append_javascript_pack_tag "decidim_proposals" %>
5
-
6
- <%= render layout: "layouts/decidim/shared/layout_center" do %>
7
-
8
- <%= render partial: "wizard_header" %>
9
-
10
- <%= decidim_form_for(@form, url: update_draft_proposal_path(@proposal), method: :patch) do |form| %>
11
-
12
- <%= form_required_explanation %>
13
-
14
- <div class="form__wrapper">
15
- <%= render partial: "edit_form_fields", locals: { form: } %>
16
- </div>
17
-
18
- <div class="form__wrapper-block flex-col-reverse md:flex-row justify-between">
19
- <%= link_to proposal_wizard_aside_link_to_back(@step), class: "button button__sm md:button__lg button__text-secondary" do %>
20
- <%= icon "arrow-left-line" %>
21
- <%= wizard_aside_back_text(@step) %>
22
- <% end %>
23
-
24
- <button type="submit" class="button button__sm md:button__lg button__secondary">
25
- <span><%= t("send", scope: "decidim.proposals.proposals.complete") %></span>
26
- <%= icon "arrow-right-line" %>
27
- </button>
28
- </div>
29
- <% end %>
30
-
31
- <% end %>
@@ -1 +0,0 @@
1
- bn: