decidim-proposals 0.28.1 → 0.29.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (175) 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_cell.rb +1 -1
  5. data/app/cells/decidim/proposals/participatory_text_proposal/buttons.erb +1 -1
  6. data/app/cells/decidim/proposals/participatory_text_proposal_cell.rb +2 -3
  7. data/app/cells/decidim/proposals/proposal_cell.rb +2 -0
  8. data/app/cells/decidim/proposals/proposal_g/show.erb +23 -0
  9. data/app/cells/decidim/proposals/proposal_g_cell.rb +48 -0
  10. data/app/cells/decidim/proposals/proposal_l_cell.rb +0 -2
  11. data/app/cells/decidim/proposals/proposal_metadata_cell.rb +23 -15
  12. data/app/commands/decidim/proposals/admin/answer_proposal.rb +2 -1
  13. data/app/commands/decidim/proposals/admin/assign_proposals_to_valuator.rb +7 -5
  14. data/app/commands/decidim/proposals/admin/create_proposal.rb +2 -2
  15. data/app/commands/decidim/proposals/admin/create_proposal_state.rb +15 -0
  16. data/app/commands/decidim/proposals/admin/destroy_proposal_state.rb +10 -0
  17. data/app/commands/decidim/proposals/admin/import_proposals.rb +10 -2
  18. data/app/commands/decidim/proposals/admin/notify_proposal_answer.rb +4 -21
  19. data/app/commands/decidim/proposals/admin/unassign_proposals_from_valuator.rb +6 -4
  20. data/app/commands/decidim/proposals/admin/update_proposal_state.rb +13 -0
  21. data/app/commands/decidim/proposals/create_proposal.rb +21 -2
  22. data/app/commands/decidim/proposals/update_proposal.rb +2 -2
  23. data/app/commands/decidim/proposals/vote_proposal.rb +1 -1
  24. data/app/commands/decidim/proposals/withdraw_proposal.rb +3 -7
  25. data/app/controllers/concerns/decidim/proposals/admin/filterable.rb +10 -22
  26. data/app/controllers/concerns/decidim/proposals/orderable.rb +1 -1
  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 +30 -35
  31. data/app/events/decidim/proposals/proposal_state_changed_event.rb +37 -0
  32. data/app/forms/decidim/proposals/admin/proposal_answer_form.rb +5 -1
  33. data/app/forms/decidim/proposals/admin/proposal_state_form.rb +22 -0
  34. data/app/forms/decidim/proposals/admin/proposals_fork_form.rb +1 -1
  35. data/app/forms/decidim/proposals/admin/proposals_import_form.rb +1 -1
  36. data/app/forms/decidim/proposals/admin/valuation_assignment_form.rb +12 -14
  37. data/app/forms/decidim/proposals/proposal_form.rb +25 -4
  38. data/app/forms/decidim/proposals/reject_access_to_collaborative_draft_form.rb +1 -1
  39. data/app/forms/decidim/proposals/request_access_to_collaborative_draft_form.rb +1 -1
  40. data/app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb +7 -17
  41. data/app/helpers/decidim/proposals/admin/proposals_helper.rb +13 -89
  42. data/app/helpers/decidim/proposals/application_helper.rb +17 -11
  43. data/app/helpers/decidim/proposals/proposal_cells_helper.rb +6 -2
  44. data/app/helpers/decidim/proposals/proposal_votes_helper.rb +3 -3
  45. data/app/helpers/decidim/proposals/proposal_wizard_helper.rb +5 -8
  46. data/app/helpers/decidim/proposals/proposals_helper.rb +18 -24
  47. data/app/models/decidim/proposals/proposal.rb +78 -28
  48. data/app/models/decidim/proposals/proposal_state.rb +58 -0
  49. data/app/packs/documents/decidim/proposals/participatory_texts/participatory_text.md +1 -3
  50. data/app/packs/entrypoints/participatory_texts_admin.js +2 -0
  51. data/app/packs/images/decidim/proposals/proposal-placeholder-card-g.svg +15 -0
  52. data/app/packs/src/decidim/proposals/add_proposal.js +2 -0
  53. data/app/packs/src/decidim/proposals/admin/proposals.js +43 -8
  54. data/app/packs/stylesheets/decidim/proposals/admin/participatory_texts.scss +23 -0
  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/presenters/decidim/proposals/admin_log/proposal_presenter.rb +1 -5
  58. data/app/presenters/decidim/proposals/admin_log/proposal_state_presenter.rb +21 -0
  59. data/app/presenters/decidim/proposals/admin_log/value_types/proposal_title_body_presenter.rb +1 -3
  60. data/app/presenters/decidim/proposals/log/valuation_assignment_presenter.rb +1 -1
  61. data/app/presenters/decidim/proposals/proposal_presenter.rb +12 -3
  62. data/app/queries/decidim/proposals/metrics/endorsements_metric_manage.rb +1 -1
  63. data/app/queries/decidim/proposals/metrics/proposal_followers_metric_measure.rb +1 -1
  64. data/app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb +4 -4
  65. data/app/queries/decidim/proposals/metrics/proposals_metric_manage.rb +1 -1
  66. data/app/queries/decidim/proposals/metrics/votes_metric_manage.rb +1 -1
  67. data/app/services/decidim/proposals/diff_renderer.rb +1 -1
  68. data/app/views/decidim/proposals/admin/imports/_proposals_fields.html.erb +1 -1
  69. data/app/views/decidim/proposals/admin/participatory_texts/index.html.erb +9 -5
  70. data/app/views/decidim/proposals/admin/proposal_answers/_form.html.erb +1 -1
  71. data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes.html.erb +3 -3
  72. data/app/views/decidim/proposals/admin/proposal_states/_form.html.erb +67 -0
  73. data/app/views/decidim/proposals/admin/proposal_states/edit.html.erb +18 -0
  74. data/app/views/decidim/proposals/admin/proposal_states/index.html.erb +50 -0
  75. data/app/views/decidim/proposals/admin/proposal_states/new.html.erb +18 -0
  76. data/app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb +0 -2
  77. data/app/views/decidim/proposals/admin/proposals/_form.html.erb +6 -6
  78. data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +2 -2
  79. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_assign_to_valuator.html.erb +11 -7
  80. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_dropdown.html.erb +7 -5
  81. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_merge.html.erb +2 -2
  82. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_publish_answers.html.erb +2 -2
  83. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_recategorize.html.erb +2 -2
  84. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_scope-change.html.erb +2 -2
  85. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_split.html.erb +2 -2
  86. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_unassign_from_valuator.html.erb +11 -7
  87. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_valuators_picker.html.erb +12 -0
  88. data/app/views/decidim/proposals/admin/proposals/index.html.erb +11 -5
  89. data/app/views/decidim/proposals/admin/proposals/publish_answers.js.erb +1 -1
  90. data/app/views/decidim/proposals/admin/proposals/show.html.erb +3 -2
  91. data/app/views/decidim/proposals/admin/proposals/update_attribute.js.erb +3 -3
  92. data/app/views/decidim/proposals/proposals/_edit_form_fields.html.erb +12 -5
  93. data/app/views/decidim/proposals/proposals/_proposal.html.erb +1 -1
  94. data/app/views/decidim/proposals/proposals/_proposal_aside.html.erb +5 -3
  95. data/app/views/decidim/proposals/proposals/_proposals.html.erb +9 -3
  96. data/app/views/decidim/proposals/proposals/_vote_button.html.erb +1 -1
  97. data/app/views/decidim/proposals/proposals/_voting_rules.html.erb +3 -3
  98. data/app/views/decidim/proposals/proposals/_wizard_header.html.erb +0 -1
  99. data/app/views/decidim/proposals/proposals/new.html.erb +2 -7
  100. data/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb +4 -4
  101. data/app/views/decidim/proposals/proposals/participatory_texts/_proposal_votes_count.html.erb +8 -8
  102. data/app/views/decidim/proposals/proposals/show.html.erb +1 -1
  103. data/config/assets.rb +1 -0
  104. data/config/locales/ar.yml +5 -119
  105. data/config/locales/bg.yml +741 -42
  106. data/config/locales/ca.yml +88 -85
  107. data/config/locales/cs.yml +62 -124
  108. data/config/locales/de.yml +111 -108
  109. data/config/locales/el.yml +2 -123
  110. data/config/locales/en.yml +113 -110
  111. data/config/locales/es-MX.yml +86 -83
  112. data/config/locales/es-PY.yml +88 -85
  113. data/config/locales/es.yml +87 -84
  114. data/config/locales/eu.yml +104 -108
  115. data/config/locales/fi-plain.yml +91 -88
  116. data/config/locales/fi.yml +113 -110
  117. data/config/locales/fr-CA.yml +89 -86
  118. data/config/locales/fr.yml +81 -78
  119. data/config/locales/ga-IE.yml +1 -21
  120. data/config/locales/gl.yml +4 -109
  121. data/config/locales/he-IL.yml +0 -13
  122. data/config/locales/hu.yml +14 -91
  123. data/config/locales/id-ID.yml +1 -98
  124. data/config/locales/is-IS.yml +0 -35
  125. data/config/locales/it.yml +5 -97
  126. data/config/locales/ja.yml +112 -109
  127. data/config/locales/lb.yml +1 -0
  128. data/config/locales/lt.yml +2 -127
  129. data/config/locales/lv.yml +1 -97
  130. data/config/locales/nl.yml +5 -100
  131. data/config/locales/no.yml +2 -112
  132. data/config/locales/pl.yml +201 -107
  133. data/config/locales/pt-BR.yml +4 -82
  134. data/config/locales/pt.yml +4 -112
  135. data/config/locales/ro-RO.yml +5 -114
  136. data/config/locales/ru.yml +1 -55
  137. data/config/locales/sk.yml +1 -104
  138. data/config/locales/sv.yml +20 -108
  139. data/config/locales/tr-TR.yml +57 -103
  140. data/config/locales/uk.yml +2 -56
  141. data/config/locales/zh-CN.yml +1 -100
  142. data/config/locales/zh-TW.yml +2 -121
  143. data/db/migrate/20240110203500_add_withdrawn_at_field_to_proposals.rb +27 -0
  144. data/db/migrate/20240110203501_create_decidim_proposals_proposal_state.rb +14 -0
  145. data/db/migrate/20240110203502_add_state_id_to_decidim_proposals_proposals.rb +13 -0
  146. data/db/migrate/20240110203503_remove_state_from_decidim_proposals_proposals.rb +11 -0
  147. data/db/migrate/20240110203504_create_default_proposal_states.rb +31 -0
  148. data/db/migrate/20240209092404_change_color_fields_on_proposals_states.rb +54 -0
  149. data/decidim-proposals.gemspec +2 -2
  150. data/lib/decidim/api/proposal_type.rb +4 -0
  151. data/lib/decidim/proposals/admin_engine.rb +8 -0
  152. data/lib/decidim/proposals/admin_filter.rb +37 -0
  153. data/lib/decidim/proposals/component.rb +10 -9
  154. data/lib/decidim/proposals/engine.rb +1 -15
  155. data/lib/decidim/proposals/import/proposal_answer_creator.rb +6 -6
  156. data/lib/decidim/proposals/import/proposal_creator.rb +1 -1
  157. data/lib/decidim/proposals/markdown_to_proposals.rb +2 -8
  158. data/lib/decidim/proposals/proposal_serializer.rb +56 -3
  159. data/lib/decidim/proposals/seeds.rb +60 -47
  160. data/lib/decidim/proposals/test/factories.rb +77 -9
  161. data/lib/decidim/proposals/version.rb +1 -1
  162. data/lib/decidim/proposals.rb +84 -12
  163. data/lib/tasks/proposals/upgrade/decidim_proposals_upgrade_tasks.rake +32 -0
  164. metadata +55 -40
  165. data/app/events/decidim/proposals/accepted_proposal_event.rb +0 -17
  166. data/app/events/decidim/proposals/evaluating_proposal_event.rb +0 -11
  167. data/app/events/decidim/proposals/rejected_proposal_event.rb +0 -17
  168. data/app/forms/decidim/proposals/proposal_wizard_create_step_form.rb +0 -44
  169. data/app/presenters/decidim/proposals/log/resource_presenter.rb +0 -22
  170. data/app/queries/decidim/proposals/similar_proposals.rb +0 -67
  171. data/app/views/decidim/proposals/proposals/_endorsements_card_row.html.erb +0 -0
  172. data/app/views/decidim/proposals/proposals/_proposal_badge.html.erb +0 -3
  173. data/app/views/decidim/proposals/proposals/compare.html.erb +0 -24
  174. data/app/views/decidim/proposals/proposals/complete.html.erb +0 -31
  175. data/lib/tasks/proposals/upgrade/decdim_proposal_upgrade_tasks.rake +0 -34
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.28.1
4
+ version: 0.29.0.rc1
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,42 +18,42 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.28.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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,32 +331,36 @@ 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
333
338
  - app/packs/documents/decidim/proposals/participatory_texts/participatory_text.odt
