decidim-participatory_processes 0.27.4 → 0.28.0.rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (254) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/cells/decidim/participatory_process_groups/content_block_cell.rb +5 -1
  4. data/app/cells/decidim/participatory_process_groups/content_blocks/extra_data/recent_users.erb +1 -0
  5. data/app/cells/decidim/participatory_process_groups/content_blocks/extra_data_cell.rb +71 -0
  6. data/app/cells/decidim/participatory_process_groups/content_blocks/main_data/content.erb +30 -0
  7. data/app/cells/decidim/participatory_process_groups/content_blocks/main_data_cell.rb +77 -0
  8. data/app/cells/decidim/participatory_process_groups/content_blocks/related_processes_cell.rb +47 -0
  9. data/app/cells/decidim/participatory_process_groups/content_blocks/statistics_cell.rb +2 -2
  10. data/app/cells/decidim/participatory_process_groups/process_filters_cell.rb +5 -5
  11. data/app/cells/decidim/participatory_processes/content_block_cell.rb +21 -0
  12. data/app/cells/decidim/participatory_processes/content_blocks/extra_data/active_step.erb +1 -0
  13. data/app/cells/decidim/participatory_processes/content_blocks/extra_data_cell.rb +60 -0
  14. data/app/cells/decidim/participatory_processes/content_blocks/hero_cell.rb +29 -0
  15. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_cell.rb +14 -27
  16. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_settings_form/show.erb +1 -1
  17. data/app/cells/decidim/participatory_processes/content_blocks/main_data_cell.rb +34 -0
  18. data/app/cells/decidim/participatory_processes/content_blocks/metadata_cell.rb +23 -0
  19. data/app/cells/decidim/participatory_processes/content_blocks/metrics_cell.rb +25 -0
  20. data/app/cells/decidim/participatory_processes/content_blocks/processes_settings_form/show.erb +3 -0
  21. data/app/cells/decidim/participatory_processes/content_blocks/processes_settings_form_cell.rb +28 -0
  22. data/app/cells/decidim/participatory_processes/content_blocks/related_processes/content.erb +1 -0
  23. data/app/cells/decidim/participatory_processes/content_blocks/related_processes_cell.rb +53 -0
  24. data/app/cells/decidim/participatory_processes/content_blocks/stats_cell.rb +17 -0
  25. data/app/cells/decidim/participatory_processes/filtered_participatory_processes_cell.rb +1 -1
  26. data/app/cells/decidim/participatory_processes/process_cell.rb +2 -2
  27. data/app/cells/decidim/participatory_processes/process_dropdown_metadata/metadata.erb +22 -0
  28. data/app/cells/decidim/participatory_processes/process_dropdown_metadata_cell.rb +39 -0
  29. data/app/cells/decidim/participatory_processes/process_filters/show.erb +4 -5
  30. data/app/cells/decidim/participatory_processes/process_filters/type_filter.erb +1 -1
  31. data/app/cells/decidim/participatory_processes/process_filters_cell.rb +8 -8
  32. data/app/cells/decidim/participatory_processes/process_g_cell.rb +31 -0
  33. data/app/cells/decidim/participatory_processes/process_group_cell.rb +2 -2
  34. data/app/cells/decidim/participatory_processes/process_group_g_cell.rb +23 -0
  35. data/app/cells/decidim/participatory_processes/process_group_metadata_cell.rb +46 -0
  36. data/app/cells/decidim/participatory_processes/process_group_s_cell.rb +5 -13
  37. data/app/cells/decidim/participatory_processes/process_metadata_cell.rb +44 -0
  38. data/app/cells/decidim/participatory_processes/process_metadata_g_cell.rb +15 -0
  39. data/app/cells/decidim/participatory_processes/process_s_cell.rb +5 -25
  40. data/app/cells/decidim/participatory_processes/process_step/show.erb +48 -0
  41. data/app/cells/decidim/participatory_processes/process_step_cell.rb +30 -0
  42. data/app/cells/decidim/participatory_processes/processes/show.erb +16 -0
  43. data/app/cells/decidim/participatory_processes/processes_cell.rb +24 -0
  44. data/app/commands/decidim/participatory_processes/admin/activate_participatory_process_step.rb +1 -1
  45. data/app/commands/decidim/participatory_processes/admin/copy_participatory_process.rb +2 -2
  46. data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +3 -1
  47. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb +4 -2
  48. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_step.rb +1 -1
  49. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_type.rb +1 -1
  50. data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_group.rb +1 -1
  51. data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_step.rb +1 -1
  52. data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_type.rb +1 -1
  53. data/app/commands/decidim/participatory_processes/admin/import_participatory_process.rb +1 -1
  54. data/app/commands/decidim/participatory_processes/admin/reorder_participatory_process_steps.rb +1 -1
  55. data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +1 -1
  56. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb +2 -2
  57. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_step.rb +1 -1
  58. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_type.rb +1 -1
  59. data/app/constraints/decidim/participatory_processes/current_participatory_process.rb +1 -1
  60. data/app/controllers/decidim/participatory_processes/admin/application_controller.rb +29 -0
  61. data/app/controllers/decidim/participatory_processes/admin/categories_controller.rb +2 -0
  62. data/app/controllers/decidim/participatory_processes/admin/concerns/participatory_process_admin.rb +3 -1
  63. data/app/controllers/decidim/participatory_processes/admin/moderations/reports_controller.rb +1 -1
  64. data/app/controllers/decidim/participatory_processes/admin/moderations_controller.rb +1 -1
  65. data/app/controllers/decidim/participatory_processes/admin/participatory_process_attachment_collections_controller.rb +5 -0
  66. data/app/controllers/decidim/participatory_processes/admin/participatory_process_attachments_controller.rb +5 -0
  67. data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_content_blocks_controller.rb +1 -5
  68. data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_controller.rb +24 -7
  69. data/app/controllers/decidim/participatory_processes/admin/participatory_process_groups_controller.rb +16 -0
  70. data/app/controllers/decidim/participatory_processes/admin/participatory_process_imports_controller.rb +14 -0
  71. data/app/controllers/decidim/participatory_processes/admin/participatory_process_landing_page_content_blocks_controller.rb +37 -0
  72. data/app/controllers/decidim/participatory_processes/admin/participatory_process_landing_page_controller.rb +37 -0
  73. data/app/controllers/decidim/participatory_processes/admin/participatory_process_publications_controller.rb +9 -29
  74. data/app/controllers/decidim/participatory_processes/admin/participatory_process_step_activations_controller.rb +1 -1
  75. data/app/controllers/decidim/participatory_processes/admin/participatory_process_steps_controller.rb +16 -4
  76. data/app/controllers/decidim/participatory_processes/admin/participatory_process_types_controller.rb +19 -0
  77. data/app/controllers/decidim/participatory_processes/admin/participatory_process_user_roles_controller.rb +8 -91
  78. data/app/controllers/decidim/participatory_processes/admin/participatory_processes_controller.rb +3 -0
  79. data/app/controllers/decidim/participatory_processes/participatory_process_groups_controller.rb +14 -1
  80. data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +20 -5
  81. data/app/events/decidim/participatory_process_role_assigned_event.rb +6 -6
  82. data/app/events/decidim/participatory_process_step_activated_event.rb +5 -4
  83. data/app/events/decidim/participatory_process_step_changed_event.rb +5 -4
  84. data/app/forms/decidim/participatory_processes/admin/participatory_process_copy_form.rb +1 -1
  85. data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +1 -1
  86. data/app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb +1 -1
  87. data/app/forms/decidim/participatory_processes/admin/participatory_process_step_form.rb +2 -2
  88. data/app/forms/decidim/participatory_processes/admin/participatory_process_user_role_form.rb +2 -18
  89. data/app/helpers/decidim/participatory_processes/admin/participatory_process_helper.rb +1 -0
  90. data/app/helpers/decidim/participatory_processes/application_helper.rb +5 -0
  91. data/app/helpers/decidim/participatory_processes/participatory_process_helper.rb +37 -9
  92. data/app/helpers/decidim/participatory_processes/participatory_space_content_blocks_helper.rb +17 -0
  93. data/app/jobs/decidim/participatory_processes/change_active_step_job.rb +35 -0
  94. data/app/models/decidim/participatory_process.rb +5 -5
  95. data/app/models/decidim/participatory_process_group.rb +4 -0
  96. data/app/models/decidim/participatory_process_user_role.rb +5 -34
  97. data/app/packs/entrypoints/decidim_participatory_processes.js +0 -2
  98. data/app/packs/src/decidim/participatory_processes/admin/participatory_processes.js +2 -2
  99. data/app/permissions/decidim/participatory_processes/permissions.rb +11 -3
  100. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_group_presenter.rb +2 -2
  101. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +2 -2
  102. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_type_presenter.rb +2 -2
  103. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_user_role_presenter.rb +2 -2
  104. data/app/presenters/decidim/participatory_processes/admin_log/step_presenter.rb +2 -2
  105. data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +4 -40
  106. data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +0 -68
  107. data/app/presenters/decidim/participatory_processes/participatory_process_presenter.rb +6 -0
  108. data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +3 -42
  109. data/app/queries/decidim/participatory_processes/admin/admin_users.rb +1 -1
  110. data/app/queries/decidim/participatory_processes/admin/moderators.rb +1 -1
  111. data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +4 -4
  112. data/app/views/decidim/participatory_processes/admin/participatory_process_copies/_form.html.erb +24 -29
  113. data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +16 -5
  114. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb +72 -50
  115. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/edit.html.erb +15 -9
  116. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb +49 -54
  117. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/new.html.erb +28 -5
  118. data/app/views/decidim/participatory_processes/admin/participatory_process_imports/_form.html.erb +33 -39
  119. data/app/views/decidim/participatory_processes/admin/participatory_process_imports/new.html.erb +18 -5
  120. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/_form.html.erb +18 -25
  121. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/edit.html.erb +16 -5
  122. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/index.html.erb +54 -54
  123. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/new.html.erb +18 -5
  124. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/show.html.erb +2 -2
  125. data/app/views/decidim/participatory_processes/admin/participatory_process_types/_form.html.erb +6 -8
  126. data/app/views/decidim/participatory_processes/admin/participatory_process_types/edit.html.erb +14 -6
  127. data/app/views/decidim/participatory_processes/admin/participatory_process_types/index.html.erb +47 -50
  128. data/app/views/decidim/participatory_processes/admin/participatory_process_types/new.html.erb +14 -6
  129. data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/_form.html.erb +14 -18
  130. data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/edit.html.erb +17 -6
  131. data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/index.html.erb +59 -60
  132. data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/new.html.erb +16 -5
  133. data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +193 -146
  134. data/app/views/decidim/participatory_processes/admin/participatory_processes/edit.html.erb +25 -11
  135. data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +111 -128
  136. data/app/views/decidim/participatory_processes/admin/participatory_processes/new.html.erb +16 -9
  137. data/app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb +6 -10
  138. data/app/views/decidim/participatory_processes/participatory_processes/_collection.html.erb +8 -0
  139. data/app/views/decidim/participatory_processes/participatory_processes/all_metrics.html.erb +21 -8
  140. data/app/views/decidim/participatory_processes/participatory_processes/index.html.erb +19 -17
  141. data/app/views/decidim/participatory_processes/participatory_processes/index.js.erb +1 -8
  142. data/app/views/decidim/participatory_processes/participatory_processes/show.html.erb +14 -128
  143. data/app/views/layouts/decidim/_process_header.html.erb +15 -26
  144. data/app/views/layouts/decidim/_process_nav_item.html.erb +6 -0
  145. data/app/views/layouts/decidim/admin/_manage_processes.html.erb +36 -0
  146. data/app/views/layouts/decidim/admin/participatory_process.html.erb +12 -14
  147. data/app/views/layouts/decidim/admin/participatory_process_group.html.erb +23 -13
  148. data/app/views/layouts/decidim/admin/participatory_process_groups.html.erb +13 -0
  149. data/app/views/layouts/decidim/admin/participatory_process_type.html.erb +13 -11
  150. data/app/views/layouts/decidim/admin/participatory_processes.html.erb +14 -8
  151. data/app/views/layouts/decidim/participatory_process.html.erb +7 -14
  152. data/config/locales/ar.yml +0 -52
  153. data/config/locales/bg.yml +0 -6
  154. data/config/locales/ca.yml +48 -68
  155. data/config/locales/cs.yml +51 -71
  156. data/config/locales/de.yml +53 -69
  157. data/config/locales/el.yml +8 -70
  158. data/config/locales/en.yml +52 -72
  159. data/config/locales/es-MX.yml +49 -65
  160. data/config/locales/es-PY.yml +49 -65
  161. data/config/locales/es.yml +48 -68
  162. data/config/locales/eu.yml +170 -146
  163. data/config/locales/fi-plain.yml +49 -65
  164. data/config/locales/fi.yml +52 -68
  165. data/config/locales/fr-CA.yml +51 -67
  166. data/config/locales/fr.yml +52 -71
  167. data/config/locales/ga-IE.yml +0 -13
  168. data/config/locales/gl.yml +0 -69
  169. data/config/locales/hu.yml +6 -72
  170. data/config/locales/id-ID.yml +0 -52
  171. data/config/locales/is-IS.yml +0 -20
  172. data/config/locales/it.yml +0 -70
  173. data/config/locales/ja.yml +53 -69
  174. data/config/locales/lb.yml +1 -46
  175. data/config/locales/lt.yml +52 -67
  176. data/config/locales/lv.yml +0 -55
  177. data/config/locales/nl.yml +0 -70
  178. data/config/locales/no.yml +0 -70
  179. data/config/locales/pl.yml +0 -69
  180. data/config/locales/pt-BR.yml +0 -74
  181. data/config/locales/pt.yml +0 -70
  182. data/config/locales/ro-RO.yml +4 -70
  183. data/config/locales/ru.yml +0 -45
  184. data/config/locales/sk.yml +0 -53
  185. data/config/locales/sl.yml +0 -7
  186. data/config/locales/sq-AL.yml +1 -0
  187. data/config/locales/sv.yml +17 -72
  188. data/config/locales/th-TH.yml +1 -0
  189. data/config/locales/tr-TR.yml +6 -69
  190. data/config/locales/uk.yml +0 -45
  191. data/config/locales/zh-CN.yml +1 -61
  192. data/config/locales/zh-TW.yml +3 -69
  193. data/db/migrate/20220315100140_change_steps_dates_to_datetime.rb +8 -0
  194. data/lib/decidim/api/participatory_process_step_type.rb +2 -2
  195. data/lib/decidim/participatory_processes/admin_engine.rb +20 -139
  196. data/lib/decidim/participatory_processes/content_blocks/registry_manager.rb +278 -0
  197. data/lib/decidim/participatory_processes/engine.rb +13 -103
  198. data/lib/decidim/participatory_processes/menu.rb +190 -0
  199. data/lib/decidim/participatory_processes/participatory_space.rb +7 -204
  200. data/lib/decidim/participatory_processes/query_extensions.rb +2 -2
  201. data/lib/decidim/participatory_processes/seeds.rb +164 -0
  202. data/lib/decidim/participatory_processes/test/factories.rb +25 -9
  203. data/lib/decidim/participatory_processes/version.rb +1 -1
  204. data/lib/tasks/decidim_participatory_processes.rake +8 -0
  205. metadata +63 -65
  206. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters.erb +0 -21
  207. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters_small_view.erb +0 -18
  208. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/participatory_space_filters.erb +0 -6
  209. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/show.erb +0 -8
  210. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/title_filter_order.erb +0 -8
  211. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes_cell.rb +0 -60
  212. data/app/cells/decidim/participatory_process_groups/content_blocks/html/show.erb +0 -3
  213. data/app/cells/decidim/participatory_process_groups/content_blocks/html_cell.rb +0 -13
  214. data/app/cells/decidim/participatory_process_groups/content_blocks/metadata/show.erb +0 -28
  215. data/app/cells/decidim/participatory_process_groups/content_blocks/metadata_cell.rb +0 -15
  216. data/app/cells/decidim/participatory_process_groups/content_blocks/title/show.erb +0 -43
  217. data/app/cells/decidim/participatory_process_groups/content_blocks/title_cell.rb +0 -64
  218. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/_all_processes.erb +0 -9
  219. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/show.erb +0 -14
  220. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/single_process.erb +0 -48
  221. data/app/cells/decidim/participatory_processes/process_group_m/footer.erb +0 -8
  222. data/app/cells/decidim/participatory_processes/process_group_m_cell.rb +0 -60
  223. data/app/cells/decidim/participatory_processes/process_group_s/image.erb +0 -1
  224. data/app/cells/decidim/participatory_processes/process_group_s/show.erb +0 -8
  225. data/app/cells/decidim/participatory_processes/process_m/data.erb +0 -21
  226. data/app/cells/decidim/participatory_processes/process_m/footer.erb +0 -14
  227. data/app/cells/decidim/participatory_processes/process_m/tags.erb +0 -8
  228. data/app/cells/decidim/participatory_processes/process_m_cell.rb +0 -87
  229. data/app/cells/decidim/participatory_processes/process_s/image.erb +0 -1
  230. data/app/cells/decidim/participatory_processes/process_s/show.erb +0 -14
  231. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_admin.rb +0 -58
  232. data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_admin.rb +0 -58
  233. data/app/commands/decidim/participatory_processes/admin/notify_role_assigned_to_participatory_process.rb +0 -22
  234. data/app/commands/decidim/participatory_processes/admin/publish_participatory_process.rb +0 -40
  235. data/app/commands/decidim/participatory_processes/admin/unpublish_participatory_process.rb +0 -40
  236. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_admin.rb +0 -56
  237. data/app/controllers/decidim/participatory_processes/participatory_process_steps_controller.rb +0 -28
  238. data/app/controllers/decidim/participatory_processes/widgets_controller.rb +0 -27
  239. data/app/packs/src/decidim/participatory_processes/filters.js +0 -28
  240. data/app/views/decidim/participatory_process_steps/_participatory_process_step.html.erb +0 -16
  241. data/app/views/decidim/participatory_processes/participatory_process_steps/_timeline.html.erb +0 -7
  242. data/app/views/decidim/participatory_processes/participatory_process_steps/index.html.erb +0 -18
  243. data/app/views/decidim/participatory_processes/participatory_processes/_metrics.html.erb +0 -10
  244. data/app/views/decidim/participatory_processes/participatory_processes/_order_by_processes.html.erb +0 -1
  245. data/app/views/decidim/participatory_processes/participatory_processes/_participatory_process_group.html.erb +0 -4
  246. data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process.html.erb +0 -39
  247. data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process_group.html.erb +0 -31
  248. data/app/views/layouts/decidim/_process_header_steps.html.erb +0 -37
  249. data/app/views/layouts/decidim/_process_navigation.html.erb +0 -20
  250. data/config/environment.rb +0 -0
  251. data/db/seeds/Exampledocument.pdf +0 -0
  252. data/db/seeds/city.jpeg +0 -0
  253. data/db/seeds/city2.jpeg +0 -0
  254. data/db/seeds/homepage_image.jpg +0 -0
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ParticipatoryProcesses
5
+ module ContentBlocks
6
+ class StatsCell < Decidim::ContentBlocks::ParticipatorySpaceStatsCell
7
+ include ParticipatorySpaceContentBlocksHelper
8
+
9
+ private
10
+
11
+ def stats
12
+ @stats ||= resource.show_statistics && ParticipatoryProcessStatsPresenter.new(participatory_process: resource).collection
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -40,7 +40,7 @@ module Decidim
40
40
  def default_filter_params
