decidim-participatory_processes 0.23.0 → 0.24.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/participatory_process_groups/content_block_cell.rb +17 -0
  3. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters.erb +22 -0
  4. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters_small_view.erb +18 -0
  5. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/participatory_space_filters.erb +6 -0
  6. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/show.erb +7 -0
  7. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/title_filter_order.erb +8 -0
  8. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes_cell.rb +65 -0
  9. data/app/cells/decidim/participatory_process_groups/content_blocks/html/show.erb +3 -0
  10. data/app/cells/decidim/participatory_process_groups/content_blocks/html_cell.rb +13 -0
  11. data/app/cells/decidim/participatory_process_groups/content_blocks/metadata/show.erb +28 -0
  12. data/app/cells/decidim/participatory_process_groups/content_blocks/metadata_cell.rb +15 -0
  13. data/app/cells/decidim/participatory_process_groups/content_blocks/stats/show.erb +13 -0
  14. data/app/cells/decidim/participatory_process_groups/content_blocks/stats_cell.rb +17 -0
  15. data/app/cells/decidim/participatory_process_groups/content_blocks/title/show.erb +43 -0
  16. data/app/cells/decidim/participatory_process_groups/content_blocks/title_cell.rb +56 -0
  17. data/app/cells/decidim/participatory_process_groups/process_filters_cell.rb +78 -0
  18. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/show.erb +2 -16
  19. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/single_process.erb +32 -28
  20. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_cell.rb +33 -10
  21. data/app/cells/decidim/participatory_processes/filtered_participatory_processes/show.erb +3 -0
  22. data/app/cells/decidim/participatory_processes/filtered_participatory_processes_cell.rb +56 -0
  23. data/app/cells/decidim/participatory_processes/process_cell.rb +6 -1
  24. data/app/cells/decidim/participatory_processes/process_filters_cell.rb +1 -1
  25. data/app/cells/decidim/participatory_processes/process_group_cell.rb +6 -1
  26. data/app/cells/decidim/participatory_processes/process_group_m_cell.rb +3 -1
  27. data/app/cells/decidim/participatory_processes/process_group_s/image.erb +1 -0
  28. data/app/cells/decidim/participatory_processes/process_group_s/show.erb +8 -0
  29. data/app/cells/decidim/participatory_processes/process_group_s_cell.rb +23 -0
  30. data/app/cells/decidim/participatory_processes/process_s/image.erb +1 -0
  31. data/app/cells/decidim/participatory_processes/process_s/show.erb +14 -0
  32. data/app/cells/decidim/participatory_processes/process_s_cell.rb +35 -0
  33. data/app/cells/decidim/participatory_processes/statistic/show.erb +3 -3
  34. data/app/cells/decidim/participatory_processes/statistics/show.erb +1 -1
  35. data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +1 -0
  36. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_admin.rb +7 -75
  37. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb +11 -2
  38. data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +1 -0
  39. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb +11 -2
  40. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_step.rb +1 -0
  41. data/app/controllers/decidim/participatory_processes/admin/imports_controller.rb +14 -0
  42. data/app/controllers/decidim/participatory_processes/admin/moderations/reports_controller.rb +18 -0
  43. data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_content_blocks_controller.rb +48 -0
  44. data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_controller.rb +53 -0
  45. data/app/controllers/decidim/participatory_processes/admin/participatory_process_groups_controller.rb +3 -1
  46. data/app/controllers/decidim/participatory_processes/participatory_process_groups_controller.rb +1 -2
  47. data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +14 -1
  48. data/app/events/decidim/participatory_process_role_assigned_event.rb +1 -1
  49. data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +1 -0
  50. data/app/forms/decidim/participatory_processes/admin/participatory_process_group_form.rb +34 -2
  51. data/app/forms/decidim/participatory_processes/admin/participatory_process_step_form.rb +1 -1
  52. data/app/forms/decidim/participatory_processes/admin/participatory_process_user_role_form.rb +0 -5
  53. data/app/helpers/decidim/participatory_processes/admin/participatory_processes_menu_helper.rb +23 -0
  54. data/app/helpers/decidim/participatory_processes/admin/process_groups_for_select_helper.rb +1 -1
  55. data/app/helpers/decidim/participatory_processes/application_helper.rb +0 -12
  56. data/app/helpers/decidim/participatory_processes/participatory_process_helper.rb +35 -0
  57. data/app/models/decidim/participatory_process_group.rb +9 -1
  58. data/app/permissions/decidim/participatory_processes/permissions.rb +1 -0
  59. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_group_presenter.rb +12 -4
  60. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +2 -2
  61. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_user_role_presenter.rb +2 -2
  62. data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +67 -0
  63. data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +2 -2
  64. data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +3 -3
  65. data/app/queries/decidim/participatory_processes/group_participatory_processes.rb +16 -0
  66. data/app/queries/decidim/participatory_processes/group_published_participatory_processes.rb +21 -0
  67. data/app/queries/decidim/participatory_processes/organization_participatory_processes.rb +1 -1
  68. data/app/queries/decidim/participatory_processes/organization_published_participatory_processes.rb +1 -1
  69. data/app/queries/decidim/participatory_processes/promoted_participatory_process_groups.rb +12 -0
  70. data/app/queries/decidim/participatory_processes/stats_followers_count.rb +18 -4
  71. data/app/queries/decidim/participatory_processes/stats_participants_count.rb +18 -4
  72. data/app/queries/decidim/participatory_processes/visible_participatory_process_groups.rb +6 -2
  73. data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +1 -1
  74. data/app/serializers/decidim/participatory_processes/participatory_process_serializer.rb +1 -1
  75. data/app/services/decidim/participatory_processes/participatory_process_search.rb +2 -1
  76. data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +2 -0
  77. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb +68 -13
  78. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/edit.html.erb +7 -14
  79. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb +12 -3
  80. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/new.html.erb +2 -8
  81. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/show.html.erb +10 -2
  82. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/edit.html.erb +1 -0
  83. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/index.html.erb +6 -0
  84. data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/edit.html.erb +2 -0
  85. data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/index.html.erb +8 -0
  86. data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/new.html.erb +2 -0
  87. data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +4 -0
  88. data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +14 -3
  89. data/app/views/decidim/participatory_processes/admin/participatory_processes/new.html.erb +2 -0
  90. data/app/views/decidim/participatory_processes/admin/shared/_secondary_nav.html.erb +2 -16
  91. data/app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb +18 -8
  92. data/app/views/decidim/participatory_processes/participatory_process_groups/show.js.erb +12 -0
  93. data/app/views/decidim/participatory_processes/participatory_processes/_participatory_process_group.html.erb +4 -0
  94. data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process_group.html.erb +31 -0
  95. data/app/views/decidim/participatory_processes/participatory_processes/index.html.erb +4 -2
  96. data/app/views/decidim/participatory_processes/participatory_processes/show.html.erb +4 -4
  97. data/app/views/layouts/decidim/admin/participatory_process.html.erb +8 -1
  98. data/app/views/layouts/decidim/admin/participatory_process_group.html.erb +17 -0
  99. data/config/locales/ar.yml +0 -10
  100. data/config/locales/ca.yml +6 -9
  101. data/config/locales/cs.yml +65 -18
  102. data/config/locales/de.yml +85 -35
  103. data/config/locales/el.yml +0 -6
  104. data/config/locales/en.yml +52 -5
  105. data/config/locales/es-MX.yml +0 -9
  106. data/config/locales/es-PY.yml +0 -9
  107. data/config/locales/es.yml +0 -9
  108. data/config/locales/eu.yml +0 -6
  109. data/config/locales/fi-plain.yml +56 -6
  110. data/config/locales/fi.yml +59 -9
  111. data/config/locales/fr-CA.yml +52 -5
  112. data/config/locales/fr.yml +52 -5
  113. data/config/locales/gl.yml +0 -6
  114. data/config/locales/hu.yml +0 -6
  115. data/config/locales/id-ID.yml +0 -5
  116. data/config/locales/is-IS.yml +0 -3
  117. data/config/locales/it.yml +5 -6
  118. data/config/locales/ja.yml +0 -5
  119. data/config/locales/lv.yml +0 -7
  120. data/config/locales/nl.yml +51 -6
  121. data/config/locales/no.yml +0 -6
  122. data/config/locales/pl.yml +27 -7
  123. data/config/locales/pt-BR.yml +0 -6
  124. data/config/locales/pt.yml +0 -6
  125. data/config/locales/ro-RO.yml +0 -7
  126. data/config/locales/ru.yml +0 -8
  127. data/config/locales/si-LK.yml +1 -0
  128. data/config/locales/sk.yml +0 -8
  129. data/config/locales/sv.yml +13 -12
  130. data/config/locales/sw-KE.yml +1 -0
  131. data/config/locales/tr-TR.yml +104 -6
  132. data/config/locales/uk.yml +0 -8
  133. data/config/locales/zh-CN.yml +0 -5
  134. data/db/migrate/20170220110740_remove_steps_short_description.rb +1 -1
  135. data/db/migrate/20201007215105_add_hashtag_to_participatory_process_groups.rb +7 -0
  136. data/db/migrate/20201008154315_add_metadata_columns_to_participatory_process_groups.rb +13 -0
  137. data/db/migrate/20201013105520_rename_name_column_to_title_in_decidim_participatory_process_groups.rb +39 -0
  138. data/db/migrate/20201030133444_add_promoted_flag_to_decidim_participatory_process_groups.rb +7 -0
  139. data/db/migrate/20210204154593_add_weight_field_to_participatory_processes.rb +7 -0
  140. data/lib/decidim/api/participatory_process_group_type.rb +17 -0
  141. data/{app/types/decidim/participatory_processes → lib/decidim/api}/participatory_process_input_filter.rb +0 -0
  142. data/{app/types/decidim/participatory_processes → lib/decidim/api}/participatory_process_input_sort.rb +2 -2
  143. data/lib/decidim/api/participatory_process_step_type.rb +23 -0
  144. data/lib/decidim/api/participatory_process_type.rb +50 -0
  145. data/lib/decidim/participatory_processes.rb +2 -6
  146. data/lib/decidim/participatory_processes/admin_engine.rb +49 -1
  147. data/lib/decidim/participatory_processes/api.rb +11 -0
  148. data/lib/decidim/participatory_processes/engine.rb +90 -8
  149. data/lib/decidim/participatory_processes/participatory_space.rb +47 -24
  150. data/lib/decidim/participatory_processes/query_extensions.rb +18 -20
  151. data/lib/decidim/participatory_processes/test/factories.rb +15 -2
  152. data/lib/decidim/participatory_processes/version.rb +1 -1
  153. metadata +65 -22
  154. data/app/functions/decidim/participatory_processes/participatory_process_finder.rb +0 -10
  155. data/app/functions/decidim/participatory_processes/participatory_process_list.rb +0 -11
  156. data/app/types/decidim/participatory_processes/participatory_process_group_type.rb +0 -20
  157. data/app/types/decidim/participatory_processes/participatory_process_step_type.rb +0 -28
  158. data/app/types/decidim/participatory_processes/participatory_process_type.rb +0 -54