334
339
  - app/packs/entrypoints/decidim_proposals.js
335
340
  - app/packs/entrypoints/decidim_proposals_admin.js
341
+ - app/packs/entrypoints/participatory_texts_admin.js
336
342
  - app/packs/images/decidim/gamification/badges/decidim_gamification_badges_accepted_proposals.svg
337
343
  - app/packs/images/decidim/gamification/badges/decidim_gamification_badges_proposal_votes.svg
338
344
  - app/packs/images/decidim/gamification/badges/decidim_gamification_badges_proposals.svg
339
345
  - app/packs/images/decidim/proposals/decidim_proposals.svg
346
+ - app/packs/images/decidim/proposals/proposal-placeholder-card-g.svg
340
347
  - app/packs/src/decidim/proposals/add_proposal.js
341
348
  - app/packs/src/decidim/proposals/admin/proposals.js
342
349
  - app/packs/src/decidim/proposals/admin/proposals_form.js
343
350
  - app/packs/src/decidim/proposals/choose_proposals.js
344
351
  - app/packs/src/decidim/proposals/utils.js
352
+ - app/packs/stylesheets/decidim/proposals/admin/participatory_texts.scss
345
353
  - app/packs/stylesheets/decidim/proposals/proposals.scss
346
354
  - app/permissions/decidim/proposals/admin/permissions.rb
