decidim-proposals 0.29.3 → 0.30.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 (206) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/proposals/highlighted_proposals_for_component/show.erb +13 -1
  3. data/app/cells/decidim/proposals/highlighted_proposals_for_component_cell.rb +1 -1
  4. data/app/cells/decidim/proposals/participatory_text_proposal_cell.rb +1 -1
  5. data/app/cells/decidim/proposals/proposal_g/show.erb +13 -0
  6. data/app/cells/decidim/proposals/proposal_g_cell.rb +13 -0
  7. data/app/cells/decidim/proposals/proposal_history_cell.rb +107 -0
  8. data/app/cells/decidim/proposals/proposal_l/show.erb +37 -0
  9. data/app/cells/decidim/proposals/proposal_l_cell.rb +9 -0
  10. data/app/cells/decidim/proposals/proposal_metadata_cell.rb +2 -2
  11. data/app/cells/decidim/proposals/proposal_vote/show.erb +75 -0
  12. data/app/cells/decidim/proposals/proposal_vote_cell.rb +43 -0
  13. data/app/commands/decidim/proposals/accept_coauthorship.rb +62 -0
  14. data/app/commands/decidim/proposals/admin/assign_proposals_to_valuator.rb +14 -0
  15. data/app/commands/decidim/proposals/admin/create_proposal.rb +6 -14
  16. data/app/commands/decidim/proposals/admin/create_proposal_note.rb +20 -11
  17. data/app/commands/decidim/proposals/admin/import_proposals.rb +60 -7
  18. data/app/commands/decidim/proposals/admin/merge_proposals.rb +2 -2
  19. data/app/commands/decidim/proposals/admin/proposal_notes_methods.rb +48 -0
  20. data/app/commands/decidim/proposals/admin/reply_proposal_note.rb +92 -0
  21. data/app/commands/decidim/proposals/admin/split_proposals.rb +2 -2
  22. data/app/commands/decidim/proposals/admin/update_proposal.rb +10 -16
  23. data/app/commands/decidim/proposals/admin/update_proposal_taxonomies.rb +34 -0
  24. data/app/commands/decidim/proposals/cancel_coauthorship.rb +32 -0
  25. data/app/commands/decidim/proposals/create_collaborative_draft.rb +1 -2
  26. data/app/commands/decidim/proposals/create_proposal.rb +1 -2
  27. data/app/commands/decidim/proposals/invite_coauthor.rb +45 -0
  28. data/app/commands/decidim/proposals/publish_collaborative_draft.rb +1 -2
  29. data/app/commands/decidim/proposals/reject_coauthorship.rb +54 -0
  30. data/app/commands/decidim/proposals/update_collaborative_draft.rb +1 -2
  31. data/app/commands/decidim/proposals/update_proposal.rb +1 -2
  32. data/app/controllers/concerns/decidim/proposals/admin/filterable.rb +5 -1
  33. data/app/controllers/concerns/decidim/proposals/admin/needs_interpolations.rb +40 -0
  34. data/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +46 -5
  35. data/app/controllers/decidim/proposals/admin/proposal_notes_controller.rb +18 -0
  36. data/app/controllers/decidim/proposals/admin/proposals_controller.rb +41 -85
  37. data/app/controllers/decidim/proposals/admin/proposals_imports_controller.rb +2 -2
  38. data/app/controllers/decidim/proposals/collaborative_drafts_controller.rb +2 -4
  39. data/app/controllers/decidim/proposals/invite_coauthors_controller.rb +87 -0
  40. data/app/controllers/decidim/proposals/proposals_controller.rb +7 -32
  41. data/app/controllers/decidim/proposals/versions_controller.rb +1 -1
  42. data/app/events/decidim/proposals/accepted_coauthorship_event.rb +8 -0
  43. data/app/events/decidim/proposals/admin/proposal_assigned_to_valuator_event.rb +27 -0
  44. data/app/events/decidim/proposals/admin/proposal_note_created_event.rb +5 -0
  45. data/app/events/decidim/proposals/coauthor_accepted_invite_event.rb +49 -0
  46. data/app/events/decidim/proposals/coauthor_invited_event.rb +45 -0
  47. data/app/events/decidim/proposals/coauthor_rejected_invite_event.rb +8 -0
  48. data/app/events/decidim/proposals/rejected_coauthorship_event.rb +8 -0
  49. data/app/events/decidim/proposals/update_proposal_taxonomies_event.rb +9 -0
  50. data/app/forms/decidim/proposals/admin/proposal_answer_form.rb +16 -0
  51. data/app/forms/decidim/proposals/admin/proposal_base_form.rb +3 -31
  52. data/app/forms/decidim/proposals/admin/proposal_form.rb +11 -6
  53. data/app/forms/decidim/proposals/admin/proposals_import_form.rb +0 -5
  54. data/app/forms/decidim/proposals/collaborative_draft_form.rb +0 -8
  55. data/app/forms/decidim/proposals/proposal_form.rb +5 -32
  56. data/app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb +25 -0
  57. data/app/helpers/decidim/proposals/admin/proposals_helper.rb +0 -1
  58. data/app/helpers/decidim/proposals/application_helper.rb +23 -15
  59. data/app/helpers/decidim/proposals/collaborative_draft_helper.rb +7 -7
  60. data/app/helpers/decidim/proposals/map_helper.rb +0 -18
  61. data/app/helpers/decidim/proposals/proposal_votes_helper.rb +15 -2
  62. data/app/helpers/decidim/proposals/proposals_helper.rb +3 -1
  63. data/app/jobs/decidim/proposals/admin/proposal_answer_job.rb +20 -0
  64. data/app/models/decidim/proposals/collaborative_draft.rb +13 -3
  65. data/app/models/decidim/proposals/proposal.rb +71 -5
  66. data/app/models/decidim/proposals/proposal_note.rb +11 -0
  67. data/app/models/decidim/proposals/proposal_state.rb +1 -1
  68. data/app/packs/entrypoints/decidim_proposals.js +1 -0
  69. data/app/packs/entrypoints/decidim_proposals_geocoding.js +2 -0
  70. data/app/packs/src/decidim/proposals/admin/proposals.js +16 -1
  71. data/app/packs/src/decidim/proposals/exit_handler.js +73 -0
  72. data/app/packs/stylesheets/decidim/proposals/proposals.scss +248 -3
  73. data/app/permissions/decidim/proposals/admin/permissions.rb +2 -5
  74. data/app/permissions/decidim/proposals/permissions.rb +42 -0
  75. data/app/presenters/decidim/proposals/admin_log/proposal_presenter.rb +1 -1
  76. data/app/presenters/decidim/proposals/proposal_presenter.rb +1 -1
  77. data/app/queries/decidim/proposals/filtered_proposals.rb +2 -2
  78. data/app/queries/decidim/proposals/metrics/accepted_proposals_metric_manage.rb +2 -2
  79. data/app/queries/decidim/proposals/metrics/endorsements_metric_manage.rb +10 -10
  80. data/app/queries/decidim/proposals/metrics/proposal_followers_metric_measure.rb +4 -4
  81. data/app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb +6 -6
  82. data/app/queries/decidim/proposals/metrics/proposals_metric_manage.rb +6 -6
  83. data/app/queries/decidim/proposals/metrics/votes_metric_manage.rb +6 -6
  84. data/app/services/decidim/proposals/proposal_builder.rb +1 -2
  85. data/app/views/decidim/proposals/admin/proposal_notes/_form.html.erb +3 -3
  86. data/app/views/decidim/proposals/admin/proposal_notes/_proposal_note.html.erb +28 -0
  87. data/app/views/decidim/proposals/admin/proposal_notes/_proposal_note_reply.html.erb +9 -0
  88. data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes.html.erb +4 -28
  89. data/app/views/decidim/proposals/admin/proposal_states/_form.html.erb +1 -1
  90. data/app/views/decidim/proposals/admin/proposals/_actions.html.erb +21 -0
  91. data/app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb +3 -2
  92. data/app/views/decidim/proposals/admin/proposals/_form.html.erb +17 -24
  93. data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +12 -28
  94. data/app/views/decidim/proposals/admin/proposals/_proposals-thead.html.erb +45 -0
  95. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_apply_answer_template.html.erb +22 -0
  96. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_dropdown.html.erb +15 -11
  97. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_taxonomy_change.html.erb +23 -0
  98. data/app/views/decidim/proposals/admin/proposals/index.html.erb +17 -48
  99. data/app/views/decidim/proposals/admin/proposals/manage_trash.html.erb +18 -0
  100. data/app/views/decidim/proposals/admin/proposals/publish_answers.js.erb +1 -1
  101. data/app/views/decidim/proposals/admin/proposals/show.html.erb +14 -26
  102. data/app/views/decidim/proposals/admin/proposals/update_attribute.js.erb +1 -1
  103. data/app/views/decidim/proposals/admin/proposals_imports/new.html.erb +0 -3
  104. data/app/views/decidim/proposals/collaborative_drafts/_collaborative_actions.html.erb +9 -0
  105. data/app/views/decidim/proposals/collaborative_drafts/_collaborative_draft_aside.html.erb +0 -15
  106. data/app/views/decidim/proposals/collaborative_drafts/_edit_form_fields.html.erb +4 -6
  107. data/app/views/decidim/proposals/collaborative_drafts/index.html.erb +6 -2
  108. data/app/views/decidim/proposals/collaborative_drafts/show.html.erb +27 -11
  109. data/app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb +29 -9
  110. data/app/views/decidim/proposals/proposals/_actions.html.erb +4 -7
  111. data/app/views/decidim/proposals/proposals/_edit_form_fields.html.erb +17 -22
  112. data/app/views/decidim/proposals/proposals/_exit_modal.html.erb +17 -0
  113. data/app/views/decidim/proposals/proposals/_notification_alert_box.html.erb +1 -0
  114. data/app/views/decidim/proposals/proposals/_proposal_actions.html.erb +19 -0
  115. data/app/views/decidim/proposals/proposals/_proposal_aside.html.erb +9 -32
  116. data/app/views/decidim/proposals/proposals/_proposal_voting_rules.html.erb +33 -0
  117. data/app/views/decidim/proposals/proposals/_proposals.html.erb +1 -1
  118. data/app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb +2 -2
  119. data/app/views/decidim/proposals/proposals/_remaining_votes_notification.html.erb +12 -0
  120. data/app/views/decidim/proposals/proposals/_update_proposal_voting_rules.html.erb +6 -0
  121. data/app/views/decidim/proposals/proposals/_vote_button.html.erb +12 -8
  122. data/app/views/decidim/proposals/proposals/_votes_count.html.erb +2 -1
  123. data/app/views/decidim/proposals/proposals/_voting_rules.html.erb +1 -7
  124. data/app/views/decidim/proposals/proposals/index.html.erb +3 -18
  125. data/app/views/decidim/proposals/proposals/index.js.erb +1 -1
  126. data/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb +3 -1
  127. data/app/views/decidim/proposals/proposals/show.html.erb +35 -15
  128. data/config/locales/ar.yml +15 -73
  129. data/config/locales/bg.yml +12 -89
  130. data/config/locales/bs-BA.yml +2 -13
  131. data/config/locales/ca.yml +209 -84
  132. data/config/locales/cs.yml +210 -81
  133. data/config/locales/de.yml +213 -89
  134. data/config/locales/el.yml +12 -84
  135. data/config/locales/en.yml +206 -81
  136. data/config/locales/es-MX.yml +213 -88
  137. data/config/locales/es-PY.yml +213 -88
  138. data/config/locales/es.yml +214 -89
  139. data/config/locales/eu.yml +288 -164
  140. data/config/locales/fi-plain.yml +213 -87
  141. data/config/locales/fi.yml +213 -87
  142. data/config/locales/fr-CA.yml +116 -97
  143. data/config/locales/fr.yml +116 -97
  144. data/config/locales/ga-IE.yml +1 -21
  145. data/config/locales/gl.yml +8 -45
  146. data/config/locales/hu.yml +12 -68
  147. data/config/locales/id-ID.yml +9 -43
  148. data/config/locales/is-IS.yml +0 -19
  149. data/config/locales/it.yml +11 -77
  150. data/config/locales/ja.yml +165 -106
  151. data/config/locales/lt.yml +13 -85
  152. data/config/locales/lv.yml +10 -52
  153. data/config/locales/nl.yml +10 -59
  154. data/config/locales/no.yml +10 -44
  155. data/config/locales/pl.yml +11 -88
  156. data/config/locales/pt-BR.yml +9 -74
  157. data/config/locales/pt.yml +10 -56
  158. data/config/locales/ro-RO.yml +12 -72
  159. data/config/locales/ru.yml +0 -23
  160. data/config/locales/sk.yml +10 -52
  161. data/config/locales/sr-CS.yml +2 -14
  162. data/config/locales/sv.yml +127 -86
  163. data/config/locales/tr-TR.yml +10 -53
  164. data/config/locales/uk.yml +0 -23
  165. data/config/locales/zh-CN.yml +10 -53
  166. data/config/locales/zh-TW.yml +12 -86
  167. data/db/migrate/20171220084719_add_published_at_to_proposals.rb +1 -1
  168. data/db/migrate/20181016132225_add_organization_as_author.rb +1 -1
  169. data/db/migrate/20200120215928_move_proposal_endorsements_to_core_endorsements.rb +1 -1
  170. data/db/migrate/20200827154156_add_commentable_counter_cache_to_proposals.rb +3 -3
  171. data/db/migrate/20210310102839_add_followable_counter_cache_to_proposals.rb +1 -1
  172. data/db/migrate/20240110203504_create_default_proposal_states.rb +1 -1
  173. data/db/migrate/20240404202756_add_valuation_assignments_count_to_decidim_proposals_proposals.rb +1 -1
  174. data/db/migrate/20240617091140_add_email_on_assigned_proposals_to_users.rb +7 -0
  175. data/db/migrate/20240617170052_add_parent_relation_to_decidim_proposal_notes.rb +7 -0
  176. data/db/migrate/20240828103755_add_deleted_at_to_decidim_proposals_proposals.rb +8 -0
  177. data/decidim-proposals.gemspec +1 -1
  178. data/lib/decidim/api/functions/proposal_finder_helper.rb +12 -0
  179. data/lib/decidim/api/functions/proposal_list_helper.rb +12 -0
  180. data/lib/decidim/api/proposal_type.rb +17 -25
  181. data/lib/decidim/api/proposals_type.rb +4 -19
  182. data/lib/decidim/proposals/admin_engine.rb +12 -3
  183. data/lib/decidim/proposals/admin_filter.rb +3 -6
  184. data/lib/decidim/proposals/component.rb +4 -5
  185. data/lib/decidim/proposals/download_your_data_proposal_serializer.rb +15 -0
  186. data/lib/decidim/proposals/engine.rb +5 -0
  187. data/lib/decidim/proposals/import/proposal_creator.rb +4 -4
  188. data/lib/decidim/proposals/proposal_serializer.rb +12 -29
  189. data/lib/decidim/proposals/seeds.rb +21 -17
  190. data/lib/decidim/proposals/test/factories.rb +2 -1
  191. data/lib/decidim/proposals/version.rb +1 -1
  192. data/lib/decidim/proposals.rb +4 -0
  193. data/lib/tasks/proposals/upgrade/decidim_proposals_upgrade_tasks.rake +0 -22
  194. metadata +65 -34
  195. data/app/commands/decidim/proposals/admin/update_proposal_category.rb +0 -70
  196. data/app/commands/decidim/proposals/admin/update_proposal_scope.rb +0 -75
  197. data/app/events/decidim/proposals/admin/update_proposal_category_event.rb +0 -11
  198. data/app/events/decidim/proposals/admin/update_proposal_scope_event.rb +0 -11
  199. data/app/jobs/decidim/proposals/admin/import_proposals_job.rb +0 -91
  200. data/app/mailers/decidim/proposals/admin/import_proposals_mailer.rb +0 -30
  201. data/app/views/decidim/proposals/admin/import_proposals_mailer/notify_failure.html.erb +0 -1
  202. data/app/views/decidim/proposals/admin/import_proposals_mailer/notify_success.html.erb +0 -2
  203. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_recategorize.html.erb +0 -15
  204. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_scope-change.html.erb +0 -21
  205. data/app/views/decidim/proposals/collaborative_drafts/_actions.html.erb +0 -7
  206. data/config/locales/ca-IT.yml +0 -945
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.29.3
4
+ version: 0.30.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-04-29 00:00:00.000000000 Z
13
+ date: 2025-02-18 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.29.3
21
+ version: 0.30.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.29.3
28
+ version: 0.30.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.29.3
35
+ version: 0.30.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.29.3
42
+ version: 0.30.0.rc1
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.29.3
83
+ version: 0.30.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.29.3
90
+ version: 0.30.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.29.3
97
+ version: 0.30.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.29.3
104
+ version: 0.30.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.29.3
111
+ version: 0.30.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.29.3
118
+ version: 0.30.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.29.3
125
+ version: 0.30.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.29.3
132
+ version: 0.30.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.29.3
139
+ version: 0.30.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.29.3
146
+ version: 0.30.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.29.3
153
+ version: 0.30.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.29.3
160
+ version: 0.30.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.29.3
167
+ version: 0.30.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.29.3
174
+ version: 0.30.0.rc1
175
175
  description: A proposals component for decidim's participatory spaces.
