decidim-proposals 0.27.5 → 0.28.0.rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (273) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/proposals/collaborative_draft_cell.rb +1 -1
  3. data/app/cells/decidim/proposals/collaborative_draft_l_cell.rb +16 -0
  4. data/app/cells/decidim/proposals/collaborative_draft_link_to_proposal/show.erb +4 -12
  5. data/app/cells/decidim/proposals/collaborative_draft_link_to_proposal_cell.rb +0 -29
  6. data/app/cells/decidim/proposals/collaborative_draft_metadata_cell.rb +30 -0
  7. data/app/cells/decidim/proposals/content_blocks/highlighted_proposals_cell.rb +2 -8
  8. data/app/cells/decidim/proposals/cost_report/show.erb +5 -34
  9. data/app/cells/decidim/proposals/cost_report_cell.rb +0 -13
  10. data/app/cells/decidim/proposals/highlighted_proposals_for_component/show.erb +29 -17
  11. data/app/cells/decidim/proposals/highlighted_proposals_for_component_cell.rb +34 -8
  12. data/app/cells/decidim/proposals/irreversible_action_modal/show.erb +9 -17
  13. data/app/cells/decidim/proposals/irreversible_action_modal_cell.rb +7 -9
  14. data/app/cells/decidim/proposals/participatory_text_proposal/buttons.erb +21 -31
  15. data/app/cells/decidim/proposals/participatory_text_proposal/show.erb +5 -9
  16. data/app/cells/decidim/proposals/participatory_text_proposal_cell.rb +0 -9
  17. data/app/cells/decidim/proposals/proposal_activity_cell.rb +1 -12
  18. data/app/cells/decidim/proposals/proposal_cell.rb +6 -1
  19. data/app/cells/decidim/proposals/proposal_l_cell.rb +47 -0
  20. data/app/cells/decidim/proposals/proposal_link_to_collaborative_draft_cell.rb +6 -4
  21. data/app/cells/decidim/proposals/proposal_link_to_rejected_emendation_cell.rb +9 -7
  22. data/app/cells/decidim/proposals/proposal_linked_resources/show.erb +3 -8
  23. data/app/cells/decidim/proposals/proposal_metadata_cell.rb +61 -0
  24. data/app/cells/decidim/proposals/proposal_s_cell.rb +21 -0
  25. data/app/cells/decidim/proposals/proposals_picker/show.erb +13 -13
  26. data/app/cells/decidim/proposals/proposals_picker_cell.rb +15 -38
  27. data/app/commands/decidim/proposals/accept_access_to_collaborative_draft.rb +1 -1
  28. data/app/commands/decidim/proposals/admin/answer_proposal.rb +1 -1
  29. data/app/commands/decidim/proposals/admin/assign_proposals_to_valuator.rb +3 -3
  30. data/app/commands/decidim/proposals/admin/create_proposal.rb +2 -2
  31. data/app/commands/decidim/proposals/admin/create_proposal_note.rb +4 -4
  32. data/app/commands/decidim/proposals/admin/discard_participatory_text.rb +1 -1
  33. data/app/commands/decidim/proposals/admin/import_participatory_text.rb +1 -1
  34. data/app/commands/decidim/proposals/admin/import_proposals.rb +2 -13
  35. data/app/commands/decidim/proposals/admin/merge_proposals.rb +1 -1
  36. data/app/commands/decidim/proposals/admin/notify_proposal_answer.rb +3 -3
  37. data/app/commands/decidim/proposals/admin/publish_answers.rb +1 -1
  38. data/app/commands/decidim/proposals/admin/publish_participatory_text.rb +2 -2
  39. data/app/commands/decidim/proposals/admin/split_proposals.rb +1 -1
  40. data/app/commands/decidim/proposals/admin/unassign_proposals_from_valuator.rb +2 -2
  41. data/app/commands/decidim/proposals/admin/update_participatory_text.rb +1 -1
  42. data/app/commands/decidim/proposals/admin/update_proposal.rb +5 -1
  43. data/app/commands/decidim/proposals/admin/update_proposal_scope.rb +1 -1
  44. data/app/commands/decidim/proposals/create_collaborative_draft.rb +13 -3
  45. data/app/commands/decidim/proposals/create_proposal.rb +14 -5
  46. data/app/commands/decidim/proposals/hashtags_methods.rb +1 -1
  47. data/app/commands/decidim/proposals/publish_proposal.rb +1 -1
  48. data/app/commands/decidim/proposals/reject_access_to_collaborative_draft.rb +1 -1
  49. data/app/commands/decidim/proposals/request_access_to_collaborative_draft.rb +1 -1
  50. data/app/commands/decidim/proposals/unvote_proposal.rb +2 -2
  51. data/app/commands/decidim/proposals/update_collaborative_draft.rb +12 -2
  52. data/app/commands/decidim/proposals/update_proposal.rb +16 -14
  53. data/app/commands/decidim/proposals/vote_proposal.rb +2 -2
  54. data/app/controllers/concerns/decidim/proposals/admin/filterable.rb +4 -13
  55. data/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +2 -2
  56. data/app/controllers/decidim/proposals/admin/proposal_notes_controller.rb +1 -1
  57. data/app/controllers/decidim/proposals/admin/proposals_controller.rb +2 -2
  58. data/app/controllers/decidim/proposals/collaborative_drafts_controller.rb +3 -9
  59. data/app/controllers/decidim/proposals/proposal_votes_controller.rb +3 -3
  60. data/app/controllers/decidim/proposals/proposals_controller.rb +42 -12
  61. data/app/events/decidim/proposals/accepted_proposal_event.rb +1 -1
  62. data/app/events/decidim/proposals/admin/proposal_note_created_event.rb +1 -1
  63. data/app/events/decidim/proposals/admin/update_proposal_category_event.rb +1 -1
  64. data/app/events/decidim/proposals/admin/update_proposal_scope_event.rb +1 -1
  65. data/app/events/decidim/proposals/collaborative_draft_access_accepted_event.rb +1 -1
  66. data/app/events/decidim/proposals/collaborative_draft_access_rejected_event.rb +1 -1
  67. data/app/events/decidim/proposals/collaborative_draft_access_request_event.rb +1 -1
  68. data/app/events/decidim/proposals/collaborative_draft_access_requested_event.rb +1 -1
  69. data/app/events/decidim/proposals/collaborative_draft_access_requester_accepted_event.rb +1 -1
  70. data/app/events/decidim/proposals/collaborative_draft_access_requester_rejected_event.rb +1 -1
  71. data/app/events/decidim/proposals/collaborative_draft_withdrawn_event.rb +1 -1
  72. data/app/events/decidim/proposals/evaluating_proposal_event.rb +1 -1
  73. data/app/events/decidim/proposals/proposal_endorsed_event.rb +1 -1
  74. data/app/events/decidim/proposals/proposal_mentioned_event.rb +1 -1
  75. data/app/events/decidim/proposals/publish_proposal_event.rb +1 -1
  76. data/app/events/decidim/proposals/rejected_proposal_event.rb +1 -1
  77. data/app/forms/decidim/proposals/admin/import_participatory_text_form.rb +1 -1
  78. data/app/forms/decidim/proposals/admin/proposal_base_form.rb +2 -2
  79. data/app/forms/decidim/proposals/admin/proposal_form.rb +1 -1
  80. data/app/forms/decidim/proposals/admin/proposals_fork_form.rb +1 -1
  81. data/app/forms/decidim/proposals/admin/valuation_assignment_form.rb +1 -1
  82. data/app/forms/decidim/proposals/proposal_form.rb +9 -27
  83. data/app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb +1 -1
  84. data/app/helpers/decidim/proposals/admin/proposals_helper.rb +13 -13
  85. data/app/helpers/decidim/proposals/application_helper.rb +79 -27
  86. data/app/helpers/decidim/proposals/collaborative_draft_helper.rb +44 -4
  87. data/app/helpers/decidim/proposals/map_helper.rb +3 -4
  88. data/app/helpers/decidim/proposals/participatory_texts_helper.rb +1 -9
  89. data/app/helpers/decidim/proposals/proposal_cells_helper.rb +1 -1
  90. data/app/helpers/decidim/proposals/proposal_votes_helper.rb +2 -24
  91. data/app/helpers/decidim/proposals/proposal_wizard_helper.rb +14 -81
  92. data/app/helpers/decidim/proposals/proposals_helper.rb +0 -12
  93. data/app/jobs/decidim/proposals/hide_all_created_by_author_job.rb +20 -0
  94. data/app/jobs/decidim/proposals/notify_proposals_mentioned_job.rb +1 -1
  95. data/app/jobs/decidim/proposals/settings_change_job.rb +2 -2
  96. data/app/models/decidim/proposals/collaborative_draft.rb +4 -16
  97. data/app/models/decidim/proposals/proposal.rb +19 -14
  98. data/app/models/decidim/proposals/proposal_vote.rb +3 -3
  99. data/app/packs/documents/decidim/proposals/participatory_texts/participatory_text.md +9 -4
  100. data/app/packs/entrypoints/decidim_proposals.js +4 -0
  101. data/app/packs/entrypoints/decidim_proposals_admin.js +0 -1
  102. data/app/packs/images/decidim/gamification/badges/decidim_gamification_badges_accepted_proposals.svg +68 -1
  103. data/app/packs/images/decidim/gamification/badges/decidim_gamification_badges_proposal_votes.svg +34 -1
  104. data/app/packs/images/decidim/gamification/badges/decidim_gamification_badges_proposals.svg +64 -1
  105. data/app/packs/src/decidim/proposals/add_proposal.js +25 -39
  106. data/app/packs/src/decidim/proposals/choose_proposals.js +20 -0
  107. data/app/packs/stylesheets/decidim/proposals/proposals.scss +97 -0
  108. data/app/permissions/decidim/proposals/admin/permissions.rb +3 -3
  109. data/app/permissions/decidim/proposals/permissions.rb +1 -1
  110. data/app/presenters/decidim/proposals/admin_log/proposal_note_presenter.rb +2 -2
  111. data/app/presenters/decidim/proposals/admin_log/proposal_presenter.rb +2 -2
  112. data/app/presenters/decidim/proposals/admin_log/valuation_assignment_presenter.rb +2 -2
  113. data/app/presenters/decidim/proposals/proposal_presenter.rb +6 -2
  114. data/app/services/decidim/proposals/diff_renderer.rb +3 -3
  115. data/app/services/decidim/proposals/proposal_builder.rb +6 -6
  116. data/app/views/decidim/proposals/admin/participatory_texts/_article-preview.html.erb +2 -4
  117. data/app/views/decidim/proposals/admin/participatory_texts/_bulk-actions.html.erb +2 -2
  118. data/app/views/decidim/proposals/admin/participatory_texts/index.html.erb +58 -46
  119. data/app/views/decidim/proposals/admin/participatory_texts/new_import.html.erb +31 -33
  120. data/app/views/decidim/proposals/admin/proposal_answers/_form.html.erb +17 -11
  121. data/app/views/decidim/proposals/admin/proposal_notes/_form.html.erb +5 -6
  122. data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes.html.erb +28 -36
  123. data/app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb +27 -30
  124. data/app/views/decidim/proposals/admin/proposals/_documents.html.erb +13 -0
  125. data/app/views/decidim/proposals/admin/proposals/_endorsers.html.erb +25 -0
  126. data/app/views/decidim/proposals/admin/proposals/_form.html.erb +70 -90
  127. data/app/views/decidim/proposals/admin/proposals/_meetings.html.erb +13 -0
  128. data/app/views/decidim/proposals/admin/proposals/_photos.html.erb +13 -0
  129. data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +30 -24
  130. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_assign_to_valuator.html.erb +3 -3
  131. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_dropdown.html.erb +3 -2
  132. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_merge.html.erb +4 -4
  133. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_publish_answers.html.erb +3 -3
  134. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_recategorize.html.erb +3 -3
  135. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_scope-change.html.erb +4 -8
  136. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_split.html.erb +3 -3
  137. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_unassign_from_valuator.html.erb +3 -3
  138. data/app/views/decidim/proposals/admin/proposals/edit.html.erb +17 -7
  139. data/app/views/decidim/proposals/admin/proposals/index.html.erb +50 -63
  140. data/app/views/decidim/proposals/admin/proposals/new.html.erb +16 -6
  141. data/app/views/decidim/proposals/admin/proposals/publish_answers.js.erb +2 -2
  142. data/app/views/decidim/proposals/admin/proposals/show.html.erb +204 -162
  143. data/app/views/decidim/proposals/admin/proposals/update_attribute.js.erb +4 -4
  144. data/app/views/decidim/proposals/admin/proposals_imports/new.html.erb +48 -34
  145. data/app/views/decidim/proposals/collaborative_drafts/_accept_request_access_form.html.erb +1 -1
  146. data/app/views/decidim/proposals/collaborative_drafts/_actions.html.erb +7 -0
  147. data/app/views/decidim/proposals/collaborative_drafts/_collaborative_draft_aside.html.erb +53 -0
  148. data/app/views/decidim/proposals/collaborative_drafts/_collaborative_drafts.html.erb +12 -13
  149. data/app/views/decidim/proposals/collaborative_drafts/_collaborator_requests.html.erb +8 -12
  150. data/app/views/decidim/proposals/collaborative_drafts/_edit_form_fields.html.erb +26 -54
  151. data/app/views/decidim/proposals/collaborative_drafts/_reject_request_access_form.html.erb +1 -3
  152. data/app/views/decidim/proposals/collaborative_drafts/_request_access_form.html.erb +1 -1
  153. data/app/views/decidim/proposals/collaborative_drafts/edit.html.erb +23 -25
  154. data/app/views/decidim/proposals/collaborative_drafts/index.html.erb +30 -22
  155. data/app/views/decidim/proposals/collaborative_drafts/index.js.erb +0 -5
  156. data/app/views/decidim/proposals/collaborative_drafts/new.html.erb +22 -18
  157. data/app/views/decidim/proposals/collaborative_drafts/show.html.erb +39 -109
  158. data/app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb +2 -2
  159. data/app/views/decidim/proposals/proposals/_actions.html.erb +13 -0
  160. data/app/views/decidim/proposals/proposals/_edit_form_fields.html.erb +31 -70
  161. data/app/views/decidim/proposals/proposals/_linked_proposals.html.erb +3 -35
  162. data/app/views/decidim/proposals/proposals/_proposal_aside.html.erb +40 -0
  163. data/app/views/decidim/proposals/proposals/_proposals.html.erb +18 -39
  164. data/app/views/decidim/proposals/proposals/_proposals_picker.html.erb +5 -0
  165. data/app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb +3 -3
  166. data/app/views/decidim/proposals/proposals/_vote_button.html.erb +16 -17
  167. data/app/views/decidim/proposals/proposals/_votes_count.html.erb +3 -6
  168. data/app/views/decidim/proposals/proposals/_voting_rules.html.erb +28 -41
  169. data/app/views/decidim/proposals/proposals/_wizard_header.html.erb +19 -25
  170. data/app/views/decidim/proposals/proposals/compare.html.erb +17 -16
  171. data/app/views/decidim/proposals/proposals/complete.html.erb +26 -21
  172. data/app/views/decidim/proposals/proposals/edit.html.erb +32 -27
  173. data/app/views/decidim/proposals/proposals/edit_draft.html.erb +21 -19
  174. data/app/views/decidim/proposals/proposals/index.html.erb +56 -47
  175. data/app/views/decidim/proposals/proposals/index.js.erb +0 -5
  176. data/app/views/decidim/proposals/proposals/new.html.erb +30 -35
  177. data/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb +5 -5
  178. data/app/views/decidim/proposals/proposals/participatory_texts/_view_index.html.erb +15 -8
  179. data/app/views/decidim/proposals/proposals/participatory_texts/participatory_text.html.erb +32 -15
  180. data/app/views/decidim/proposals/proposals/preview.html.erb +37 -34
  181. data/app/views/decidim/proposals/proposals/show.html.erb +90 -106
  182. data/app/views/decidim/proposals/versions/show.html.erb +13 -5
  183. data/config/assets.rb +0 -1
  184. data/config/brakeman.ignore +31 -56
  185. data/config/locales/ar.yml +17 -156
  186. data/config/locales/bg.yml +0 -28
  187. data/config/locales/ca.yml +62 -118
  188. data/config/locales/cs.yml +71 -129
  189. data/config/locales/de.yml +66 -122
  190. data/config/locales/el.yml +54 -121
  191. data/config/locales/en.yml +76 -132
  192. data/config/locales/es-MX.yml +70 -126
  193. data/config/locales/es-PY.yml +69 -125
  194. data/config/locales/es.yml +66 -122
  195. data/config/locales/eu.yml +71 -127
  196. data/config/locales/fi-plain.yml +63 -119
  197. data/config/locales/fi.yml +63 -119
  198. data/config/locales/fr-CA.yml +66 -123
  199. data/config/locales/fr.yml +70 -127
  200. data/config/locales/ga-IE.yml +0 -32
  201. data/config/locales/gl.yml +7 -129
  202. data/config/locales/hu.yml +35 -134
  203. data/config/locales/id-ID.yml +5 -113
  204. data/config/locales/is-IS.yml +0 -56
  205. data/config/locales/it.yml +7 -142
  206. data/config/locales/ja.yml +61 -122
  207. data/config/locales/lb.yml +0 -5
  208. data/config/locales/lt.yml +61 -126
  209. data/config/locales/lv.yml +9 -143
  210. data/config/locales/nl.yml +8 -143
  211. data/config/locales/no.yml +7 -133
  212. data/config/locales/pl.yml +11 -148
  213. data/config/locales/pt-BR.yml +10 -166
  214. data/config/locales/pt.yml +7 -141
  215. data/config/locales/ro-RO.yml +9 -145
  216. data/config/locales/ru.yml +1 -64
  217. data/config/locales/sk.yml +11 -140
  218. data/config/locales/sr-CS.yml +0 -23
  219. data/config/locales/sv.yml +19 -142
  220. data/config/locales/tr-TR.yml +8 -141
  221. data/config/locales/uk.yml +1 -64
  222. data/config/locales/zh-CN.yml +5 -134
  223. data/config/locales/zh-TW.yml +31 -107
  224. data/db/migrate/20170307085300_migrate_proposal_reports_data_to_reports.rb +1 -1
  225. data/db/migrate/20230427105700_change_states_on_collaborative_drafts.rb +34 -0
  226. data/db/migrate/20230427105700_change_states_on_proposals.rb +34 -0
  227. data/lib/decidim/api/proposals_type.rb +2 -2
  228. data/lib/decidim/proposals/component.rb +11 -289
  229. data/lib/decidim/proposals/doc_to_markdown.rb +0 -4
  230. data/lib/decidim/proposals/engine.rb +43 -7
  231. data/lib/decidim/proposals/import/proposal_answer_creator.rb +1 -1
  232. data/lib/decidim/proposals/import/proposal_creator.rb +10 -10
  233. data/lib/decidim/proposals/markdown_to_proposals.rb +8 -2
  234. data/lib/decidim/proposals/proposal_serializer.rb +4 -4
  235. data/lib/decidim/proposals/seeds.rb +278 -0
  236. data/lib/decidim/proposals/test/factories.rb +62 -22
  237. data/lib/decidim/proposals/version.rb +1 -1
  238. metadata +53 -63
  239. data/app/cells/decidim/proposals/collaborative_draft_m/footer.erb +0 -6
  240. data/app/cells/decidim/proposals/collaborative_draft_m/tags.erb +0 -1
  241. data/app/cells/decidim/proposals/collaborative_draft_m_cell.rb +0 -44
  242. data/app/cells/decidim/proposals/content_blocks/highlighted_proposals/elements.erb +0 -5
  243. data/app/cells/decidim/proposals/content_blocks/highlighted_proposals/heading.erb +0 -1
  244. data/app/cells/decidim/proposals/proposal_link_to_rejected_emendation/show.erb +0 -9
  245. data/app/cells/decidim/proposals/proposal_m/footer.erb +0 -26
  246. data/app/cells/decidim/proposals/proposal_m/tags.erb +0 -1
  247. data/app/cells/decidim/proposals/proposal_m_cell.rb +0 -151
  248. data/app/cells/decidim/proposals/proposal_tags/show.erb +0 -33
  249. data/app/cells/decidim/proposals/proposal_tags_cell.rb +0 -35
  250. data/app/cells/decidim/proposals/proposals_picker/proposals.erb +0 -12
  251. data/app/controllers/concerns/decidim/proposals/admin/picker.rb +0 -21
  252. data/app/controllers/decidim/proposals/widgets_controller.rb +0 -19
  253. data/app/helpers/decidim/proposals/admin/filterable_helper.rb +0 -17
  254. data/app/helpers/decidim/proposals/admin/proposals_picker_helper.rb +0 -30
  255. data/app/packs/src/decidim/proposals/admin/proposals_picker.js +0 -50
  256. data/app/packs/stylesheets/decidim/proposals/_proposals.scss +0 -1
  257. data/app/packs/stylesheets/decidim/proposals/proposals/_preview.scss +0 -3
  258. data/app/views/decidim/proposals/collaborative_drafts/_count.html.erb +0 -1
  259. data/app/views/decidim/proposals/collaborative_drafts/_filters.html.erb +0 -32
  260. data/app/views/decidim/proposals/collaborative_drafts/_filters_small_view.html.erb +0 -18
  261. data/app/views/decidim/proposals/collaborative_drafts/_new_collaborative_draft_button.html.erb +0 -11
  262. data/app/views/decidim/proposals/collaborative_drafts/_wizard_aside.html.erb +0 -13
  263. data/app/views/decidim/proposals/collaborative_drafts/_wizard_header.html.erb +0 -14
  264. data/app/views/decidim/proposals/proposals/_count.html.erb +0 -1
  265. data/app/views/decidim/proposals/proposals/_dynamic_map_instructions.html.erb +0 -4
  266. data/app/views/decidim/proposals/proposals/_filters.html.erb +0 -48
  267. data/app/views/decidim/proposals/proposals/_filters_small_view.html.erb +0 -18
  268. data/app/views/decidim/proposals/proposals/_proposal_similar.html.erb +0 -22
  269. data/app/views/decidim/proposals/proposals/_wizard_aside.html.erb +0 -20
  270. data/app/views/decidim/proposals/proposals/participatory_texts/_index.html.erb +0 -19
  271. data/app/views/decidim/proposals/versions/index.html.erb +0 -16
  272. data/config/environment.rb +0 -3
  273. data/lib/decidim/proposals/test/capybara_proposals_picker.rb +0 -59