347
355
  - app/permissions/decidim/proposals/permissions.rb
348
356
  - app/presenters/decidim/proposals/admin_log/proposal_note_presenter.rb
349
357
  - app/presenters/decidim/proposals/admin_log/proposal_presenter.rb
358
+ - app/presenters/decidim/proposals/admin_log/proposal_state_presenter.rb
350
359
  - app/presenters/decidim/proposals/admin_log/valuation_assignment_presenter.rb
351
360
  - app/presenters/decidim/proposals/admin_log/value_types/proposal_state_presenter.rb
352
361
  - app/presenters/decidim/proposals/admin_log/value_types/proposal_title_body_presenter.rb
353
362
  - app/presenters/decidim/proposals/admin_log/value_types/valuator_role_user_presenter.rb
354
363
  - app/presenters/decidim/proposals/collaborative_draft_presenter.rb
355
- - app/presenters/decidim/proposals/log/resource_presenter.rb
356
364
  - app/presenters/decidim/proposals/log/valuation_assignment_presenter.rb
357
365
  - app/presenters/decidim/proposals/official_author_presenter.rb
358
366
  - app/presenters/decidim/proposals/proposal_presenter.rb
@@ -363,7 +371,6 @@ files:
363
371
  - app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb
364
372
  - app/queries/decidim/proposals/metrics/proposals_metric_manage.rb