176
176
  email:
177
177
  - josepjaume@gmail.com
@@ -206,6 +206,8 @@ files:
206
206
  - app/cells/decidim/proposals/proposal_cell.rb
207
207
  - app/cells/decidim/proposals/proposal_g/show.erb
208
208
  - app/cells/decidim/proposals/proposal_g_cell.rb
209
+ - app/cells/decidim/proposals/proposal_history_cell.rb
210
+ - app/cells/decidim/proposals/proposal_l/show.erb
209
211
  - app/cells/decidim/proposals/proposal_l_cell.rb
210
212
  - app/cells/decidim/proposals/proposal_link_to_collaborative_draft_cell.rb
211
213
  - app/cells/decidim/proposals/proposal_link_to_rejected_emendation_cell.rb
@@ -213,11 +215,14 @@ files:
213
215
  - app/cells/decidim/proposals/proposal_linked_resources_cell.rb
214
216
  - app/cells/decidim/proposals/proposal_metadata_cell.rb
215
217
  - app/cells/decidim/proposals/proposal_s_cell.rb
218
+ - app/cells/decidim/proposals/proposal_vote/show.erb
219
+ - app/cells/decidim/proposals/proposal_vote_cell.rb
216
220
  - app/cells/decidim/proposals/proposals_picker/show.erb