@@ -33,7 +33,6 @@ uk:
33
33
  participatory_process_group:
34
34
  description: Опис
35
35
  hero_image: Зображення
36
- name: Ім'я
37
36
  participatory_process_ids: Супутні рухи
38
37
  participatory_process_step:
39
38
  description: Опис
@@ -106,8 +105,6 @@ uk:
106
105
  title: Назва
107
106
  name: Рух співучасті
108
107
  participatory_process_group:
109
- fields:
110
- name: Ім'я
111
108
  name: Сукупність рухів
112
109
  participatory_process_step:
113
110
  fields:
@@ -258,11 +255,6 @@ uk:
258
255
  processes: Рухи
259
256
  participatory_process_groups:
260
257
  show:
261
- group_participatory_processes:
262
- one: 1 рух у %{group}
263
- few: "%{count} рухи у %{group}"
264
- many: "%{count} рухів у %{group}"
265
- other: "%{count} рухів у %{group}"
266
258
  title: Сукупності рухів співучасті
267
259
  participatory_process_steps:
268
260
  index:
@@ -37,7 +37,6 @@ zh-CN:
37
37
  participatory_process_group:
38
38
  description: 描述
39
39
  hero_image: 图片
40
- name: 名称
41
40
  participatory_process_ids: 相关进程