41
41
  {
42
42
  with_date: default_date_filter,
43
- with_type: nil
43
+ with_any_type: nil
44
44
  }
45
45
  end
46
46
 
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This cell renders the process card for an instance of a Process
6
- # the default size is the Medium Card (:m)
6
+ # the default size is the Grid Card (:g)
7
7
  class ProcessCell < Decidim::ViewModel
8
8
  def show
9
9
  cell card_size, model, options
@@ -16,7 +16,7 @@ module Decidim
16
16
  when :s
17
17
  "decidim/participatory_processes/process_s"
18
18
  else
19
- "decidim/participatory_processes/process_m"
19
+ "decidim/participatory_processes/process_g"
20
20
  end
21
21
  end
22
22
  end
@@ -0,0 +1,22 @@
1
+ <h4 class="menu-bar__secondary-dropdown__title"><%= title %></h4>
2
+ <div class="menu-bar__secondary-dropdown__metadata">
3
+ <% if display_steps? %>
4
+ <span>
5
+ <%= icon "direction-line", class: "text-gray fill-current" %>
6
+
7
+ <span class="font-semibold"><%= t("layouts.decidim.participatory_processes.participatory_process.active_step") %></span>
8
+ <%= link_to(
9
+ step_title,
10
+ decidim_participatory_processes.participatory_process_path(process, display_steps: true),
11
+ class: "text-secondary underline"
12
+ ) %>
13
+ </span>
14
+ <% end %>
15
+
16
+ <% if hashtag.present? %>
17
+ <span>
18
+ <%= icon "twitter-x-line", class: "text-gray fill-current" %>
19
+ <%= link_to "##{hashtag}", twitter_hashtag_url(hashtag), target: "_blank", class: "text-secondary underline" %>
20
+ </span>
21
+ <% end %>
22
+ </div>
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ParticipatoryProcesses
5
+ class ProcessDropdownMetadataCell < Decidim::ParticipatorySpaceDropdownMetadataCell
6
+ include ParticipatoryProcessHelper
7
+ include Decidim::ComponentPathHelper
8
+ include ActiveLinkTo
9
+
10
+ alias process model
11
+
12
+ def decidim_participatory_processes
13
+ Decidim::ParticipatoryProcesses::Engine.routes.url_helpers
14
+ end
15
+
16
+ private
17
+
18
+ def cache_hash
19
+ hash = []
20
+ hash << "decidim/process_dropdown_metadata"
21
+ hash << id
22
+ hash << current_user.try(:id).to_s
23
+ hash << I18n.locale.to_s
24
+
25
+ hash.join(Decidim.cache_key_separator)
26
+ end
27
+
28
+ def step_title
29
+ translated_attribute process.active_step&.title
30
+ end
31
+
32
+ def display_steps?
33
+ process.steps.present?
34
+ end
35
+
36
+ def nav_items_method = :process_nav_items
37
+ end
38
+ end
39
+ end
@@ -1,17 +1,16 @@
1
1
  <div class="row column">