217
221
  - app/cells/decidim/proposals/proposals_picker_cell.rb
218
222
  - app/cells/decidim/proposals/reported_content/show.erb
219
223
  - app/cells/decidim/proposals/reported_content_cell.rb
220
224
  - app/commands/decidim/proposals/accept_access_to_collaborative_draft.rb
225
+ - app/commands/decidim/proposals/accept_coauthorship.rb
221
226
  - app/commands/decidim/proposals/admin/answer_proposal.rb
222
227
  - app/commands/decidim/proposals/admin/assign_proposals_to_valuator.rb
223
228
  - app/commands/decidim/proposals/admin/create_proposal.rb
@@ -229,23 +234,27 @@ files:
229
234
  - app/commands/decidim/proposals/admin/import_proposals.rb
230
235
  - app/commands/decidim/proposals/admin/merge_proposals.rb
231
236
  - app/commands/decidim/proposals/admin/notify_proposal_answer.rb
237
+ - app/commands/decidim/proposals/admin/proposal_notes_methods.rb
232
238
  - app/commands/decidim/proposals/admin/publish_answers.rb
233
239
  - app/commands/decidim/proposals/admin/publish_participatory_text.rb
240
+ - app/commands/decidim/proposals/admin/reply_proposal_note.rb
234
241
  - app/commands/decidim/proposals/admin/split_proposals.rb