@@ -1,15 +1,32 @@
1
- <%= render partial: "decidim/shared/component_announcement" %>
2
-
3
- <div class="row view-header">
4
- <div class="column medium-9">
5
- <h2 class="heading2"><%= render_participatory_text_title(@participatory_text) %></h2>
6
- </div>
7
- <div class="column medium-3 pull-right">
8
- <%= render partial: "decidim/proposals/proposals/participatory_texts/view_index" %>
9
- </div>
10
- </div>
11
- <div class="row columns" id="proposals">
12
- <% @proposals.each do |proposal| %>
13
- <%= cell("decidim/proposals/participatory_text_proposal", proposal, context: { current_user: current_user }) %>
14
- <% end %>
15
- </div>
1
+ <%= append_stylesheet_pack_tag "decidim_proposals" %>
2
+ <%= append_javascript_pack_tag "decidim_proposals" %>
3
+
4
+ <% content_for :aside do %>
5
+ <h1 class="title-decorator">
6
+ <%= translated_attribute(current_component.name) %>
7
+ </h1>
8
+
9
+ <%= render partial: "decidim/proposals/proposals/participatory_texts/view_index" %>
10
+ <% end %>
11
+
12
+ <%= render layout: "layouts/decidim/shared/layout_two_col" do %>
13
+
14
+ <%= render partial: "decidim/shared/component_announcement" %>
15
+
16
+ <section class="layout-main__section">
17
+ <% if @participatory_text.nil? %>
18
+ <%= cell("decidim/announcement", t("alternative_title", scope: "decidim.proposals.participatory_text_proposal")) %>
19
+ <% else %>
20
+ <h2 class="proposal-participatory__heading">
21
+ <%= translated_attribute(@participatory_text.title) %>
22
+ </h2>
23
+ <% end %>
24
+ </section>
25
+
26
+ <section id="proposals" class="layout-main__section">
27
+ <% @proposals.each do |proposal| %>
28
+ <%= cell("decidim/proposals/participatory_text_proposal", proposal, context: { current_user: }) %>
29
+ <% end %>
30
+ </section>
31
+
32
+ <% end %>
@@ -1,41 +1,44 @@
1
1
  <% add_decidim_page_title(proposal_wizard_step_title(action_name)) %>