2
- <div class="flex--sbe">
3
- <h3 class="section-heading collapse">
2
+ <div>
3
+ <h3 class="collapse">
4
4
  <%= title %>
5
5
  <%= render :filter_tabs %>
6
6
  </h3>
7
7
  <%= render :type_filter if participatory_process_types_for_select.present? %>
8
8
  </div>
9
- <hr class="reset mt-s mb-s">
9
+ <hr class="mt-s mb-s">
10
10
  </div>
11
11
  <% if process_count_by_filter["active"] == 0 && process_count_by_filter["upcoming"] == 0 %>
12
12
  <div class="row column">
13
- <div class="callout warning mb-sm">
14
- <p><%= t("decidim.participatory_processes.participatory_processes.filters.explanations.no_active_nor_upcoming_callout") %></p>
13
+ <%= cell("decidim/announcement", t("decidim.participatory_processes.participatory_processes.filters.explanations.no_active_nor_upcoming_callout"), callout_class: "warning") %>
15
14
  </div>
16
15
  </div>
17
16
  <% end %>
@@ -1,6 +1,6 @@
1
1
  <div id="process-type-filter" class="inline-filters">
2
2
  <div id="inline-filter-sort" class="dropdown-pane" data-position="bottom" data-alignment="right" data-dropdown data-auto-focus="true">