42
41
  participatory_process_step:
43
42
  cta_path: 调用行动路径
@@ -113,8 +112,6 @@ zh-CN:
113
112
  title: 标题
114
113
  name: 参与性进程
115
114
  participatory_process_group:
116
- fields:
117
- name: 名称
118
115
  name: 流程组
119
116
  participatory_process_step:
120
117
  fields:
@@ -299,8 +296,6 @@ zh-CN:
299
296
  related_assemblies: 相关的会议
300
297
  participatory_process_groups:
301
298
  show:
302
- group_participatory_processes:
303
- other: "%{count} 的 %{group} 进程"
304
299
  title: 参与性进程组
305
300
  participatory_process_steps:
306
301
  index:
@@ -19,7 +19,7 @@ class RemoveStepsShortDescription < ActiveRecord::Migration[5.0]
19
19
 
20
20
  def new_description_for(step)
21
21
  desc = {}
22
- step.description.each_key do |locale|
22
+ step.description.keys.each do |locale|
23
23
  desc[locale] = step.short_description[locale] + step.description[locale]
24
24
  end
25
25
  desc
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddHashtagToParticipatoryProcessGroups < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :decidim_participatory_process_groups, :hashtag, :string
6
+ end
7
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddMetadataColumnsToParticipatoryProcessGroups < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :decidim_participatory_process_groups, :group_url, :string
6
+ add_column :decidim_participatory_process_groups, :developer_group, :jsonb
7
+ add_column :decidim_participatory_process_groups, :local_area, :jsonb
8
+ add_column :decidim_participatory_process_groups, :meta_scope, :jsonb
9
+ add_column :decidim_participatory_process_groups, :target, :jsonb
10
+ add_column :decidim_participatory_process_groups, :participatory_scope, :jsonb
11
+ add_column :decidim_participatory_process_groups, :participatory_structure, :jsonb
12
+ end
13
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RenameNameColumnToTitleInDecidimParticipatoryProcessGroups < ActiveRecord::Migration[5.2]
4
+ def up
5
+ rename_column :decidim_participatory_process_groups, :name, :title
6
+ PaperTrail::Version.where(item_type: "Decidim::ParticipatoryProcessGroup").each do |version|
7
+ # rubocop:disable Rails/SkipsModelValidations
8
+ version.update_attribute(:object_changes, version.object_changes.gsub(/^name:/, "title:")) if version.object_changes.present?
9
+ # rubocop:enable Rails/SkipsModelValidations
10
+
11
+ next unless version.object.present? && version.object.has_key?("name")
12
+
13
+ object = version.object
14
+ object["title"] = object.delete("name")
15
+
16
+ # rubocop:disable Rails/SkipsModelValidations
17
+ version.update_attribute(:object, object)
18
+ # rubocop:enable Rails/SkipsModelValidations
19
+ end
20
+ end
21
+
22
+ def down
23
+ PaperTrail::Version.where(item_type: "Decidim::ParticipatoryProcessGroup").each do |version|
24
+ # rubocop:disable Rails/SkipsModelValidations
25
+ version.update_attribute(:object_changes, version.object_changes.gsub(/^title:/, "name:")) if version.object_changes.present?
26
+ # rubocop:enable Rails/SkipsModelValidations
27
+
28
+ next unless version.object.present? && version.object.has_key?("title")
29
+
30
+ object = version.object
31
+ object["name"] = object.delete("title")
32
+
33
+ # rubocop:disable Rails/SkipsModelValidations
34
+ version.update_attribute(:object, object)
35
+ # rubocop:enable Rails/SkipsModelValidations
36
+ end
37
+ rename_column :decidim_participatory_process_groups, :title, :name
38
+ end
39
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddPromotedFlagToDecidimParticipatoryProcessGroups < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :decidim_participatory_process_groups, :promoted, :boolean, default: false, index: true
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddWeightFieldToParticipatoryProcesses < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :decidim_participatory_processes, :weight, :integer, null: false, default: true
6
+ end
7
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ParticipatoryProcesses
5
+ # This type represents a ParticipatoryProcess.
6
+ class ParticipatoryProcessGroupType < Decidim::Api::Types::BaseObject
7
+ description "A participatory process group"
8
+
9
+ field :id, GraphQL::Types::ID, "ID of this participatory process group", null: false
10
+ field :title, Decidim::Core::TranslatedFieldType, "The title of this participatory process group", null: true
11
+ field :description, Decidim::Core::TranslatedFieldType, "The description of this participatory process group", null: true
12
+ field :participatory_processes, [Decidim::ParticipatoryProcesses::ParticipatoryProcessType, { null: true }],
13
+ description: "Lists all the participatory processes belonging to this group", null: false
14
+ field :hero_image, GraphQL::Types::String, "The hero image for this participatory process group", null: true
15
+ end
16
+ end
17
+ end
@@ -8,8 +8,8 @@ module Decidim
8
8
  graphql_name "ParticipatoryProcessSort"