2
2
 
3
- <div class="row">
4
- <%= render partial: "wizard_aside" %>
5
-
6
- <div class="columns large-9">
7
- <%= render partial: "wizard_header", locals: { callout_help_text_class: "warning" } %>
8
- <div class="card card__content">
9
- <div class="row column view-header">
10
- <h3 class="heading3"><%= present(@proposal).title(links: true, html_escape: true) %></h3>
11
- <% unless component_settings.participatory_texts_enabled? %>
12
- <%= cell("decidim/coauthorships", @proposal, has_actions: false, size: 3, context: { current_user: current_user }) %>
13
- <% end %>
14
-
15
- <%= render_proposal_body(@proposal) %>
16
- </div>
17
- <div class="row column">
18
- <%= cell "decidim/proposals/proposal_tags", @proposal %>
19
- </div>
20
- </div>
21
- <% if component_settings.geocoding_enabled? %>
22
- <% if has_position?(@proposal) %>
23
- <div class="row column">
24
- <h3 class="section-heading"><%= t("decidim.application.geocoding.geocoded_address") %></h3>
25
- <%= render partial: "decidim/shared/static_map", locals: { icon_name: "proposals", geolocalizable: @proposal } %>
26
- </div>
27
- <% end %>
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_help_text_class: "warning" } %>
9
+
10
+ <div class="proposal__container my-10">
11
+ <h2 class="h3 text-secondary"><%= present(@proposal).title(links: true, html_escape: true) %></h2>
12
+
13
+ <% unless component_settings.participatory_texts_enabled? %>
14
+ <%= cell "decidim/coauthorships", @proposal %>
28
15
  <% end %>