365
373
  - app/queries/decidim/proposals/metrics/votes_metric_manage.rb
366
- - app/queries/decidim/proposals/similar_proposals.rb
367
374
  - app/services/decidim/proposals/diff_renderer.rb
368
375
  - app/services/decidim/proposals/proposal_builder.rb
369
376
  - app/services/decidim/proposals/proposal_search.rb
@@ -376,6 +383,10 @@ files:
376
383
  - app/views/decidim/proposals/admin/proposal_answers/_form.html.erb
377
384
  - app/views/decidim/proposals/admin/proposal_notes/_form.html.erb
378
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
379
390
  - app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb
380
391
  - app/views/decidim/proposals/admin/proposals/_documents.html.erb
381
392
  - app/views/decidim/proposals/admin/proposals/_endorsers.html.erb
@@ -391,6 +402,7 @@ files:
391
402
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_scope-change.html.erb
392
403
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_split.html.erb
393
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
394
406
  - app/views/decidim/proposals/admin/proposals/edit.html.erb
395
407
  - app/views/decidim/proposals/admin/proposals/index.html.erb
396
408
  - app/views/decidim/proposals/admin/proposals/new.html.erb
@@ -414,11 +426,9 @@ files:
414
426
  - app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb
415
427
  - app/views/decidim/proposals/proposals/_actions.html.erb