235
242
  - app/commands/decidim/proposals/admin/unassign_proposals_from_valuator.rb
236
243
  - app/commands/decidim/proposals/admin/update_participatory_text.rb
237
244
  - app/commands/decidim/proposals/admin/update_proposal.rb
238
- - app/commands/decidim/proposals/admin/update_proposal_category.rb
239
- - app/commands/decidim/proposals/admin/update_proposal_scope.rb
240
245
  - app/commands/decidim/proposals/admin/update_proposal_state.rb
246
+ - app/commands/decidim/proposals/admin/update_proposal_taxonomies.rb
247
+ - app/commands/decidim/proposals/cancel_coauthorship.rb
241
248
  - app/commands/decidim/proposals/create_collaborative_draft.rb
242
249
  - app/commands/decidim/proposals/create_proposal.rb
243
250
  - app/commands/decidim/proposals/destroy_proposal.rb
244
251
  - app/commands/decidim/proposals/gallery_methods.rb
245
252
  - app/commands/decidim/proposals/hashtags_methods.rb
253
+ - app/commands/decidim/proposals/invite_coauthor.rb
246
254
  - app/commands/decidim/proposals/publish_collaborative_draft.rb
247
255
  - app/commands/decidim/proposals/publish_proposal.rb
248
256
  - app/commands/decidim/proposals/reject_access_to_collaborative_draft.rb
257
+ - app/commands/decidim/proposals/reject_coauthorship.rb
249
258
  - app/commands/decidim/proposals/request_access_to_collaborative_draft.rb