9
9
  description "A type used for sorting participatory processess"
10
10
 
11
- argument :id, String, "Sort by ID, valid values are ASC or DESC", required: false
12
- argument :start_date, String, "Sort by participatory process starting date, valid values are ASC or DESC", required: false
11
+ argument :id, GraphQL::Types::String, "Sort by ID, valid values are ASC or DESC", required: false
12
+ argument :start_date, GraphQL::Types::String, "Sort by participatory process starting date, valid values are ASC or DESC", required: false
13
13
  end
14
14
  end
15
15
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ParticipatoryProcesses
5
+ # This type represents a step on a participatory process.
6
+ class ParticipatoryProcessStepType < Decidim::Api::Types::BaseObject
7
+ description "A participatory process step"
8
+
9
+ field :id, GraphQL::Types::ID, "The unique ID of this step.", null: false
10
+
11
+ field :participatory_process, ParticipatoryProcessType, description: "The participatory process in which this step belongs to.", null: false
12
+
13
+ field :title, Decidim::Core::TranslatedFieldType, "The title of this step", null: false
14
+ field :description, Decidim::Core::TranslatedFieldType, "The description of this step", null: true
15
+ field :start_date, Decidim::Core::DateType, "This step's start date", null: true
16
+ field :end_date, Decidim::Core::DateType, "This step's end date", null: true
17
+ field :call_to_action_path, GraphQL::Types::String, "A call to action URL for this step", method: :cta_path, null: true
18
+ field :call_to_action_text, Decidim::Core::TranslatedFieldType, "The call to action text for this step", method: :cta_text, null: true
19
+ field :active, GraphQL::Types::Boolean, "If this step is the active one", null: true
20
+ field :position, GraphQL::Types::Int, "Ordering position among all the steps", null: true
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ParticipatoryProcesses
5
+ # This type represents a ParticipatoryProcess.
6
+ class ParticipatoryProcessType < Decidim::Api::Types::BaseObject
7
+ implements Decidim::Core::ParticipatorySpaceInterface
8
+ implements Decidim::Core::ParticipatorySpaceResourceableInterface
9
+ implements Decidim::Core::ScopableInterface
10
+ implements Decidim::Core::AttachableInterface
11
+
12
+ description "A participatory process"
13
+
14
+ field :id, GraphQL::Types::ID, "The internal ID for this participatory process", null: false
15
+ field :slug, GraphQL::Types::String, null: false
16
+ field :hashtag, GraphQL::Types::String, "The hashtag for this participatory process", null: true
17
+ field :created_at, Decidim::Core::DateTimeType, "The time this page was created", null: false
18
+ field :updated_at, Decidim::Core::DateTimeType, "The time this page was updated", null: false
19
+ field :published_at, Decidim::Core::DateTimeType, "The time this page was published", null: false
20
+ field :subtitle, Decidim::Core::TranslatedFieldType, "The subtitle of this participatory process.", null: true
21
+ field :description, Decidim::Core::TranslatedFieldType, "The description of this participatory process.", null: true
22
+ field :short_description, Decidim::Core::TranslatedFieldType, "The short description of this participatory process.", null: true
23
+ field :start_date, Decidim::Core::DateType, "This participatory process' start date.", null: true
24
+ field :end_date, Decidim::Core::DateType, "This participatory process' end date.", null: true
25
+
26
+ field :banner_image, GraphQL::Types::String, "The banner image for this participatory process", null: true
27
+ field :hero_image, GraphQL::Types::String, "The hero image for this participatory process", null: true
28
+ field :promoted, GraphQL::Types::Boolean, "If this participatory process is promoted (therefore in the homepage)", null: true
29
+ field :developer_group, Decidim::Core::TranslatedFieldType, "The promoter group of this participatory process.", null: true
30
+ field :meta_scope, Decidim::Core::TranslatedFieldType, "The scope metadata of this participatory process.", null: true
31
+ field :local_area, Decidim::Core::TranslatedFieldType, "The organization area of this participatory process.", null: true
32
+ field :target, Decidim::Core::TranslatedFieldType, "Who participates in this participatory process.", null: true
33
+ field :participatory_scope, Decidim::Core::TranslatedFieldType, "What is decided on this participatory process.", null: true
34
+ field :participatory_structure, Decidim::Core::TranslatedFieldType, "How it is decided on this participatory process.", null: true
35
+ field :show_metrics, GraphQL::Types::Boolean, "If this participatory process should show metrics", null: true
36
+ field :show_statistics, GraphQL::Types::Boolean, "If this participatory process should show statistics", null: true
37
+ field :scopes_enabled, GraphQL::Types::Boolean, "If this participatory process has scopes enabled", null: true
38
+
39
+ field :announcement, Decidim::Core::TranslatedFieldType, "Highlighted announcement for this participatory process.", null: true
40
+
41
+ field :reference, GraphQL::Types::String, "Reference prefix for this participatory process", null: true
42
+ field :steps, [Decidim::ParticipatoryProcesses::ParticipatoryProcessStepType, { null: true }], "All the steps of this process.", null: false
43
+ field :categories, [Decidim::Core::CategoryType, { null: true }], "Categories for this participatory process", null: false
44
+
45
+ field :participatory_process_group, Decidim::ParticipatoryProcesses::ParticipatoryProcessGroupType,
46
+ null: true,
47
+ description: "The participatory process group in which this process belong to"
48
+ end
49
+ end
50
+ end
@@ -1,16 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "decidim/participatory_processes/admin"
4
+ require "decidim/participatory_processes/api"
4
5
  require "decidim/participatory_processes/engine"