29
- <div class="row column">
30
- <%= attachments_for @proposal %>
16
+
17
+ <div class="editor-content">
18
+ <%= render_proposal_body(@proposal) %>
31
19
  </div>
32
20
 
33
- <div class="p-l">
34
- <div class="row column flex-center">
35
- <%= link_to t(".modify"), edit_draft_proposal_path(@proposal) %>
36
- <%= button_to t(".publish"), publish_proposal_path(@proposal), method: :post, class: "button button--nomargin small" %>
21
+ <% if component_settings.geocoding_enabled? && has_position?(@proposal) %>
22
+ <div class="static-map__container">
23
+ <%= render partial: "decidim/shared/static_map", locals: { icon_name: "proposals", geolocalizable: @proposal } %>
37
24
  </div>
38
- </div>
25
+ <% end %>
26
+
27
+ <%= cell "decidim/tab_panels", tab_panel_items %>
28
+ <%= cell "decidim/tags", @proposal %>
29
+ </div>
30
+
31
+ <div class="form__wrapper-block flex-col-reverse md:flex-row justify-between">
32
+ <%= link_to destroy_draft_proposal_path(@proposal), method: :delete, class: "button button__sm md:button__lg button__text-secondary", data: { confirm: t("discard_confirmation", scope: "decidim.proposals.proposals.edit_draft") } do %>
33
+ <%= icon "arrow-left-line" %>
34
+ <span><%= t("discard", scope: "decidim.proposals.proposals.edit_draft") %></span>
35
+ <% end %>
36
+
37
+ <%= link_to t("modify", scope: "decidim.proposals.proposals.preview"), edit_draft_proposal_path(@proposal), class: "button button__sm md:button__lg button__transparent-secondary md:ml-auto" %>
38
+
39
+ <%= button_to publish_proposal_path(@proposal), method: :post, class: "button button__sm md:button__lg button__secondary w-full md:w-fit" do %>
40
+ <span><%= t("publish", scope: "decidim.proposals.proposals.preview") %></span>
41
+ <%= icon "arrow-right-line" %>
42
+ <% end %>
39
43
  </div>