250
259
  - app/commands/decidim/proposals/unvote_proposal.rb
251
260
  - app/commands/decidim/proposals/update_collaborative_draft.rb
@@ -254,6 +263,7 @@ files:
254
263
  - app/commands/decidim/proposals/withdraw_collaborative_draft.rb
255
264
  - app/commands/decidim/proposals/withdraw_proposal.rb
256
265
  - app/controllers/concerns/decidim/proposals/admin/filterable.rb
266
+ - app/controllers/concerns/decidim/proposals/admin/needs_interpolations.rb
257
267
  - app/controllers/concerns/decidim/proposals/collaborative_orderable.rb
258
268
  - app/controllers/concerns/decidim/proposals/orderable.rb
259
269
  - app/controllers/decidim/proposals/admin/application_controller.rb
@@ -269,12 +279,16 @@ files:
269
279
  - app/controllers/decidim/proposals/application_controller.rb
270
280
  - app/controllers/decidim/proposals/collaborative_draft_collaborator_requests_controller.rb
271
281
  - app/controllers/decidim/proposals/collaborative_drafts_controller.rb
282
+ - app/controllers/decidim/proposals/invite_coauthors_controller.rb
272
283
  - app/controllers/decidim/proposals/proposal_votes_controller.rb
273
284
  - app/controllers/decidim/proposals/proposals_controller.rb
274
285
  - app/controllers/decidim/proposals/versions_controller.rb
286
+ - app/events/decidim/proposals/accepted_coauthorship_event.rb
287
+ - app/events/decidim/proposals/admin/proposal_assigned_to_valuator_event.rb
275
288
  - app/events/decidim/proposals/admin/proposal_note_created_event.rb
276
- - app/events/decidim/proposals/admin/update_proposal_category_event.rb
277
- - app/events/decidim/proposals/admin/update_proposal_scope_event.rb
289
+ - app/events/decidim/proposals/coauthor_accepted_invite_event.rb
290
+ - app/events/decidim/proposals/coauthor_invited_event.rb
291
+ - app/events/decidim/proposals/coauthor_rejected_invite_event.rb
278
292
  - app/events/decidim/proposals/collaborative_draft_access_accepted_event.rb
279
293
  - app/events/decidim/proposals/collaborative_draft_access_rejected_event.rb
280
294
  - app/events/decidim/proposals/collaborative_draft_access_request_event.rb
@@ -288,6 +302,8 @@ files:
288
302
  - app/events/decidim/proposals/proposal_mentioned_event.rb
289
303
  - app/events/decidim/proposals/proposal_state_changed_event.rb
290
304
  - app/events/decidim/proposals/publish_proposal_event.rb
305
+ - app/events/decidim/proposals/rejected_coauthorship_event.rb
306
+ - app/events/decidim/proposals/update_proposal_taxonomies_event.rb
291
307
  - app/events/decidim/proposals/voting_enabled_event.rb
292
308
  - app/forms/decidim/proposals/accept_access_to_collaborative_draft_form.rb
293
309
  - app/forms/decidim/proposals/access_to_collaborative_draft_form.rb
@@ -322,11 +338,10 @@ files:
322
338
  - app/helpers/decidim/proposals/proposal_votes_helper.rb
323
339
  - app/helpers/decidim/proposals/proposal_wizard_helper.rb
324
340
  - app/helpers/decidim/proposals/proposals_helper.rb
325
- - app/jobs/decidim/proposals/admin/import_proposals_job.rb
341
+ - app/jobs/decidim/proposals/admin/proposal_answer_job.rb
326
342
  - app/jobs/decidim/proposals/hide_all_created_by_author_job.rb
327
343
  - app/jobs/decidim/proposals/notify_proposals_mentioned_job.rb
328
344
  - app/jobs/decidim/proposals/settings_change_job.rb
329
- - app/mailers/decidim/proposals/admin/import_proposals_mailer.rb
330
345
  - app/models/decidim/proposals/application_record.rb
331
346
  - app/models/decidim/proposals/collaborative_draft.rb
332
347
  - app/models/decidim/proposals/collaborative_draft_collaborator_request.rb
@@ -340,6 +355,7 @@ files:
340
355
  - app/packs/documents/decidim/proposals/participatory_texts/participatory_text.odt
341
356
  - app/packs/entrypoints/decidim_proposals.js
342
357
  - app/packs/entrypoints/decidim_proposals_admin.js
358
+ - app/packs/entrypoints/decidim_proposals_geocoding.js
343
359
  - app/packs/entrypoints/participatory_texts_admin.js
344
360
  - app/packs/images/decidim/gamification/badges/decidim_gamification_badges_accepted_proposals.svg
345
361
  - app/packs/images/decidim/gamification/badges/decidim_gamification_badges_proposal_votes.svg
@@ -350,6 +366,7 @@ files:
350
366
  - app/packs/src/decidim/proposals/admin/proposals.js
351
367
  - app/packs/src/decidim/proposals/admin/proposals_form.js
352
368
  - app/packs/src/decidim/proposals/choose_proposals.js
369
+ - app/packs/src/decidim/proposals/exit_handler.js
353
370
  - app/packs/src/decidim/proposals/utils.js
354
371
  - app/packs/stylesheets/decidim/proposals/admin/participatory_texts.scss
355
372
  - app/packs/stylesheets/decidim/proposals/proposals.scss
@@ -378,8 +395,6 @@ files:
378
395
  - app/services/decidim/proposals/proposal_builder.rb