5
6
  require "decidim/participatory_processes/admin_engine"
6
7
  require "decidim/participatory_processes/participatory_space"
7
8
 
8
9
  module Decidim
9
10
  # Base module for the participatory processes engine.
10
- module ParticipatoryProcesses
11
- # Public: Stores an instance of ViewHooks
12
- def self.view_hooks
13
- @view_hooks ||= ViewHooks.new
14
- end
15
- end
11
+ module ParticipatoryProcesses; end
16
12
  end
@@ -15,7 +15,11 @@ module Decidim
15
15
  paths["lib/tasks"] = nil
16
16
 
17
17
  routes do
18
- resources :participatory_process_groups
18
+ resources :participatory_process_groups do
19
+ resource :landing_page, only: [:edit, :update], controller: "participatory_process_group_landing_page" do
20
+ resources :content_blocks, only: [:edit, :update], controller: "participatory_process_group_landing_page_content_blocks"
21
+ end
22
+ end
19
23
  resources :participatory_processes, param: :slug, except: [:show, :destroy] do
20
24
  resource :publish, controller: "participatory_process_publications", only: [:create, :destroy]
21
25
  resources :copies, controller: "participatory_process_copies", only: [:new, :create]
@@ -52,6 +56,7 @@ module Decidim
52
56
  get :share