3
- <ul class="list-reset">
3
+ <ul>
4
4
  <% participatory_process_types_for_select.each do |title, id| %>
5
5
  <li>
6
6
  <%= link_to filter_link(current_filter, id), remote: true do %>
@@ -17,7 +17,7 @@ module Decidim
17
17
  end
18
18
 
19
19
  def current_type_filter_name
20
- participatory_process_types_for_select.find { |_, id| id == get_filter(:with_type) }&.first ||
20
+ participatory_process_types_for_select.find { |_, id| id == get_filter(:with_any_type) }&.first ||
21
21
  I18n.t("all_types", scope: "decidim.participatory_processes.participatory_processes.filters")
22
22
  end
23
23
 
@@ -34,9 +34,9 @@ module Decidim
34
34
  {
35
35
  filter: {
36
36
  with_date: date_filter,
37
- with_scope: get_filter(:with_scope),
38
- with_area: get_filter(:with_area),
39
- with_type: type_filter || get_filter(:with_type)
37
+ with_any_scope: get_filter(:with_any_scope),
38
+ with_any_area: get_filter(:with_any_area),
39
+ with_any_type: type_filter || get_filter(:with_any_type)
40
40
  }
41
41
  }
42
42
  end
@@ -45,11 +45,11 @@ module Decidim
45
45
  query = ParticipatoryProcess.where(organization: current_organization).ransack(
46
46
  {
47
47
  with_date: date_filter,
48
- with_scope: get_filter(:with_scope),
49
- with_area: get_filter(:with_area),
50
- with_type: filter_with_type ? get_filter(:with_type) : nil
48
+ with_any_scope: get_filter(:with_any_scope),
49
+ with_any_area: get_filter(:with_any_area),
50
+ with_any_type: filter_with_type ? get_filter(:with_any_type) : nil
51
51
  },
52
- current_user: current_user
52
+ current_user:
53
53
  ).result