40
- <div class="columns large-3"></div>
41
- </div>
44
+ <% end %>
@@ -1,8 +1,8 @@
1
1
  <% add_decidim_meta_tags({
2
- description: present(@proposal).body,
3
- title: present(@proposal).title,
4
- url: proposal_url(@proposal.id)
5
- }) %>
2
+ description: present(@proposal).body,
3
+ title: present(@proposal).title,
4
+ url: proposal_url(@proposal.id)
5
+ }) %>
6
6
 
7
7
  <%
8
8
  edit_link(
@@ -19,123 +19,107 @@ extra_admin_link(
19
19
  :create,
20
20
  :proposal_answer,
21
21
  { proposal: @proposal },
22
- { name: t(".answer"), icon: "comment-square" }
22
+ { name: t("answer", scope: "decidim.proposals.proposals.show"), icon: "question-answer-line" }
23
23
  )
24
24
  %>
25
25
 
26
- <%= render partial: "voting_rules" %>
27
- <% if component_settings.participatory_texts_enabled? %>
28
- <div class="row column">
29
- <div class="section text-medium">
30
- <%= t(".back_to") %> <u><%= link_to translated_attribute(@participatory_text.title), main_component_path(current_component) %></u>
31
- </div>
32
- </div>
26
+ <% append_stylesheet_pack_tag "decidim_proposals", media: "all" %>
27
+ <% append_javascript_pack_tag "decidim_proposals" %>
28
+
29
+ <% content_for :aside do %>
30
+ <%= render partial: "proposal_aside" %>
33
31
  <% end %>
34
- <%= emendation_announcement_for @proposal %>
35
- <div class="row column view-header">
36
32
 
37
- <div class="m-bottom">
38
- <%= link_to proposals_path, class: "small hollow js-back-to-list" do %>
39
- <%= icon "chevron-left", class: "icon--small", role: "img", "aria-hidden": true %>
40
- <%= t(".back_to_list") %>
41
- <% end %>
42
- </div>
33
+ <%= render layout: "layouts/decidim/shared/layout_item", locals: { back_path: component_settings.participatory_texts_enabled? ? main_component_path(current_component) : proposals_path } do %>
43
34
 
44
- <% if @proposal.emendation? %>
45
- <h2 class="heading3"><%= t(".changes_at_title", title: present(@proposal.amendable).title(links: true, html_escape: true)) %></h2>
46
- <% else %>
47
- <h2 class="heading3"><%= present(@proposal).title(links: true, html_escape: true) %></h2>
48
- <% end %>
49
- <% unless component_settings.participatory_texts_enabled? %>
50
- <%= cell("decidim/coauthorships", @proposal, has_actions: true, size: 3, context: { current_user: current_user }) %>
51
- <% end %>
52
- </div>
53
- <div class="row">
54
- <div class="columns mediumlarge-8 large-9">
55
- <div class="section">
56
- <% if @proposal.emendation? %>
57
- <%= cell("decidim/diff", proposal_presenter.versions.last) %>
58
- <% elsif not ["section","subsection"].include? @proposal.participatory_text_level %>
59
- <%== cell("decidim/proposals/proposal_m", @proposal, full_badge: true).badge %>
60
- <%= render_proposal_body(@proposal) %>
61
- <% end %>
62
- <% if component_settings.geocoding_enabled? %>
63
- <%= render partial: "decidim/shared/static_map", locals: { icon_name: "proposals", geolocalizable: @proposal } %>
64
- <% end %>
65
- <% if proposal_has_costs? && current_settings.answers_with_costs? %>
66
- <%= cell("decidim/proposals/cost_report", @proposal) %>
67
- <% end %>
68
- <%= cell "decidim/proposals/proposal_tags", @proposal %>
69
- </div>
35
+ <section class="layout-main__section layout-main__heading">
36
+ <%= render partial: "voting_rules" %>
70
37
 
71
38
  <%= cell("decidim/announcement", proposal_reason_callout_announcement, callout_class: proposal_reason_callout_class) if @proposal.answered? && @proposal.published_state? %>
72
39
 
73
- <%= linked_resources_for @proposal, :results, "included_proposals" %>
74
- <%= linked_resources_for @proposal, :projects, "included_proposals" %>
75
- <%= linked_resources_for @proposal, :meetings, "proposals_from_meeting" %>
76
- <%= linked_resources_for @proposal, :proposals, "copied_from_component" %>
77
-
78
- <%= cell "decidim/endorsers_list", @proposal %>
79
- <%= amendments_for @proposal %>
80
- </div>
81
- <div class="columns section view-side mediumlarge-4 large-3">
82
- <% if @proposal.amendable? && allowed_to?(:edit, :proposal, proposal: @proposal) %>
83
- <%= link_to t(".edit_proposal"), edit_proposal_path(@proposal), class: "button hollow expanded button--sc" %>
40
+ <%= emendation_announcement_for @proposal %>
41
+
42
+ <% if @proposal.emendation? %>
43
+ <h1 class="h2 decorator"><%= t("changes_at_title", scope: "decidim.proposals.proposals.show", title: present(@proposal.amendable).title(links: true, html_escape: true)) %></h1>
84
44
  <% else %>
85
- <%= amend_button_for @proposal %>
45
+ <h1 class="h2 decorator"><%= present(@proposal).title(links: true, html_escape: true) %></h1>
86
46
  <% end %>
87
47
 
88
- <%= emendation_actions_for @proposal %>
48
+ <% unless component_settings.participatory_texts_enabled? %>
49
+ <div class="layout-author">
50
+ <%= cell "decidim/coauthorships", @proposal %>
89
51
 
90
- <% if current_settings.votes_enabled? || show_endorsements_card? || current_user %>
91
- <% if @proposal.withdrawn? %>
92
- <div class="card">
93
- <div class="card__content">
94
- <% if current_settings.votes_enabled? %>
95
- <%= render partial: "votes_count", locals: { proposal: @proposal, from_proposals_list: false } %>
96
- <% end %>
97
- </div>
98
- </div>
99
- <% else %>
100
- <div class="card">
101
- <div class="card__content">
102
- <% if current_settings.votes_enabled? %>
103
- <%= render partial: "votes_count", locals: { proposal: @proposal, from_proposals_list: false } %>
104
- <%= render partial: "vote_button", locals: { proposal: @proposal, from_proposals_list: false } %>
105
- <% end %>
106
- <div class="row collapse buttons__row">
107
- <% if endorsements_enabled? %>
108
- <div class="column small-9 collapse">
109
- <%= endorsement_buttons_cell(@proposal) %>
110
- </div>
111
- <% end %>
112
- <div class="column collapse <%= endorsements_enabled? ? "small-3" : "" %>">
113
- <%= link_to "#comments", class: "button small compact hollow secondary button--nomargin expanded" do %>
114
- <span class="show-for-sr"><%= present(@proposal).title(html_escape: true) %></span>
115
- <%= icon "comment-square", class: "icon--small", aria_label: t(".comments"), role: "img" %> <%= @proposal.comments_count %>
116
- <% end %>
117
- </div>
118
- </div>
119
- <br>
120
- <%= follow_button_for(@proposal) %>
121
- </div>
122
- </div>
123
- <% end %>
52
+ <% if not ["section","subsection"].include? @proposal.participatory_text_level %>
53
+ <%== cell("decidim/proposals/proposal_metadata", @proposal).state_item&.dig(:text)&.html_safe %>
54
+ <% end %>
55
+ </div>
124
56
  <% end %>
57
+ </section>
125
58
 
126
- <%= amenders_list_for(@proposal) %>
59
+ <section class="layout-main__section">
60
+ <% if @proposal.emendation? %>
61
+ <%= cell(
62
+ "decidim/diff",
63
+ proposal_presenter.versions.last,
64
+ path: proc { |extra_params| url_for(action: :show, id: params[:id], **extra_params) }
65
+ ) %>
66
+ <% elsif not ["section","subsection"].include? @proposal.participatory_text_level %>
67
+ <div class="editor-content">
68
+ <%= render_proposal_body(@proposal) %>
69
+ </div>
70
+ <% end %>
71
+ </section>
127
72
 
128
- <%= resource_reference(@proposal) %>
129
- <%= resource_version(proposal_presenter, versions_path: proposal_versions_path(@proposal)) %>
130
- <%= cell("decidim/fingerprint", @proposal) %>
131
- <%= render partial: "decidim/shared/share_modal", locals: { resource: @proposal } %>
132
- <%= embed_modal_for proposal_widget_url(@proposal, format: :js) %>
133
- <%= cell "decidim/proposals/proposal_link_to_collaborative_draft", @proposal %>
134
- <%= cell "decidim/proposals/proposal_link_to_rejected_emendation", @proposal %>
135
- </div>
136
- </div>
137
- <%= attachments_for @proposal %>
73
+ <% if proposal_has_costs? && current_settings.answers_with_costs? %>
74
+ <section class="layout-main__section">
75
+ <%= cell("decidim/proposals/cost_report", @proposal) %>
76
+ </section>
77
+ <% end %>
138
78
 
139
- <%= comments_for @proposal %>
79
+ <% if component_settings.geocoding_enabled? && @proposal.geocoded? %>
80
+ <div class="static-map__container">
81
+ <%= render partial: "decidim/shared/static_map", locals: { icon_name: "proposals", geolocalizable: @proposal } %>
82
+ </div>
83
+ <% end %>
84
+
85
+ <%= cell "decidim/tab_panels", tab_panel_items %>
86
+
87
+ <section class="layout-main__section">
88
+ <%= cell "decidim/amendable/amendments", @proposal %>
89
+ </section>
90
+
91
+ <%= render partial: "actions" %>
92
+
93
+ <% content_for :item_footer do %>
94
+ <%= comments_for @proposal %>
95
+
96
+ <ul class="metadata__container layout-main__section" data-metadata-footer>
97
+ <%= content_tag :li, resource_reference(@proposal), class: "metadata__item" %>
98
+ <%= content_tag :li, resource_version(proposal_presenter, versions_path: proposal_version_path(@proposal, @proposal.versions.count)), class: "metadata__item" %>
140
99
 
141
- <%= cell("decidim/flag_modal", @proposal) %>
100
+ <% fingerprint_id = dom_id(@proposal, :fingerprint_dialog) %>
101
+ <%= content_tag :li, class: "metadata__item" do %>
102
+ <%= content_tag :button, t("decidim.fingerprint.check"), data: { dialog_open: fingerprint_id } %>
103
+ <% end %>
104
+ </ul>
105
+ <%= decidim_modal id: fingerprint_id, class: "fingerprint-modal" do %>
106
+ <div data-dialog-container>
107
+ <%= icon "fingerprint-line" %>
108
+ <h2 id="dialog-title-<%= fingerprint_id %>" tabindex="-1" data-dialog-title><%= t "decidim.fingerprint.title" %></h2>
109
+ <div class="fingerprint-modal__container">
110
+ <p id="dialog-desc-<%= fingerprint_id %>"><%= t "decidim.fingerprint.explanation" %></p>
111
+ <div>
112
+ <span class="fingerprint-modal__span"><%= t "decidim.fingerprint.value" %>:</span>
113
+ <code class="fingerprint-modal__code"><%= decidim_html_escape @proposal.fingerprint.value %></code>
114
+ </div>
115
+ <div>
116
+ <span class="fingerprint-modal__span"><%= t "decidim.fingerprint.source" %>:</span>
117
+ <code class="fingerprint-modal__code"><%= @proposal.fingerprint.source %></code>
118
+ </div>
119
+ <p><%= t("decidim.fingerprint.replicate_help", online_calculator_link: link_to(t("decidim.fingerprint.online_calculator_name"), "http://www.md5calc.com/sha256", target: "_blank", rel: "noopener")).html_safe %></p>
120
+ </div>
121
+ </div>
122
+ <% end %>
123
+ <% end %>
124
+
125
+ <% end %>
@@ -6,13 +6,21 @@ if versioned_resource.is_a?(Decidim::Proposals::CollaborativeDraft)
6
6
  end
7
7
  %>
8
8
 
9
- <div class="row">
9
+ <% content_for :aside do %>
10
+ <%= cell(
11
+ "decidim/versions_list",
12
+ versioned_resource,
13
+ version_path: proc { |version_index| url_for(action: :show, id: version_index) }
14
+ ) %>
15
+ <% end %>
16
+
17
+ <%= render layout: "layouts/decidim/shared/layout_item" do %>
10
18
  <%= cell(
11
19
  "decidim/version",
12
20
  current_version,
13
21
  index: params[:id],
14
- versioned_resource: versioned_resource,
15
- versions_path: proc { url_for(action: :index) },
16
- i18n_scope: "decidim.proposals.versions.#{item_name.to_s.pluralize}"
22
+ versioned_resource:,
23
+ path: proc { |extra_params| url_for(action: :show, id: params[:id], **extra_params) },
24
+ versions_path: proc { url_for(action: :index) }
17
25
  ) %>
18
- </div>
26
+ <% end %>
data/config/assets.rb CHANGED
@@ -7,4 +7,3 @@ Decidim::Webpacker.register_entrypoints(
7
7
  decidim_proposals: "#{base_path}/app/packs/entrypoints/decidim_proposals.js",
8
8
  decidim_proposals_admin: "#{base_path}/app/packs/entrypoints/decidim_proposals_admin.js"
9
9
  )
10
- Decidim::Webpacker.register_stylesheet_import("stylesheets/decidim/proposals/proposals")
@@ -1,21 +1,44 @@
1
1
  {
2
2
  "ignored_warnings": [
3
+ {
4
+ "warning_type": "Mass Assignment",
5
+ "warning_code": 70,
6
+ "fingerprint": "8eeee9ad33162a80c7cf7a87d597f4cc108b0874d40ddabd1f5241f460a9519a",
7
+ "check_name": "MassAssignment",
8
+ "message": "Specify exact keys allowed for mass assignment instead of using `permit!` which allows any keys",
9
+ "file": "app/controllers/decidim/proposals/admin/participatory_texts_controller.rb",
10
+ "line": 50,
11
+ "link": "https://brakemanscanner.org/docs/warning_types/mass_assignment/",
12
+ "code": "params.require(:preview_participatory_text).permit!",
13
+ "render_path": null,
14
+ "location": {
15
+ "type": "method",
16
+ "class": "Decidim::Proposals::Admin::ParticipatoryTextsController",
17
+ "method": "update"
18
+ },
19
+ "user_input": null,
20
+ "confidence": "Medium",
21
+ "cwe_id": [
22
+ 915
23
+ ],
24
+ "note": ""
25
+ },
3
26
  {
4
27
  "warning_type": "Cross-Site Scripting",
5
28
  "warning_code": 2,
6
- "fingerprint": "7568599cc8af59b10939f6617f52763f2df32bba7474f9df063d71c803e95e32",
29
+ "fingerprint": "ee8cfc06595219681fe264fb8977fb9b0bab6750e694ec9dea82324c02fbc5f4",
7
30
  "check_name": "CrossSiteScripting",
8
31
  "message": "Unescaped parameter value",
9
32
  "file": "app/views/decidim/proposals/proposals/show.html.erb",
10
- "line": 59,
33
+ "line": 53,
11
34
  "link": "https://brakemanscanner.org/docs/warning_types/cross_site_scripting",
12
- "code": "cell(\"decidim/proposals/proposal_m\", Proposal.published.not_hidden.where(:component => current_component).find_by(:id => params[:id]), :full_badge => true).badge",
35
+ "code": "cell(\"decidim/proposals/proposal_metadata\", Proposal.published.not_hidden.where(:component => current_component).find_by(:id => params[:id])).state_item.dig(:text).html_safe",
13
36
  "render_path": [
14
37
  {
15
38
  "type": "controller",
16
39
  "class": "Decidim::Proposals::ProposalsController",
17
40
  "method": "show",
18
- "line": 62,
41
+ "line": 69,
19
42
  "file": "app/controllers/decidim/proposals/proposals_controller.rb",
20
43
  "rendered": {
21
44
  "name": "decidim/proposals/proposals/show",
@@ -29,60 +52,12 @@
29
52
  },
30
53
  "user_input": "params[:id]",
31
54
  "confidence": "Weak",
32
- "note": ""
33
- },
34
- {
35
- "warning_type": "Cross-Site Scripting",
36
- "warning_code": 2,
37
- "fingerprint": "7d03debd980da201727e8648772750aab0445ea0eb5426f1aea2c8e560e5c458",
38
- "check_name": "CrossSiteScripting",
39
- "message": "Unescaped parameter value",
40
- "file": "app/views/decidim/proposals/collaborative_drafts/show.html.erb",
41
- "line": 34,
42
- "link": "https://brakemanscanner.org/docs/warning_types/cross_site_scripting",
43
- "code": "cell(\"decidim/proposals/collaborative_draft_m\", CollaborativeDraft.not_hidden.where(:component => current_component).find_by(:id => params[:id]), :full_badge => true).badge",
44
- "render_path": [
45
- {
46
- "type": "controller",
47
- "class": "Decidim::Proposals::CollaborativeDraftsController",
48
- "method": "show",
49
- "line": 43,
50
- "file": "app/controllers/decidim/proposals/collaborative_drafts_controller.rb",
51
- "rendered": {
52
- "name": "decidim/proposals/collaborative_drafts/show",
53
- "file": "app/views/decidim/proposals/collaborative_drafts/show.html.erb"
54
- }
55
- }
55
+ "cwe_id": [
56
+ 79
56
57
  ],
57
- "location": {
58
- "type": "template",
59
- "template": "decidim/proposals/collaborative_drafts/show"
60
- },
61
- "user_input": "params[:id]",
62
- "confidence": "Weak",
63
- "note": ""
64
- },
65
- {
66
- "warning_type": "Mass Assignment",
67
- "warning_code": 70,
68
- "fingerprint": "8eeee9ad33162a80c7cf7a87d597f4cc108b0874d40ddabd1f5241f460a9519a",
69
- "check_name": "MassAssignment",
70
- "message": "Specify exact keys allowed for mass assignment instead of using `permit!` which allows any keys",
71
- "file": "app/controllers/decidim/proposals/admin/participatory_texts_controller.rb",
72
- "line": 50,
73
- "link": "https://brakemanscanner.org/docs/warning_types/mass_assignment/",
74
- "code": "params.require(:preview_participatory_text).permit!",
75
- "render_path": null,
76
- "location": {
77
- "type": "method",
78
- "class": "Decidim::Proposals::Admin::ParticipatoryTextsController",
79
- "method": "update"
80
- },
81
- "user_input": null,
82
- "confidence": "Medium",
83
58
  "note": ""
84
59
  }
85
60
  ],
86
- "updated": "2021-10-05 05:32:00 +0000",
87
- "brakeman_version": "5.1.1"
61
+ "updated": "2023-07-27 19:05:49 +0200",
62
+ "brakeman_version": "5.4.1"
88
63
  }