53
57
  end
54
58
  resources :exports, only: :create
59
+ resources :imports, only: [:new, :create]
55
60
  end
56
61
 
57
62
  resources :moderations do
@@ -60,7 +65,9 @@ module Decidim
60
65
  put :hide
61
66
  put :unhide
62
67
  end
68
+ resources :reports, controller: "moderations/reports", only: [:index, :show]
63
69
  end
70
+
64
71
  resources :participatory_space_private_users, controller: "participatory_space_private_users" do
65
72
  member do
66
73
  post :resend_invitation, to: "participatory_space_private_users#resend_invitation"
@@ -86,6 +93,12 @@ module Decidim
86
93
  app.config.assets.precompile += %w(admin/decidim_participatory_processes_manifest.js)
87
94
  end
88
95
 
96
+ initializer "decidim_participatory_processes.action_controller" do |_app|
97
+ ActiveSupport.on_load :action_controller do
98
+ helper Decidim::ParticipatoryProcesses::Admin::ParticipatoryProcessesMenuHelper if respond_to?(:helper)
99
+ end
100
+ end
101
+
89
102
  initializer "decidim_participatory_processes.admin_menu" do
90
103
  Decidim.menu :admin_menu do |menu|
91
104
  menu.item I18n.t("menu.participatory_processes", scope: "decidim.admin"),
@@ -97,6 +110,41 @@ module Decidim
97
110
  if: allowed_to?(:enter, :space_area, space_name: :processes) || allowed_to?(:enter, :space_area, space_name: :process_groups)
98
111
  end
99
112
  end