54
54
 
55
55
  query.published.visible_for(current_user)
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ParticipatoryProcesses
5
+ # This cell renders the Grid (:g) process card
6
+ # for a given instance of a ParticipatoryProcess
7
+ class ProcessGCell < Decidim::CardGCell
8
+ private
9
+
10
+ def resource_path
11
+ Decidim::ParticipatoryProcesses::Engine.routes.url_helpers.participatory_process_path(model)
12
+ end
13
+
14
+ def resource_image_path
15
+ model.attached_uploader(:hero_image).path
16
+ end
17
+
18
+ def start_date
19
+ model.start_date
20
+ end
21
+
22
+ def end_date
23
+ model.end_date
24
+ end
25
+
26
+ def metadata_cell
27
+ "decidim/participatory_processes/process_metadata_g"
28
+ end
29
+ end
30
+ end
31
+ end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This cell renders the process card for an instance of a ProcessGroup
6
- # the default size is the Medium Card (:m)
6
+ # the default size is the Grid Card (:g)
7
7
  class ProcessGroupCell < Decidim::ViewModel
8
8
  def show
9
9
  cell card_size, model, options
@@ -16,7 +16,7 @@ module Decidim
16
16
  when :s
17
17
  "decidim/participatory_processes/process_group_s"
18
18
  else