416
428
  - app/views/decidim/proposals/proposals/_edit_form_fields.html.erb
417
- - app/views/decidim/proposals/proposals/_endorsements_card_row.html.erb
418
429
  - app/views/decidim/proposals/proposals/_linked_proposals.html.erb
419
430
  - app/views/decidim/proposals/proposals/_proposal.html.erb
420
431
  - app/views/decidim/proposals/proposals/_proposal_aside.html.erb
421
- - app/views/decidim/proposals/proposals/_proposal_badge.html.erb
422
432
  - app/views/decidim/proposals/proposals/_proposals.html.erb
423
433
  - app/views/decidim/proposals/proposals/_proposals_picker.html.erb
424
434
  - app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb
@@ -426,8 +436,6 @@ files:
426
436
  - app/views/decidim/proposals/proposals/_votes_count.html.erb
427
437
  - app/views/decidim/proposals/proposals/_voting_rules.html.erb
428
438
  - app/views/decidim/proposals/proposals/_wizard_header.html.erb
429
- - app/views/decidim/proposals/proposals/compare.html.erb
430
- - app/views/decidim/proposals/proposals/complete.html.erb
431
439
  - app/views/decidim/proposals/proposals/edit.html.erb
432
440
  - app/views/decidim/proposals/proposals/edit_draft.html.erb
433
441
  - app/views/decidim/proposals/proposals/index.html.erb
@@ -578,6 +586,12 @@ files:
578
586
  - db/migrate/20210318082934_fix_counters_for_copied_proposals.rb
579
587
  - db/migrate/20230427105700_change_states_on_collaborative_drafts.rb
580
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
581
595
  - db/migrate/20240404202756_add_valuation_assignments_count_to_decidim_proposals_proposals.rb
582
596
  - decidim-proposals.gemspec
583
597
  - lib/decidim/api/proposal_input_filter.rb
@@ -589,6 +603,7 @@ files:
589
603
  - lib/decidim/proposals.rb
590
604
  - lib/decidim/proposals/admin.rb
591
605
  - lib/decidim/proposals/admin_engine.rb
606
+ - lib/decidim/proposals/admin_filter.rb
592
607
  - lib/decidim/proposals/api.rb
593
608
  - lib/decidim/proposals/commentable_collaborative_draft.rb
594
609
  - lib/decidim/proposals/commentable_proposal.rb
@@ -608,7 +623,7 @@ files:
608
623
  - lib/decidim/proposals/test/factories.rb
609
624
  - lib/decidim/proposals/valuatable.rb
610
625
  - lib/decidim/proposals/version.rb
611
- - lib/tasks/proposals/upgrade/decdim_proposal_upgrade_tasks.rake
626
+ - lib/tasks/proposals/upgrade/decidim_proposals_upgrade_tasks.rake
612
627
  homepage: https://decidim.org
613
628
  licenses:
614
629
  - AGPL-3.0
@@ -618,7 +633,7 @@ metadata:
618
633
  funding_uri: https://opencollective.com/decidim
619
634
  homepage_uri: https://decidim.org
620
635
  source_code_uri: https://github.com/decidim/decidim
621
- post_install_message:
636
+ post_install_message:
622
637
  rdoc_options: []
623
638
  require_paths:
624
639
  - lib
@@ -626,15 +641,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
626
641
  requirements:
627
642
  - - "~>"
628
643
  - !ruby/object:Gem::Version
629
- version: 3.1.0
644
+ version: 3.2.0
630
645
  required_rubygems_version: !ruby/object:Gem::Requirement
631
646
  requirements:
632
- - - ">="
647
+ - - ">"
633
648
  - !ruby/object:Gem::Version
634
- version: '0'
649
+ version: 1.3.1
635
650
  requirements: []
636
- rubygems_version: 3.5.9
637
- signing_key:
651
+ rubygems_version: 3.4.10
652
+ signing_key:
638
653
  specification_version: 4
639
654
  summary: Decidim proposals module
640
655
  test_files: []
@@ -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,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
@@ -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,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 %>