113
+
114
+ initializer "decidim_participatory_processes.admin_participatory_processes_menu" do
115
+ Decidim.menu :admin_participatory_processes_menu do |menu|
116
+ menu.item I18n.t("menu.participatory_processes", scope: "decidim.admin"),
117
+ decidim_admin_participatory_processes.participatory_processes_path,
118
+ position: 1,
119
+ if: allowed_to?(:enter, :space_area, space_name: :processes),
120
+ active: is_active_link?(decidim_admin_participatory_processes.participatory_processes_path)
121
+
122
+ menu.item I18n.t("menu.participatory_process_groups", scope: "decidim.admin"),
123
+ decidim_admin_participatory_processes.participatory_process_groups_path,
124
+ position: 2,
125
+ if: allowed_to?(:enter, :space_area, space_name: :process_groups),
126
+ active: is_active_link?(decidim_admin_participatory_processes.participatory_process_groups_path)
127
+ end
128
+ end
129
+ initializer "decidim_participatory_processes.admin_process_group_menu" do
130
+ Decidim.menu :admin_participatory_process_menu do |menu|
131
+ end
132
+ end
133
+
134
+ initializer "decidim_participatory_processes.admin_process_group_menu" do
135
+ Decidim.menu :admin_participatory_process_group_menu do |menu|
136
+ menu.item I18n.t("info", scope: "decidim.admin.menu.participatory_process_groups_submenu"),
137
+ decidim_admin_participatory_processes.edit_participatory_process_group_path(participatory_process_group),
138
+ position: 1,
139
+ if: allowed_to?(:update, :process_group, process_group: participatory_process_group),
140
+ active: is_active_link?(decidim_admin_participatory_processes.edit_participatory_process_group_path(participatory_process_group))
141
+ menu.item I18n.t("landing_page", scope: "decidim.admin.menu.participatory_process_groups_submenu"),
142
+ decidim_admin_participatory_processes.edit_participatory_process_group_landing_page_path(participatory_process_group),
143
+ position: 2,
144
+ if: allowed_to?(:update, :process_group, process_group: participatory_process_group),
145
+ active: is_active_link?(decidim_admin_participatory_processes.participatory_process_group_landing_page_path(participatory_process_group))
146
+ end
147
+ end
100
148
  end
101
149
  end
102
150
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ParticipatoryProcesses
5
+ autoload :ParticipatoryProcessInputFilter, "decidim/api/participatory_process_input_filter"
6
+ autoload :ParticipatoryProcessInputSort, "decidim/api/participatory_process_input_sort"
7
+ autoload :ParticipatoryProcessGroupType, "decidim/api/participatory_process_group_type"
8
+ autoload :ParticipatoryProcessStepType, "decidim/api/participatory_process_step_type"
9
+ autoload :ParticipatoryProcessType, "decidim/api/participatory_process_type"
10
+ end
11
+ end
@@ -51,9 +51,7 @@ module Decidim
51
51
  end
52
52
 
53
53
  initializer "decidim_participatory_processes.query_extensions" do
54
- Decidim::Api::QueryType.define do
55
- QueryExtensions.define(self)
56
- end
54
+ Decidim::Api::QueryType.include Decidim::ParticipatoryProcesses::QueryExtensions
57
55
  end
58
56
 
59
57
  initializer "decidim_participatory_processes.add_cells_view_paths" do
@@ -67,7 +65,7 @@ module Decidim
67
65
  decidim_participatory_processes.participatory_processes_path,
68
66
  position: 2,
69
67
  if: Decidim::ParticipatoryProcess.where(organization: current_organization).published.any?,
70
- active: %r{^\/process(es|_groups)}
68
+ active: %r{^/process(es|_groups)}
71
69
  end
72
70
  end
73
71
 
@@ -81,15 +79,99 @@ module Decidim
81
79
  settings.attribute :max_results, type: :integer, default: 4
82
80
  end
83
81
  end