19
- "decidim/participatory_processes/process_group_m"
19
+ "decidim/participatory_processes/process_group_g"
20
20
  end
21
21
  end
22
22
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ParticipatoryProcesses
5
+ # This cell renders the Grid (:g) process card
6
+ # for a given instance of a ParticipatoryProcess
7
+ class ProcessGroupGCell < Decidim::CardGCell
8
+ private
9
+
10
+ def resource_path
11
+ Decidim::ParticipatoryProcesses::Engine.routes.url_helpers.participatory_process_group_path(model)
12
+ end
13
+
14
+ def resource_image_path
15
+ model.attached_uploader(:hero_image).path
16
+ end
17
+
18
+ def metadata_cell
19
+ "decidim/participatory_processes/process_group_metadata"
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "cell/partial"
4
+
5
+ module Decidim
6
+ module ParticipatoryProcesses
7
+ class ProcessGroupMetadataCell < Decidim::CardMetadataCell
8
+ delegate :active_step, :meta_scope, to: :model
9
+
10
+ def initialize(*)
11
+ super
12
+
13
+ @items.prepend(*items)
14
+ end
15
+
16
+ private
17
+
18
+ def items
19
+ [processes_count_item, meta_scope_item].compact
20
+ end
21
+
22
+ def processes_count_item
23
+ {
24
+ icon: "grid-line",
25
+ text: t(
26
+ "decidim.participatory_process_groups.content_blocks.title.participatory_processes",
27
+ count:
28
+ )
29
+ }
30
+ end
31
+
32
+ def meta_scope_item
33
+ return if (scope_text = translated_attribute(meta_scope)).blank?
34
+
35
+ {
36
+ icon: "globe-line",
37
+ text: scope_text
38
+ }
39
+ end
40
+
41
+ def count
42
+ cell("decidim/participatory_process_groups/content_blocks/related_processes", nil, resource: model).total_count
43
+ end
44
+ end
45
+ end
46
+ end
@@ -2,21 +2,13 @@
2
2
 
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
- # This cell renders the Small (:s) process group card
6
- # for an given instance of a ParticipatoryProcessGroup
7
- class ProcessGroupSCell < Decidim::CardMCell
5
+ # This cell renders the Search (:s) process group card
6
+ # for a given instance of a ParticipatoryProcessGroup
7
+ class ProcessGroupSCell < Decidim::CardSCell
8
8
  private
9
9
 
10
- def has_image?
11
- model.hero_image.attached?
12
- end
13
-
14
- def resource_path
15
- Decidim::ParticipatoryProcesses::Engine.routes.url_helpers.participatory_process_group_path(model)
16
- end
17
-
18
- def resource_image_path
19
- model.attached_uploader(:hero_image).path
10
+ def metadata_cell
11
+ "decidim/participatory_processes/process_metadata"
20
12
  end
21
13
  end
22
14
  end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "cell/partial"
4
+
5
+ module Decidim
6
+ module ParticipatoryProcesses
7
+ class ProcessMetadataCell < Decidim::CardMetadataCell
8
+ delegate :active_step, to: :model
9
+
10
+ def initialize(*)
11
+ super
12
+
13
+ @items.prepend(*process_items)
14
+ end
15
+
16
+ private
17
+
18
+ def process_items
19
+ [progress_item, active_step_item].compact
20
+ end
21
+
22
+ def active_step_item
23
+ return if active_step.blank?
24
+
25
+ {
26
+ text: translated_attribute(active_step.title),
27
+ icon: "direction-line"
28
+ }
29
+ end
30
+
31
+ def start_date
32
+ return if model.try(:start_date).blank?
33
+
34
+ @start_date ||= model.start_date.to_time
35
+ end
36
+
37
+ def end_date
38
+ return if model.try(:end_date).blank?
39
+
40
+ @end_date ||= model.end_date.to_time
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "cell/partial"
4
+
5
+ module Decidim
6
+ module ParticipatoryProcesses
7
+ class ProcessMetadataGCell < Decidim::ParticipatoryProcesses::ProcessMetadataCell
8
+ private
9
+
10
+ def items
11
+ [progress_item, active_step_item].compact
12
+ end
13
+ end
14
+ end
15
+ end
@@ -2,33 +2,13 @@
2
2
 
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
- # This cell renders the Small (:s) process card
6
- # for an given instance of a ParticipatoryProcess
7
- class ProcessSCell < Decidim::CardMCell
5
+ # This cell renders the Search (:s) process card
6
+ # for a given instance of a ParticipatoryProcess
7
+ class ProcessSCell < Decidim::CardSCell
8
8
  private