379
396
  - app/services/decidim/proposals/proposal_search.rb
380
397
  - app/validators/proposal_length_validator.rb
381
- - app/views/decidim/proposals/admin/import_proposals_mailer/notify_failure.html.erb
382
- - app/views/decidim/proposals/admin/import_proposals_mailer/notify_success.html.erb
383
398
  - app/views/decidim/proposals/admin/imports/_proposals_fields.html.erb
384
399
  - app/views/decidim/proposals/admin/participatory_texts/_article-preview.html.erb
385
400
  - app/views/decidim/proposals/admin/participatory_texts/_bulk-actions.html.erb
@@ -387,11 +402,14 @@ files:
387
402
  - app/views/decidim/proposals/admin/participatory_texts/new_import.html.erb
388
403
  - app/views/decidim/proposals/admin/proposal_answers/_form.html.erb
389
404
  - app/views/decidim/proposals/admin/proposal_notes/_form.html.erb
405
+ - app/views/decidim/proposals/admin/proposal_notes/_proposal_note.html.erb
406
+ - app/views/decidim/proposals/admin/proposal_notes/_proposal_note_reply.html.erb
390
407
  - app/views/decidim/proposals/admin/proposal_notes/_proposal_notes.html.erb
391
408
  - app/views/decidim/proposals/admin/proposal_states/_form.html.erb
392
409
  - app/views/decidim/proposals/admin/proposal_states/edit.html.erb
393
410
  - app/views/decidim/proposals/admin/proposal_states/index.html.erb
394
411
  - app/views/decidim/proposals/admin/proposal_states/new.html.erb
412
+ - app/views/decidim/proposals/admin/proposals/_actions.html.erb
395
413
  - app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb
396
414
  - app/views/decidim/proposals/admin/proposals/_documents.html.erb
397
415
  - app/views/decidim/proposals/admin/proposals/_endorsers.html.erb
@@ -399,24 +417,26 @@ files:
399
417
  - app/views/decidim/proposals/admin/proposals/_meetings.html.erb
400
418
  - app/views/decidim/proposals/admin/proposals/_photos.html.erb
401
419
  - app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb
420
+ - app/views/decidim/proposals/admin/proposals/_proposals-thead.html.erb
421
+ - app/views/decidim/proposals/admin/proposals/bulk_actions/_apply_answer_template.html.erb
402
422
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_assign_to_valuator.html.erb
403
423
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_dropdown.html.erb
404
424
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_merge.html.erb
405
425
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_publish_answers.html.erb
406
- - app/views/decidim/proposals/admin/proposals/bulk_actions/_recategorize.html.erb
407
- - app/views/decidim/proposals/admin/proposals/bulk_actions/_scope-change.html.erb
408
426
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_split.html.erb
427
+ - app/views/decidim/proposals/admin/proposals/bulk_actions/_taxonomy_change.html.erb
409
428
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_unassign_from_valuator.html.erb
410
429
  - app/views/decidim/proposals/admin/proposals/bulk_actions/_valuators_picker.html.erb
411
430
  - app/views/decidim/proposals/admin/proposals/edit.html.erb
412
431
  - app/views/decidim/proposals/admin/proposals/index.html.erb
432
+ - app/views/decidim/proposals/admin/proposals/manage_trash.html.erb
413
433
  - app/views/decidim/proposals/admin/proposals/new.html.erb
414
434
  - app/views/decidim/proposals/admin/proposals/publish_answers.js.erb
415
435
  - app/views/decidim/proposals/admin/proposals/show.html.erb
416
436
  - app/views/decidim/proposals/admin/proposals/update_attribute.js.erb
417
437
  - app/views/decidim/proposals/admin/proposals_imports/new.html.erb
418
438
  - app/views/decidim/proposals/collaborative_drafts/_accept_request_access_form.html.erb
419
- - app/views/decidim/proposals/collaborative_drafts/_actions.html.erb
439
+ - app/views/decidim/proposals/collaborative_drafts/_collaborative_actions.html.erb
420
440
  - app/views/decidim/proposals/collaborative_drafts/_collaborative_draft_aside.html.erb
421
441
  - app/views/decidim/proposals/collaborative_drafts/_collaborative_drafts.html.erb
422
442
  - app/views/decidim/proposals/collaborative_drafts/_collaborator_requests.html.erb
@@ -431,12 +451,18 @@ files:
431
451
  - app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb
432
452
  - app/views/decidim/proposals/proposals/_actions.html.erb
433
453
  - app/views/decidim/proposals/proposals/_edit_form_fields.html.erb
454
+ - app/views/decidim/proposals/proposals/_exit_modal.html.erb
434
455
  - app/views/decidim/proposals/proposals/_linked_proposals.html.erb
456
+ - app/views/decidim/proposals/proposals/_notification_alert_box.html.erb
435
457
  - app/views/decidim/proposals/proposals/_proposal.html.erb
458
+ - app/views/decidim/proposals/proposals/_proposal_actions.html.erb
436
459
  - app/views/decidim/proposals/proposals/_proposal_aside.html.erb
460
+ - app/views/decidim/proposals/proposals/_proposal_voting_rules.html.erb
437
461
  - app/views/decidim/proposals/proposals/_proposals.html.erb
438
462
  - app/views/decidim/proposals/proposals/_proposals_picker.html.erb
439
463
  - app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb
464
+ - app/views/decidim/proposals/proposals/_remaining_votes_notification.html.erb
465
+ - app/views/decidim/proposals/proposals/_update_proposal_voting_rules.html.erb
440
466
  - app/views/decidim/proposals/proposals/_vote_button.html.erb