82
+
83
+ Decidim.content_blocks.register(:participatory_process_group_homepage, :title) do |content_block|
84
+ content_block.cell = "decidim/participatory_process_groups/content_blocks/title"
85
+ content_block.public_name_key = "decidim.participatory_process_groups.content_blocks.title.name"
86
+ content_block.default!
87
+ end
88
+
89
+ (1..3).each do |index|
90
+ Decidim.content_blocks.register(:participatory_process_group_homepage, :"html_#{index}") do |content_block|
91
+ content_block.cell = "decidim/participatory_process_groups/content_blocks/html"
92
+ content_block.public_name_key = "decidim.participatory_process_groups.content_blocks.html_#{index}.name"
93
+ content_block.settings_form_cell = "decidim/content_blocks/html_settings_form"
94
+
95
+ content_block.settings do |settings|
96
+ settings.attribute :html_content, type: :text, translated: true
97
+ end
98
+ content_block.default!
99
+ end
100
+ end
101
+
102
+ Decidim.content_blocks.register(:participatory_process_group_homepage, :metadata) do |content_block|
103
+ content_block.cell = "decidim/participatory_process_groups/content_blocks/metadata"
104
+ content_block.public_name_key = "decidim.participatory_process_groups.content_blocks.metadata.name"
105
+ content_block.default!
106
+ end
107
+
108
+ Decidim.content_blocks.register(:participatory_process_group_homepage, :cta) do |content_block|
109
+ content_block.cell = "decidim/content_blocks/cta"
110
+ content_block.settings_form_cell = "decidim/content_blocks/cta_settings_form"
111
+ content_block.public_name_key = "decidim.content_blocks.cta.name"
112
+
113
+ content_block.images = [
114
+ {
115
+ name: :background_image,
116
+ uploader: "Decidim::HomepageImageUploader"
117
+ }
118
+ ]
119
+
120
+ content_block.settings do |settings|
121
+ settings.attribute :button_text, type: :text, translated: true
122
+ settings.attribute :button_url, type: :string, required: true
123
+ settings.attribute :description, type: :string, translated: true, editor: true
124
+ end
125
+
126
+ content_block.default!
127
+ end
128
+
129
+ Decidim.content_blocks.register(:participatory_process_group_homepage, :highlighted_proposals) do |content_block|
130
+ content_block.cell = "decidim/proposals/content_blocks/highlighted_proposals"
131
+ content_block.settings_form_cell = "decidim/content_blocks/highlighted_elements_settings_form"
132
+ content_block.public_name_key = "decidim.proposals.content_blocks.highlighted_proposals.proposals"
133
+
134
+ content_block.settings do |settings|
135
+ settings.attribute :order, type: :enum, default: "random", choices: %w(random recent)
136
+ end
137
+ end
138
+
139
+ Decidim.content_blocks.register(:participatory_process_group_homepage, :highlighted_results) do |content_block|
140
+ content_block.cell = "decidim/accountability/content_blocks/highlighted_results"
141
+ content_block.settings_form_cell = "decidim/content_blocks/highlighted_elements_settings_form"
142
+ content_block.public_name_key = "decidim.accountability.content_blocks.highlighted_results.results"
143
+
144
+ content_block.settings do |settings|
145
+ settings.attribute :order, type: :enum, default: "random", choices: %w(random recent)
146
+ end
147
+ end
148
+
149
+ Decidim.content_blocks.register(:participatory_process_group_homepage, :highlighted_meetings) do |content_block|
150
+ content_block.cell = "decidim/meetings/content_blocks/highlighted_meetings"
151
+ content_block.public_name_key = "decidim.meetings.content_blocks.upcoming_events.name"
152
+ content_block.default!
153
+ end
154
+
155
+ Decidim.content_blocks.register(:participatory_process_group_homepage, :stats) do |content_block|
156
+ content_block.cell = "decidim/participatory_process_groups/content_blocks/stats"
157
+ content_block.public_name_key = "decidim.participatory_process_groups.content_blocks.stats.name"
158
+ content_block.default!
159
+ end
160
+
161
+ Decidim.content_blocks.register(:participatory_process_group_homepage, :participatory_processes) do |content_block|
162
+ content_block.cell = "decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes"
163
+ content_block.public_name_key = "decidim.participatory_process_groups.content_blocks.participatory_processes.name"
164
+ content_block.default!
165
+ end
84
166
  end
85
167
 
86
168
  initializer "decidim_participatory_processes.stats" do
87
- Decidim.stats.register :followers_count, priority: StatsRegistry::HIGH_PRIORITY do |participatory_process|
88
- Decidim::ParticipatoryProcesses::StatsFollowersCount.for(participatory_process)
169
+ Decidim.stats.register :followers_count, priority: StatsRegistry::HIGH_PRIORITY do |participatory_space|
170
+ Decidim::ParticipatoryProcesses::StatsFollowersCount.for(participatory_space)
89
171
  end
90
172
 
91
- Decidim.stats.register :participants_count, priority: StatsRegistry::HIGH_PRIORITY do |participatory_process|
92
- Decidim::ParticipatoryProcesses::StatsParticipantsCount.for(participatory_process)
173
+ Decidim.stats.register :participants_count, priority: StatsRegistry::HIGH_PRIORITY do |participatory_space|
174
+ Decidim::ParticipatoryProcesses::StatsParticipantsCount.for(participatory_space)
93
175
  end
94
176
  end
95
177