9
9
 
10
- def has_image?
11
- model.hero_image.attached?
12
- end
13
-
14
- def has_step?
15
- model.active_step.present?
16
- end
17
-
18
- def resource_path
19
- Decidim::ParticipatoryProcesses::Engine.routes.url_helpers.participatory_process_path(model)
20
- end
21
-
22
- def resource_image_path
23
- model.attached_uploader(:hero_image).path
24
- end
25
-
26
- def step_title
27
- translated_attribute model.active_step.title
28
- end
29
-
30
- def i18n_scope
31
- "decidim.participatory_processes.pages.home.highlighted_processes"
10
+ def metadata_cell
11
+ "decidim/participatory_processes/process_metadata"
32
12
  end
33
13
  end
34
14
  end
@@ -0,0 +1,48 @@
1
+ <%= decidim_modal id: "process-steps-modal", class: "participatory-space__metadata-modal", data: do %>
2
+ <div data-dialog-container>
3
+ <%= icon "flag-line" %>
4
+ <h3 id="dialog-title-process-steps-modal" data-dialog-title><%= t("participatory_process_steps.index.process_steps", scope: "decidim") %></h3>
5
+ <div>
6
+ <div class="participatory-space__metadata-modal__list-container" data-component="accordion" data-multiselectable="false" data-collapsible="false">
7
+ <ol class="participatory-space__metadata-modal__list">
8
+ <% steps.each_with_index do |step, i| %>
9
+ <% active = step == active_step %>
10
+ <li>
11
+ <%# NOTE: The following markup is duplicated to fulfill a11y requirements %>
12
+ <% if steps.length == 1 %>
13
+ <div id="trigger-process-steps-<%= i %>" class="participatory-space__metadata-modal__step<%= " is-active" if active %>" aria-expanded="true">
14
+ <span><%= step.position + 1 %></span>
15
+ <span>
16
+ <span class="participatory-space__metadata-modal__step-title">
17
+ <span class="participatory-space__metadata-modal__step-current"><%= t("active_step", scope: "layouts.decidim.participatory_processes.participatory_process") %></span>
18
+ <%= translated_attribute(step.title) %>
19
+ </span>
20
+ <span class="participatory-space__metadata-modal__step-dates"><%= step_dates(step) %></span>
21
+ </span>
22
+ </div>
23
+ <% else %>
24
+ <button id="trigger-process-steps-<%= i %>" class="participatory-space__metadata-modal__step<%= " is-active" if active %>" data-controls="panel-process-steps-<%= i %>" data-open="<%= "true" if active %>">
25
+ <span><%= step.position + 1 %></span>
26
+ <span>
27
+ <span class="participatory-space__metadata-modal__step-title">
28
+ <span class="participatory-space__metadata-modal__step-current"><%= t("active_step", scope: "layouts.decidim.participatory_processes.participatory_process") %></span>
29
+ <%= translated_attribute(step.title) %>
30
+ </span>
31
+ <span class="participatory-space__metadata-modal__step-dates"><%= step_dates(step) %></span>
32
+ </span>
33
+ </button>
34
+ <% end %>
35
+ </li>
36
+ <% end %>
37
+ </ol>
38
+ <div>
39
+ <% steps.each_with_index do |step, i| %>
40
+ <div id="panel-process-steps-<%= i %>" class="editor-content">
41
+ <%= decidim_sanitize_editor_admin(translated_attribute(step.description)) %>
42
+ </div>
43
+ <% end %>
44
+ </div>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ <% end %>
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ParticipatoryProcesses
5
+ class ProcessStepCell < Decidim::ViewModel
6
+ include ParticipatoryProcessHelper
7
+ include Decidim::ModalHelper
8
+
9
+ delegate :steps, :active_step, to: :model
10
+
11
+ def show
12
+ return if steps.blank?
13
+
14
+ render
15
+ end
16
+
17
+ private
18
+
19
+ def display_steps?
20
+ [true, "true"].include? options[:display_steps]
21
+ end
22
+
23
+ def data
24
+ return unless display_steps?
25
+
26
+ { is_open: true }
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,16 @@
1
+ <div class="content-block__title">
2
+ <h2 class="h2 decorator"><%= title %></h2>
3
+ <div class="label text-lg"><%= total_count %></div>
4
+ <% if show_all_path.present? %>
5
+ <%= link_to show_all_path, class: "button button__sm button__text-secondary" do %>
6
+ <span><%= t("decidim.participatory_processes.pages.home.highlighted_processes.see_all_spaces") %></span>
7
+ <%= icon "arrow-right-line" %>
8
+ <% end %>
9
+ <% end %>
10
+ </div>
11
+
12
+ <div class="participatory-space__block-grid">
13
+ <% processes.each do |process| %>
14
+ <%= card_for(process) %>
15
+ <% end %>
16
+ </div>
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ParticipatoryProcesses
5
+ # This cell renders a list of processes
6
+ class ProcessesCell < Decidim::ViewModel
7
+ include Decidim::CardHelper
8
+
9
+ alias processes model
10
+
11
+ def total_count
12
+ @total_count ||= options[:total_count] || processes.size
13
+ end
14
+
15
+ def show_all_path
16
+ @show_all_path ||= options[:show_all_path]
17
+ end
18
+
19
+ def title
20
+ options[:title] || t("related_processes", scope: "decidim.participatory_processes.show")
21
+ end
22
+ end
23
+ end
24
+ end
@@ -18,7 +18,7 @@ module Decidim
18
18
  # Executes the command. Broadcasts these events:
19
19
  #
20
20
  # - :ok when everything is valid.
21
- # - :invalid if the data wasn't valid and we couldn't proceed.
21
+ # - :invalid if the data was not valid and we could not proceed.
22
22
  #
23
23
  # Returns nothing.
24
24
  def call
@@ -19,7 +19,7 @@ module Decidim
19
19
  # Executes the command. Broadcasts these events:
20
20
  #
21
21
  # - :ok when everything is valid.
22
- # - :invalid if the form wasn't valid and we couldn't proceed.
22
+ # - :invalid if the form was not valid and we could not proceed.
23
23
  #
24
24
  # Returns nothing.
25
25
  def call
@@ -122,7 +122,7 @@ module Decidim
122
122
  step_settings: copied_step_settings,
123
123
  weight: component.weight
124
124
  )
125
- component.manifest.run_hooks(:copy, new_component: new_component, old_component: component)
125
+ component.manifest.run_hooks(:copy, new_component:, old_component: component)
126
126
  end
127
127
  end
128
128
 
@@ -16,7 +16,7 @@ module Decidim
16
16
  # Executes the command. Broadcasts these events:
17
17
  #
18
18
  # - :ok when everything is valid.
19
- # - :invalid if the form wasn't valid and we couldn't proceed.
19
+ # - :invalid if the form was not valid and we could not proceed.
20
20
  #
21
21
  # Returns nothing.
22
22
  def call
@@ -27,6 +27,8 @@ module Decidim
27
27
  if process.persisted?
28
28
  add_admins_as_followers(process)
29
29
  link_related_processes
30
+ Decidim::ContentBlocksCreator.new(process).create_default!
31
+
30
32
  broadcast(:ok, process)
31
33
  else
32
34
  form.errors.add(:hero_image, process.errors[:hero_image]) if process.errors.include? :hero_image
@@ -16,7 +16,7 @@ module Decidim
16
16
  # Executes the command. Broadcasts these events:
17
17
  #
18
18
  # - :ok when everything is valid.
19
- # - :invalid if the form wasn't valid and we couldn't proceed.
19
+ # - :invalid if the form was not valid and we could not proceed.
20
20
  #
21
21
  # Returns nothing.
22
22
  def call
@@ -25,6 +25,8 @@ module Decidim
25
25
  group = create_participatory_process_group
26
26
 
27
27
  if group.persisted?
28
+ Decidim::ContentBlocksCreator.new(group).create_default!
29
+
28
30
  broadcast(:ok, group)
29
31
  else
30
32
  form.errors.add(:hero_image, group.errors[:hero_image]) if group.errors.include? :hero_image
@@ -51,7 +53,7 @@ module Decidim
51
53
  hashtag: form.hashtag,
52
54
  group_url: form.group_url,
53
55
  hero_image: form.hero_image, # Keep after organization
54
- participatory_processes: participatory_processes,
56
+ participatory_processes:,
55
57
  developer_group: form.developer_group,
56
58
  local_area: form.local_area,
57
59
  meta_scope: form.meta_scope,
@@ -19,7 +19,7 @@ module Decidim
19
19
  # Executes the command. Broadcasts these events:
20
20
  #
21
21
  # - :ok when everything is valid.
22
- # - :invalid if the form wasn't valid and we couldn't proceed.
22
+ # - :invalid if the form was not valid and we could not proceed.
23
23
  #
24
24
  # Returns nothing.
25
25
  def call
@@ -16,7 +16,7 @@ module Decidim
16
16
  # Executes the command. Broadcasts these events:
17
17
  #
18
18
  # - :ok when everything is valid.
19
- # - :invalid if the form wasn't valid and we couldn't proceed.
19
+ # - :invalid if the form was not valid and we could not proceed.
20
20
  #
21
21
  # Returns nothing.
22
22
  def call
@@ -17,7 +17,7 @@ module Decidim
17
17
  # Executes the command. Broadcasts these events:
18
18
  #
19
19
  # - :ok when the record could be deleted.
20
- # - :invalid when the record couldn't be deleted.
20
+ # - :invalid when the record could not be deleted.
21
21
  #
22
22
  # Returns nothing.
23
23
  def call