441
467
  - app/views/decidim/proposals/proposals/_votes_count.html.erb
442
468
  - app/views/decidim/proposals/proposals/_voting_rules.html.erb
@@ -461,7 +487,6 @@ files:
461
487
  - config/locales/bg.yml
462
488
  - config/locales/bn-BD.yml
463
489
  - config/locales/bs-BA.yml
464
- - config/locales/ca-IT.yml
465
490
  - config/locales/ca.yml
466
491
  - config/locales/cs-CZ.yml
467
492
  - config/locales/cs.yml
@@ -601,7 +626,12 @@ files:
601
626
  - db/migrate/20240110203504_create_default_proposal_states.rb
602
627
  - db/migrate/20240209092404_change_color_fields_on_proposals_states.rb
603
628
  - db/migrate/20240404202756_add_valuation_assignments_count_to_decidim_proposals_proposals.rb
629
+ - db/migrate/20240617091140_add_email_on_assigned_proposals_to_users.rb
630
+ - db/migrate/20240617170052_add_parent_relation_to_decidim_proposal_notes.rb
631
+ - db/migrate/20240828103755_add_deleted_at_to_decidim_proposals_proposals.rb
604
632
  - decidim-proposals.gemspec
633
+ - lib/decidim/api/functions/proposal_finder_helper.rb
634
+ - lib/decidim/api/functions/proposal_list_helper.rb
605
635
  - lib/decidim/api/proposal_input_filter.rb
606
636
  - lib/decidim/api/proposal_input_sort.rb
607
637
  - lib/decidim/api/proposal_type.rb
@@ -617,6 +647,7 @@ files:
617
647
  - lib/decidim/proposals/commentable_proposal.rb
618
648
  - lib/decidim/proposals/component.rb
619
649
  - lib/decidim/proposals/doc_to_markdown.rb
650
+ - lib/decidim/proposals/download_your_data_proposal_serializer.rb
620
651
  - lib/decidim/proposals/engine.rb
621
652
  - lib/decidim/proposals/import.rb
622
653
  - lib/decidim/proposals/import/proposal_answer_creator.rb
@@ -649,14 +680,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
649
680
  requirements:
650
681
  - - "~>"
651
682
  - !ruby/object:Gem::Version
652
- version: 3.2.0
683
+ version: 3.3.0
653
684
  required_rubygems_version: !ruby/object:Gem::Requirement
654
685
  requirements:
655
686
  - - ">="
656
687
  - !ruby/object:Gem::Version
657
688
  version: '0'
658
689
  requirements: []
659
- rubygems_version: 3.4.10
690
+ rubygems_version: 3.5.11
660
691
  signing_key:
661
692
  specification_version: 4
662
693
  summary: Decidim proposals module
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- module Admin
6
- # A command with all the business logic when an admin batch updates proposals category.
7
- class UpdateProposalCategory < Decidim::Command
8
- include TranslatableAttributes
9
-
10
- # Public: Initializes the command.
11
- #
12
- # category_id - the category id to update
13
- # proposal_ids - the proposals ids to update.
14
- def initialize(category_id, proposal_ids)
15
- @category = Decidim::Category.find_by id: category_id
16
- @proposal_ids = proposal_ids
17
- @response = { category_name: "", successful: [], errored: [] }
18
- end
19
-
20
- # Executes the command. Broadcasts these events:
21
- #
22
- # - :update_proposals_category - when everything is ok, returns @response.
23
- # - :invalid_category - if the category is blank.
24
- # - :invalid_proposal_ids - if the proposal_ids is blank.
25
- #
26
- # Returns @response hash:
27
- #
28
- # - :category_name - the translated_name of the category assigned
29
- # - :successful - Array of names of the updated proposals
30
- # - :errored - Array of names of the proposals not updated because they already had the category assigned
31
- def call
32
- return broadcast(:invalid_category) if @category.blank?
33
- return broadcast(:invalid_proposal_ids) if @proposal_ids.blank?
34
-
35
- @response[:category_name] = @category.translated_name
36
- Proposal.where(id: @proposal_ids).find_each do |proposal|
37
- if @category == proposal.category
38
- @response[:errored] << translated_attribute(proposal.title)
39
- else
40
- transaction do
41
- update_proposal_category proposal
42
- notify_author proposal if proposal.coauthorships.any?
43
- end
44
- @response[:successful] << translated_attribute(proposal.title)
45
- end
46
- end
47
-
48
- broadcast(:update_proposals_category, @response)
49
- end
50
-
51
- private
52
-
53
- def update_proposal_category(proposal)
54
- proposal.update!(
55
- category: @category
56
- )
57
- end
58
-
59
- def notify_author(proposal)
60
- Decidim::EventsManager.publish(
61
- event: "decidim.events.proposals.proposal_update_category",
62
- event_class: Decidim::Proposals::Admin::UpdateProposalCategoryEvent,
63
- resource: proposal,
64
- affected_users: proposal.notifiable_identities
65
- )
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,75 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- module Admin
6
- # A command with all the business logic when an admin batch updates proposals scope.
7
- class UpdateProposalScope < Decidim::Command
8
- include TranslatableAttributes
9
- # Public: Initializes the command.
10
- #
11
- # scope_id - the scope id to update
12
- # proposal_ids - the proposals ids to update.
13
- def initialize(scope_id, proposal_ids)
14
- @scope = Decidim::Scope.find_by id: scope_id
15
- @proposal_ids = proposal_ids
16
- @response = { scope_name: "", successful: [], errored: [] }
17
- end
18
-
19
- # Executes the command. Broadcasts these events:
20
- #
21
- # - :update_proposals_scope - when everything is ok, returns @response.
22
- # - :invalid_scope - if the scope is blank.
23
- # - :invalid_proposal_ids - if the proposal_ids is blank.
24
- #
25
- # Returns @response hash:
26
- #
27
- # - :scope_name - the translated_name of the scope assigned
28
- # - :successful - Array of names of the updated proposals
29
- # - :errored - Array of names of the proposals not updated because they already had the scope assigned
30
- def call
31
- return broadcast(:invalid_scope) if @scope.blank?
32
- return broadcast(:invalid_proposal_ids) if @proposal_ids.blank?
33
-
34
- update_proposals_scope
35
-
36
- broadcast(:update_proposals_scope, @response)
37
- end
38
-
39
- private
40
-
41
- attr_reader :scope, :proposal_ids
42
-
43
- def update_proposals_scope
44
- @response[:scope_name] = translated_attribute(scope.name, scope.organization)
45
- Proposal.where(id: proposal_ids).find_each do |proposal|
46
- if scope == proposal.scope
47
- @response[:errored] << translated_attribute(proposal.title)
48
- else
49
- transaction do
50
- update_proposal_scope proposal
51
- notify_author proposal if proposal.coauthorships.any?
52
- end
53
- @response[:successful] << translated_attribute(proposal.title)
54
- end
55
- end
56
- end
57
-
58
- def update_proposal_scope(proposal)
59
- proposal.update!(
60
- scope:
61
- )
62
- end
63
-
64
- def notify_author(proposal)
65
- Decidim::EventsManager.publish(
66
- event: "decidim.events.proposals.proposal_update_scope",
67
- event_class: Decidim::Proposals::Admin::UpdateProposalScopeEvent,
68
- resource: proposal,
69
- affected_users: proposal.notifiable_identities
70
- )
71
- end
72
- end
73
- end
74
- end
75
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- module Admin
6
- class UpdateProposalCategoryEvent < Decidim::Events::SimpleEvent
7
- include Decidim::Events::AuthorEvent
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- module Admin
6
- class UpdateProposalScopeEvent < Decidim::Events::SimpleEvent
7
- include Decidim::Events::AuthorEvent
8
- end
9
- end
10
- end
11
- end
@@ -1,91 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Proposals
5
- module Admin
6
- class ImportProposalsJob < ApplicationJob
7
- queue_as :default
8
-
9
- def perform(form)
10
- @form = form
11
- ActiveRecord::Base.transaction do
12
- proposals.map do |original_proposal|
13
- next if proposal_already_copied?(original_proposal, target_component)
14
-
15
- Decidim::Proposals::ProposalBuilder.copy(
16
- original_proposal,
17
- author: proposal_author,
18
- action_user: current_user,
19
- extra_attributes: {
20
- "component" => target_component
21
- }.merge(proposal_answer_attributes(original_proposal))
22
- )
23
- end
24
- end
25
- ImportProposalsMailer.notify_success(current_user, origin_component, target_component, proposals.count).deliver_later
26
- rescue ActiveRecord::RecordNotFound, NoMethodError
27
- ImportProposalsMailer.notify_failure(current_user, origin_component, target_component).deliver_later
28
- end
29
-
30
- private
31
-
32
- def proposals
33
- proposals = Decidim::Proposals::Proposal.where(component: origin_component)
34
- proposals = proposals.where(scope: proposal_scopes) unless proposal_scopes.empty?
35
-
36
- if @form["states"].include?("not_answered")
37
- proposals.not_answered.or(proposals.where(id: proposals.only_status(@form["states"]).pluck(:id)))
38
- else
39
- proposals.only_status(@form["states"])
40
- end
41
- end
42
-
43
- def origin_component
44
- @origin_component ||= Decidim::Component.find(@form["origin_component_id"])
45
- end
46
-
47
- def target_component
48
- @target_component ||= Decidim::Component.find(@form["current_component_id"])
49
- end
50
-
51
- def current_user
52
- @current_user ||= Decidim::User.find(@form["current_user_id"])
53
- end
54
-
55
- def current_organization
56
- @current_organization ||= Decidim::Organization.find(@form["current_organization_id"])
57
- end
58
-
59
- def proposal_already_copied?(original_proposal, target_component)
60
- # Note: we are including also proposals from unpublished components
61
- # because otherwise duplicates could be created until the component is
62
- # published.
63
- original_proposal.linked_resources(:proposals, "copied_from_component", component_published: false).any? do |proposal|
64
- proposal.component == target_component
65
- end
66
- end
67
-
68
- def proposal_author
69
- @form["keep_authors"] ? nil : current_organization
70
- end
71
-
72
- def proposal_scopes
73
- @form["scopes"] || []
74
- end
75
-
76
- def proposal_answer_attributes(original_proposal)
77
- return {} unless @form["keep_answers"]
78
-
79
- state = Decidim::Proposals::ProposalState.where(component: target_component, token: original_proposal.proposal_state&.token).first
80
-
81
- {
82
- answer: original_proposal.answer,
83
- answered_at: original_proposal.answered_at,
84
- proposal_state: state,
85
- state_published_at: original_proposal.state_published_at
86
- }
87
- end
88
- end
89
- end
90
- end
91
- end