decidim-participatory_processes 0.29.2 → 0.30.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/participatory_process_groups/process_filters_cell.rb +4 -5
  3. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_settings_form/show.erb +1 -1
  4. data/app/cells/decidim/participatory_processes/process_dropdown_metadata_cell.rb +7 -0
  5. data/app/cells/decidim/participatory_processes/process_filters/show.erb +0 -1
  6. data/app/cells/decidim/participatory_processes/process_filters_cell.rb +6 -32
  7. data/app/commands/decidim/participatory_processes/admin/copy_participatory_process.rb +2 -23
  8. data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +3 -3
  9. data/app/commands/decidim/participatory_processes/admin/import_participatory_process.rb +0 -1
  10. data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +3 -3
  11. data/app/controllers/decidim/participatory_processes/admin/component_share_tokens_controller.rb +18 -0
  12. data/app/controllers/decidim/participatory_processes/admin/participatory_process_share_tokens_controller.rb +16 -0
  13. data/app/controllers/decidim/participatory_processes/admin/participatory_processes_controller.rb +15 -3
  14. data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +2 -4
  15. data/app/controllers/decidim/participatory_processes/participatory_space_private_users_controller.rb +27 -0
  16. data/app/forms/decidim/participatory_processes/admin/participatory_process_copy_form.rb +0 -1
  17. data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +3 -33
  18. data/app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb +0 -1
  19. data/app/helpers/decidim/participatory_processes/participatory_process_helper.rb +28 -20
  20. data/app/jobs/decidim/participatory_processes/change_active_step_job.rb +1 -1
  21. data/app/models/decidim/participatory_process.rb +19 -3
  22. data/app/permissions/decidim/participatory_processes/permissions.rb +15 -14
  23. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +1 -1
  24. data/app/queries/decidim/participatory_processes/metrics/participatory_process_followers_metric_measure.rb +2 -2
  25. data/app/queries/decidim/participatory_processes/metrics/participatory_processes_metric_manage.rb +2 -2
  26. data/app/serializers/decidim/participatory_processes/open_data_participatory_process_serializer.rb +47 -0
  27. data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +1 -43
  28. data/app/serializers/decidim/participatory_processes/participatory_process_serializer.rb +17 -126
  29. data/app/views/decidim/participatory_processes/admin/participatory_process_copies/_form.html.erb +0 -4
  30. data/app/views/decidim/participatory_processes/admin/participatory_process_imports/_form.html.erb +0 -3
  31. data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +25 -60
  32. data/app/views/decidim/participatory_processes/admin/participatory_processes/_process_row.html.erb +83 -0
  33. data/app/views/decidim/participatory_processes/admin/participatory_processes/_processes_thead.html.erb +19 -0
  34. data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +16 -84
  35. data/app/views/decidim/participatory_processes/admin/participatory_processes/manage_trash.html.erb +20 -0
  36. data/app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb +3 -1
  37. data/app/views/decidim/participatory_processes/participatory_processes/index.html.erb +3 -1
  38. data/app/views/decidim/participatory_processes/participatory_processes/show.html.erb +6 -6
  39. data/app/views/decidim/participatory_processes/participatory_space_private_users/index.html.erb +22 -0
  40. data/config/assets.rb +1 -2
  41. data/config/locales/ar.yml +2 -17
  42. data/config/locales/bg.yml +0 -36
  43. data/config/locales/bs-BA.yml +0 -9
  44. data/config/locales/ca.yml +61 -36
  45. data/config/locales/cs.yml +61 -36
  46. data/config/locales/de.yml +60 -35
  47. data/config/locales/el.yml +0 -36
  48. data/config/locales/en.yml +61 -36
  49. data/config/locales/es-MX.yml +60 -35
  50. data/config/locales/es-PY.yml +60 -35
  51. data/config/locales/es.yml +60 -35
  52. data/config/locales/eu.yml +60 -35
  53. data/config/locales/fi-plain.yml +61 -36
  54. data/config/locales/fi.yml +61 -36
  55. data/config/locales/fr-CA.yml +24 -35
  56. data/config/locales/fr.yml +24 -35
  57. data/config/locales/ga-IE.yml +0 -14
  58. data/config/locales/gl.yml +0 -18
  59. data/config/locales/hu.yml +0 -36
  60. data/config/locales/id-ID.yml +0 -17
  61. data/config/locales/is-IS.yml +0 -13
  62. data/config/locales/it.yml +0 -21
  63. data/config/locales/ja.yml +61 -36
  64. data/config/locales/lb.yml +0 -20
  65. data/config/locales/lt.yml +0 -36
  66. data/config/locales/lv.yml +0 -20
  67. data/config/locales/nl.yml +0 -21
  68. data/config/locales/no.yml +0 -36
  69. data/config/locales/pl.yml +0 -36
  70. data/config/locales/pt-BR.yml +0 -33
  71. data/config/locales/pt.yml +0 -21
  72. data/config/locales/ro-RO.yml +1 -36
  73. data/config/locales/ru.yml +0 -14
  74. data/config/locales/sk.yml +0 -20
  75. data/config/locales/sr-CS.yml +0 -9
  76. data/config/locales/sv.yml +53 -36
  77. data/config/locales/tr-TR.yml +0 -21
  78. data/config/locales/uk.yml +0 -14
  79. data/config/locales/zh-CN.yml +0 -20
  80. data/config/locales/zh-TW.yml +0 -36
  81. data/db/migrate/20210310120750_add_followable_counter_cache_to_participatory_processes.rb +1 -1
  82. data/db/migrate/20240822161355_add_deleted_at_to_decidim_participatory_processes.rb +8 -0
  83. data/db/migrate/20241108141423_remove_column_show_metrics_from_participatory_processes.rb +7 -0
  84. data/db/migrate/20241108141514_remove_column_banner_image_from_participatory_processes.rb +7 -0
  85. data/db/migrate/20241108141605_remove_column_show_statistics_from_participatory_processes.rb +7 -0
  86. data/decidim-participatory_processes.gemspec +1 -1
  87. data/lib/decidim/api/participatory_process_group_type.rb +3 -3
  88. data/lib/decidim/api/participatory_process_step_type.rb +7 -9
  89. data/lib/decidim/api/participatory_process_type.rb +18 -23
  90. data/lib/decidim/api/participatory_process_type_type.rb +3 -3
  91. data/lib/decidim/participatory_processes/admin_engine.rb +85 -59
  92. data/lib/decidim/participatory_processes/content_blocks/registry_manager.rb +11 -0
  93. data/lib/decidim/participatory_processes/engine.rb +7 -0
  94. data/lib/decidim/participatory_processes/menu.rb +9 -17
  95. data/lib/decidim/participatory_processes/participatory_space.rb +5 -2
  96. data/lib/decidim/participatory_processes/seeds.rb +8 -16
  97. data/lib/decidim/participatory_processes/test/factories.rb +14 -14
  98. data/lib/decidim/participatory_processes/version.rb +1 -1
  99. metadata +24 -25
  100. data/app/cells/decidim/participatory_processes/process_filters/type_filter.erb +0 -17
  101. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_type.rb +0 -17
  102. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_type.rb +0 -13
  103. data/app/controllers/decidim/participatory_processes/admin/categories_controller.rb +0 -13
  104. data/app/controllers/decidim/participatory_processes/admin/participatory_process_types_controller.rb +0 -117
  105. data/app/forms/decidim/participatory_processes/admin/participatory_process_type_form.rb +0 -20
  106. data/app/helpers/decidim/participatory_processes/admin/participatory_process_helper.rb +0 -24
  107. data/app/packs/entrypoints/decidim_participatory_processes_admin.js +0 -1
  108. data/app/packs/src/decidim/participatory_processes/admin/participatory_processes.js +0 -18
  109. data/app/views/decidim/participatory_processes/admin/participatory_process_types/_form.html.erb +0 -9
  110. data/app/views/decidim/participatory_processes/admin/participatory_process_types/edit.html.erb +0 -18
  111. data/app/views/decidim/participatory_processes/admin/participatory_process_types/index.html.erb +0 -58
  112. data/app/views/decidim/participatory_processes/admin/participatory_process_types/new.html.erb +0 -18
@@ -23,16 +23,12 @@ zh-TW:
23
23
  local_area: 組織區域
24
24
  meta_scope: 元數據範圍
25
25
  participatory_process_group_id: 程序群組
26
- participatory_process_type_id: 處理類型
27
26
  participatory_scope: 決定了什麼
28
27
  participatory_structure: 如何決定
29
28
  private_space: 私有程序
30
29
  promoted: 推廣
31
30
  published_at: 發佈於
32
31
  related_process_ids: 相關程序
33
- scope_id: 範圍
34
- scope_type_max_depth_id: 範圍篩選深度
35
- scopes_enabled: 啟用範圍
36
32
  short_description: 簡短說明
37
33
  slug: URL網址
38
34
  start_date: 開始日期
@@ -61,8 +57,6 @@ zh-TW:
61
57
  short_description: 簡短說明
62
58
  start_date: 開始日期
63
59
  title: 標題
64
- participatory_process_type:
65
- title: 標題
66
60
  participatory_process_user_role:
67
61
  email: 電子郵件
68
62
  name: 名稱
@@ -98,7 +92,6 @@ zh-TW:
98
92
  new_process: 新的程序
99
93
  new_process_group: 新的程序群組
100
94
  new_process_step: 新階段
101
- new_process_type: 新的處理類型
102
95
  new_process_user_role: 新程序管理員
103
96
  preview: 預覽
104
97
  publish: 發布
@@ -109,16 +102,13 @@ zh-TW:
109
102
  participatory_process_groups_submenu:
110
103
  info: 資訊
111
104
  landing_page: 登陸頁面
112
- participatory_process_types: 處理類型
113
105
  participatory_processes: 程序
114
106
  participatory_processes_submenu:
115
107
  attachment_collections: 資料夾
116
108
  attachment_files: 檔案
117
109
  attachments: 附件
118
- categories: 類別
119
110
  components: 组件
120
111
  moderations: 版主
121
- private_users: 私人參與者
122
112
  process_admins: 程序管理員
123
113
  steps: 分類
124
114
  models:
@@ -139,11 +129,6 @@ zh-TW:
139
129
  start_date: 開始日期
140
130
  title: 標題
141
131
  name: 參與式過程階段
142
- participatory_process_type:
143
- fields:
144
- created_at: 建立於
145
- title: 標題
146
- name: 處理類型
147
132
  participatory_process_user_role:
148
133
  fields:
149
134
  email: 電子郵件
@@ -166,7 +151,6 @@ zh-TW:
166
151
  title: 重複的參與性流程
167
152
  participatory_process_groups:
168
153
  destroy:
169
- error: 刪除參與性流程群組時發生錯誤。
170
154
  success: 參與式流程組成功刪除。
171
155
  edit:
172
156
  title: 編輯程序群組
@@ -219,21 +203,6 @@ zh-TW:
219
203
  update:
220
204
  error: 更新參與程序階段時出現問題。
221
205
  success: 參與式階段成功更新。
222
- participatory_process_types:
223
- create:
224
- error: 新增程序類型時發生錯誤
225
- success: 程序類型已成功創建
226
- destroy:
227
- success: 程序類型已成功刪除。
228
- edit:
229
- title: 編輯程序類型
230
- update: 更新
231
- new:
232
- create: 建立
233
- title: 新的處理類型
234
- update:
235
- error: 更新這個程序類型時發生錯誤
236
- success: 程序類型成功更新。
237
206
  participatory_process_user_roles:
238
207
  create:
239
208
  error: 新增參與者至此參與式過程時發生問題。
@@ -385,14 +354,9 @@ zh-TW:
385
354
  form:
386
355
  announcement_help: 您在此處輸入的文字將顯示至使用者的正下方程序信息
387
356
  duration: 持續時間
388
- filters: 過濾器
389
357
  images: 圖片
390
358
  metadata: 元數據
391
- other: 其他
392
359
  related_processes: 相關程序
393
- scope_type_max_depth_help: 限制範圍過濾器深度;過濾器將會從一般範圍到所選範圍層級進行顯示。
394
- select_an_area: 選擇一個地區
395
- select_participatory_process_type: 選擇一個程序類型
396
360
  select_process_group: 選擇一個程序群組
397
361
  title: 基本資訊
398
362
  content_blocks:
@@ -7,7 +7,7 @@ class AddFollowableCounterCacheToParticipatoryProcesses < ActiveRecord::Migratio
7
7
  reversible do |dir|
8
8
  dir.up do
9
9
  Decidim::ParticipatoryProcess.reset_column_information
10
- Decidim::ParticipatoryProcess.find_each do |record|
10
+ Decidim::ParticipatoryProcess.unscoped.find_each do |record|
11
11
  record.class.reset_counters(record.id, :follows)
12
12
  end
13
13
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddDeletedAtToDecidimParticipatoryProcesses < ActiveRecord::Migration[7.0]
4
+ def change
5
+ add_column :decidim_participatory_processes, :deleted_at, :datetime
6
+ add_index :decidim_participatory_processes, :deleted_at
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RemoveColumnShowMetricsFromParticipatoryProcesses < ActiveRecord::Migration[7.0]
4
+ def change
5
+ remove_column :decidim_participatory_processes, :show_metrics, :boolean
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RemoveColumnBannerImageFromParticipatoryProcesses < ActiveRecord::Migration[7.0]
4
+ def change
5
+ remove_column :decidim_participatory_processes, :banner_image, :string
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RemoveColumnShowStatisticsFromParticipatoryProcesses < ActiveRecord::Migration[7.0]
4
+ def change
5
+ remove_column :decidim_participatory_processes, :show_statistics, :string
6
+ end
7
+ end
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  "homepage_uri" => "https://decidim.org",
18
18
  "source_code_uri" => "https://github.com/decidim/decidim"
19
19
  }
20
- s.required_ruby_version = "~> 3.2.0"
20
+ s.required_ruby_version = "~> 3.3.0"
21
21
 
22
22
  s.name = "decidim-participatory_processes"
23
23
  s.summary = "Decidim participatory processes module"
@@ -6,12 +6,12 @@ module Decidim
6
6
  class ParticipatoryProcessGroupType < Decidim::Api::Types::BaseObject
7
7
  description "A participatory process group"
8
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
9
  field :description, Decidim::Core::TranslatedFieldType, "The description of this participatory process group", null: true
10
+ field :hero_image, GraphQL::Types::String, "The hero image for this participatory process group", null: true
11
+ field :id, GraphQL::Types::ID, "ID of this participatory process group", null: false
12
12
  field :participatory_processes, [Decidim::ParticipatoryProcesses::ParticipatoryProcessType, { null: true }],
13
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
14
+ field :title, Decidim::Core::TranslatedFieldType, "The title of this participatory process group", null: true
15
15
 
16
16
  def hero_image
17
17
  object.attached_uploader(:hero_image).url
@@ -6,18 +6,16 @@ module Decidim
6
6
  class ParticipatoryProcessStepType < Decidim::Api::Types::BaseObject
7
7
  description "A participatory process step"
8
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::DateTimeType, "This step's start date", null: true
16
- field :end_date, Decidim::Core::DateTimeType, "This step's end date", null: true
9
+ field :active, GraphQL::Types::Boolean, "If this step is the active one", null: true
17
10
  field :call_to_action_path, GraphQL::Types::String, "A call to action URL for this step", method: :cta_path, null: true
18
11
  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
12
+ field :description, Decidim::Core::TranslatedFieldType, "The description of this step", null: true
13
+ field :end_date, Decidim::Core::DateTimeType, "This step's end date", null: true
14
+ field :id, GraphQL::Types::ID, "The unique ID of this step.", null: false
15
+ field :participatory_process, ParticipatoryProcessType, description: "The participatory process in which this step belongs to.", null: false
20
16
  field :position, GraphQL::Types::Int, "Ordering position among all the steps", null: true
17
+ field :start_date, Decidim::Core::DateTimeType, "This step's start date", null: true
18
+ field :title, Decidim::Core::TranslatedFieldType, "The title of this step", null: false
21
19
  end
22
20
  end
23
21
  end
@@ -6,42 +6,37 @@ module Decidim
6
6
  class ParticipatoryProcessType < Decidim::Api::Types::BaseObject
7
7
  implements Decidim::Core::ParticipatorySpaceInterface
8
8
  implements Decidim::Core::ParticipatorySpaceResourceableInterface
9
- implements Decidim::Core::ScopableInterface
9
+ implements Decidim::Core::TaxonomizableInterface
10
+ implements Decidim::Core::TimestampsInterface
10
11
  implements Decidim::Core::AttachableInterface
11
12
  implements Decidim::Core::CategoriesContainerInterface
12
13
 
13
14
  description "A participatory process"
14
15
 
15
- field :id, GraphQL::Types::ID, "The internal ID for this participatory process", null: false
16
- field :slug, GraphQL::Types::String, null: false
17
- field :hashtag, GraphQL::Types::String, "The hashtag for this participatory process", null: true
18
- field :created_at, Decidim::Core::DateTimeType, "The time this page was created", null: false
19
- field :updated_at, Decidim::Core::DateTimeType, "The time this page was updated", null: false
20
- field :published_at, Decidim::Core::DateTimeType, "The time this page was published", null: false
21
- field :subtitle, Decidim::Core::TranslatedFieldType, "The subtitle of this participatory process.", null: true
16
+ field :announcement, Decidim::Core::TranslatedFieldType, "Highlighted announcement for this participatory process.", null: true
22
17
  field :description, Decidim::Core::TranslatedFieldType, "The description of this participatory process.", null: true
23
- field :short_description, Decidim::Core::TranslatedFieldType, "The short description of this participatory process.", null: true
24
- field :start_date, Decidim::Core::DateType, "This participatory process' start date.", null: true
18
+ field :developer_group, Decidim::Core::TranslatedFieldType, "The promoter group of this participatory process.", null: true
25
19
  field :end_date, Decidim::Core::DateType, "This participatory process' end date.", null: true
26
-
20
+ field :hashtag, GraphQL::Types::String, "The hashtag for this participatory process", null: true
27
21
  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
22
+ field :id, GraphQL::Types::ID, "The internal ID for this participatory process", null: false
31
23
  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
24
+ field :meta_scope, Decidim::Core::TranslatedFieldType, "The scope metadata of this participatory process.", null: true
25
+ field :participatory_process_group, Decidim::ParticipatoryProcesses::ParticipatoryProcessGroupType,
26
+ null: true,
27
+ description: "The participatory process group in which this process belong to"
33
28
  field :participatory_scope, Decidim::Core::TranslatedFieldType, "What is decided on this participatory process.", null: true
34
29
  field :participatory_structure, Decidim::Core::TranslatedFieldType, "How it is decided on this participatory process.", null: true
35
- field :scopes_enabled, GraphQL::Types::Boolean, "If this participatory process has scopes enabled", null: true
36
-
37
- field :announcement, Decidim::Core::TranslatedFieldType, "Highlighted announcement for this participatory process.", null: true
38
-
30
+ field :promoted, GraphQL::Types::Boolean, "If this participatory process is promoted (therefore in the homepage)", null: true
31
+ field :published_at, Decidim::Core::DateTimeType, "The time this page was published", null: false
39
32
  field :reference, GraphQL::Types::String, "Reference prefix for this participatory process", null: true
33
+ field :scopes_enabled, GraphQL::Types::Boolean, "If this participatory process has scopes enabled", null: true
34
+ field :short_description, Decidim::Core::TranslatedFieldType, "The short description of this participatory process.", null: true
35
+ field :slug, GraphQL::Types::String, "The slug of the Participatory Process", null: false
36
+ field :start_date, Decidim::Core::DateType, "This participatory process' start date.", null: true
40
37
  field :steps, [Decidim::ParticipatoryProcesses::ParticipatoryProcessStepType, { null: true }], "All the steps of this process.", null: false
41
-
42
- field :participatory_process_group, Decidim::ParticipatoryProcesses::ParticipatoryProcessGroupType,
43
- null: true,
44
- description: "The participatory process group in which this process belong to"
38
+ field :subtitle, Decidim::Core::TranslatedFieldType, "The subtitle of this participatory process.", null: true
39
+ field :target, Decidim::Core::TranslatedFieldType, "Who participates in this participatory process.", null: true
45
40
 
46
41
  def hero_image
47
42
  object.attached_uploader(:hero_image).url
@@ -4,14 +4,14 @@ module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This type represents a ParticipatoryProcessType.
6
6
  class ParticipatoryProcessTypeType < Decidim::Api::Types::BaseObject
7
+ implements Decidim::Core::TimestampsInterface
8
+
7
9
  description "A participatory process type"
8
10
 
9
11
  field :id, GraphQL::Types::ID, "Unique ID of this participatory process type", null: false
10
- field :title, Decidim::Core::TranslatedFieldType, "The title of this participatory process type", null: true
11
- field :created_at, Decidim::Core::DateTimeType, "The time this participatory process type was created", null: false
12
- field :updated_at, Decidim::Core::DateTimeType, "The time this participatory process type was updated", null: false
13
12
  field :processes, [Decidim::ParticipatoryProcesses::ParticipatoryProcessType, { null: true }],
14
13
  description: "Lists all the participatory processes belonging to this type", null: false
14
+ field :title, Decidim::Core::TranslatedFieldType, "The title of this participatory process type", null: true
15
15
  end
16
16
  end
17
17
  end
@@ -16,89 +16,115 @@ module Decidim
16
16
  paths["lib/tasks"] = nil
17
17
 
18
18
  routes do
19
- resources :participatory_process_groups do
20
- resource :landing_page, only: [:edit, :update], controller: "participatory_process_group_landing_page" do
21
- resources :content_blocks, only: [:edit, :update, :destroy, :create], controller: "participatory_process_group_landing_page_content_blocks"
22
- end
23
- end
24
- resources :participatory_process_types
25
- resources :participatory_processes, param: :slug, except: [:show, :destroy] do
26
- resource :publish, controller: "participatory_process_publications", only: [:create, :destroy]
27
- resources :copies, controller: "participatory_process_copies", only: [:new, :create]
28
-
29
- resources :steps, controller: "participatory_process_steps" do
30
- resource :activate, controller: "participatory_process_step_activations", only: [:create, :destroy]
31
- collection do
32
- post :ordering, to: "participatory_process_step_ordering#create"
19
+ constraints(->(request) { Decidim::Admin::OrganizationDashboardConstraint.new(request).matches? }) do
20
+ resources :participatory_process_groups do
21
+ resource :landing_page, only: [:edit, :update], controller: "participatory_process_group_landing_page" do
22
+ resources :content_blocks, only: [:edit, :update, :destroy, :create], controller: "participatory_process_group_landing_page_content_blocks"
33
23
  end
34
24
  end
35
- resources :user_roles, controller: "participatory_process_user_roles" do
25
+ resources :participatory_processes, param: :slug, except: [:show, :destroy] do
26
+ resource :publish, controller: "participatory_process_publications", only: [:create, :destroy]
27
+ resources :copies, controller: "participatory_process_copies", only: [:new, :create]
28
+
36
29
  member do
37
- post :resend_invitation, to: "participatory_process_user_roles#resend_invitation"
30
+ patch :soft_delete
31
+ patch :restore
38
32
  end
39
- end
40
- resources :attachment_collections, controller: "participatory_process_attachment_collections", except: [:show]
41
- resources :attachments, controller: "participatory_process_attachments", except: [:show]
42
-
43
- resource :export, controller: "participatory_process_exports", only: :create
44
33
 
45
- collection do
46
- resources :imports, controller: "participatory_process_imports", only: [:new, :create]
47
- end
48
- resource :landing_page, only: [:edit, :update], controller: "participatory_process_landing_page" do
49
- resources :content_blocks, only: [:edit, :update, :destroy, :create], controller: "participatory_process_landing_page_content_blocks"
50
- end
51
- end
34
+ resources :steps, controller: "participatory_process_steps" do
35
+ resource :activate, controller: "participatory_process_step_activations", only: [:create, :destroy]
36
+ collection do
37
+ post :ordering, to: "participatory_process_step_ordering#create"
38
+ end
39
+ end
40
+ resources :user_roles, controller: "participatory_process_user_roles" do
41
+ member do
42
+ post :resend_invitation, to: "participatory_process_user_roles#resend_invitation"
43
+ end
44
+ end
45
+ resources :attachment_collections, controller: "participatory_process_attachment_collections", except: [:show]
46
+ resources :attachments, controller: "participatory_process_attachments", except: [:show]
52
47
 
53
- scope "/participatory_processes/:participatory_process_slug" do
54
- resources :categories, except: [:show]
48
+ resource :export, controller: "participatory_process_exports", only: :create
55
49
 
56
- resources :components do
57
- resource :permissions, controller: "component_permissions"
58
- member do
59
- put :publish
60
- put :unpublish
61
- get :share
50
+ collection do
51
+ get :manage_trash, to: "participatory_processes#manage_trash"
52
+ resources :imports, controller: "participatory_process_imports", only: [:new, :create]
62
53
  end
63
- resources :exports, only: :create
64
- resources :imports, only: [:new, :create] do
65
- get :example, on: :collection
54
+ resource :landing_page, only: [:edit, :update], controller: "participatory_process_landing_page" do
55
+ resources :content_blocks, only: [:edit, :update, :destroy, :create], controller: "participatory_process_landing_page_content_blocks"
66
56
  end
67
- resources :reminders, only: [:new, :create]
68
57
  end
69
58
 
70
- resources :moderations do
71
- member do
72
- put :unreport
73
- put :hide
74
- put :unhide
59
+ scope "/participatory_processes/:participatory_process_slug" do
60
+ resources :components do
61
+ collection do
62
+ put :reorder
63
+ end
64
+ resource :permissions, controller: "component_permissions"
65
+ member do
66
+ put :publish
67
+ put :unpublish
68
+ get :share
69
+ patch :soft_delete
70
+ patch :restore
71
+ end
72
+ collection do
73
+ get :manage_trash, to: "components#manage_trash"
74
+ put :hide
75
+ end
76
+ resources :component_share_tokens, except: [:show], path: "share_tokens", as: "share_tokens"
77
+ resources :exports, only: :create
78
+ resources :imports, only: [:new, :create] do
79
+ get :example, on: :collection
80
+ end
81
+ resources :reminders, only: [:new, :create]
75
82
  end
76
- resources :reports, controller: "moderations/reports", only: [:index, :show]
77
- end
78
83
 
79
- resources :participatory_space_private_users, controller: "participatory_space_private_users" do
80
- member do
81
- post :resend_invitation, to: "participatory_space_private_users#resend_invitation"
84
+ resources :moderations do
85
+ member do
86
+ put :unreport
87
+ put :hide
88
+ put :unhide
89
+ end
90
+ patch :bulk_action, on: :collection
91
+ resources :reports, controller: "moderations/reports", only: [:index, :show]
82
92
  end
83
- collection do
84
- resource :participatory_space_private_users_csv_imports, only: [:new, :create], path: "csv_import" do
85
- delete :destroy_all
93
+
94
+ resources :participatory_space_private_users, controller: "participatory_space_private_users" do
95
+ member do
96
+ post :resend_invitation, to: "participatory_space_private_users#resend_invitation"
97
+ end
98
+ collection do
99
+ resource :participatory_space_private_users_csv_imports, only: [:new, :create], path: "csv_import" do
100
+ delete :destroy_all
101
+ end
102
+ post :publish_all
103
+ post :unpublish_all
86
104
  end
87
105
  end
106
+
107
+ resources :participatory_process_share_tokens, except: [:show], path: "share_tokens"
88
108
  end
89
- end
90
109
 
91
- scope "/participatory_processes/:participatory_process_slug/components/:component_id/manage" do
92
- Decidim.component_manifests.each do |manifest|
93
- next unless manifest.admin_engine
110
+ scope "/participatory_processes/:participatory_process_slug/components/:component_id/manage" do
111
+ Decidim.component_manifests.each do |manifest|
112
+ next unless manifest.admin_engine
94
113
 
95
- constraints CurrentComponent.new(manifest) do
96
- mount manifest.admin_engine, at: "/", as: "decidim_admin_participatory_process_#{manifest.name}"
114
+ constraints CurrentComponent.new(manifest) do
115
+ mount manifest.admin_engine, at: "/", as: "decidim_admin_participatory_process_#{manifest.name}"
116
+ end
97
117
  end
98
118
  end
99
119
  end
100
120
  end
101
121
 
122
+ initializer "decidim_participatory_processes_admin.mount_routes" do
123
+ Decidim::Core::Engine.routes do
124
+ mount Decidim::ParticipatoryProcesses::AdminEngine, at: "/admin", as: "decidim_admin_participatory_processes"
125
+ end
126
+ end
127
+
102
128
  initializer "decidim_participatory_processes_admin.menu" do
103
129
  Decidim::ParticipatoryProcesses::Menu.register_admin_menu_modules!
104
130
  Decidim::ParticipatoryProcesses::Menu.register_admin_participatory_processes_menu!
@@ -166,6 +166,7 @@ module Decidim
166
166
  end
167
167
  end
168
168
 
169
+ register_highlighted_debates
169
170
  register_highlighted_meetings
170
171
  register_highlighted_posts
171
172
  register_highlighted_proposals
@@ -173,6 +174,16 @@ module Decidim
173
174
  register_related_assemblies
174
175
  end
175
176
 
177
+ def self.register_highlighted_debates
178
+ return unless Decidim.module_installed?(:debates)
179
+
180
+ Decidim.content_blocks.register(:participatory_process_homepage, :highlighted_debates) do |content_block|
181
+ content_block.cell = "decidim/debates/content_blocks/highlighted_debates"
182
+ content_block.public_name_key = "decidim.debates.content_blocks.highlighted_debates.name"
183
+ content_block.component_manifest_name = "debates"
184
+ end
185
+ end
186
+
176
187
  def self.register_highlighted_meetings
177
188
  return unless Decidim.module_installed?(:meetings)
178
189
 
@@ -33,6 +33,7 @@ module Decidim
33
33
  resources :participatory_process_groups, only: :show, path: "processes_groups"
34
34
  resources :participatory_processes, only: [:index, :show], param: :slug, path: "processes" do
35
35
  get "all-metrics", on: :member
36
+ resources :participatory_space_private_users, only: :index, path: "members"
36
37
  end
37
38
 
38
39
  scope "/processes/:participatory_process_slug/f/:component_id" do
@@ -46,6 +47,12 @@ module Decidim
46
47
  end
47
48
  end
48
49
 
50
+ initializer "decidim_participatory_processes.mount_routes" do
51
+ Decidim::Core::Engine.routes do
52
+ mount Decidim::ParticipatoryProcesses::Engine, at: "/", as: "decidim_participatory_processes"
53
+ end
54
+ end
55
+
49
56
  initializer "decidim_participatory_processes.register_icons" do
50
57
  Decidim.icons.register(name: "Decidim::ParticipatoryProcess", icon: "treasure-map-line", description: "Participatory Process", category: "activity",
51
58
  engine: :participatory_process)
@@ -44,8 +44,7 @@ module Decidim
44
44
  icon_name: "treasure-map-line",
45
45
  position: 2,
46
46
  active: is_active_link?(decidim_admin_participatory_processes.participatory_processes_path, :inclusive) ||
47
- is_active_link?(decidim_admin_participatory_processes.participatory_process_groups_path, :inclusive) ||
48
- is_active_link?(decidim_admin_participatory_processes.participatory_process_types_path),
47
+ is_active_link?(decidim_admin_participatory_processes.participatory_process_groups_path, :inclusive),
49
48
  if: allowed_to?(:enter, :space_area, space_name: :processes) || allowed_to?(:enter, :space_area, space_name: :process_groups)
50
49
  end
51
50
  end
@@ -100,6 +99,7 @@ module Decidim
100
99
  active: is_active_link?(manage_component_path(component)) ||
101
100
  is_active_link?(decidim_admin_participatory_processes.edit_component_path(current_participatory_space, component)) ||
102
101
  is_active_link?(decidim_admin_participatory_processes.edit_component_permissions_path(current_participatory_space, component)) ||
102
+ is_active_link?(decidim_admin_participatory_processes.component_share_tokens_path(current_participatory_space, component)) ||
103
103
  participatory_space_active_link?(component),
104
104
  if: component.manifest.admin_engine && user_role_config.component_is_accessible?(component.manifest_name)
105
105
  end
@@ -138,13 +138,6 @@ module Decidim
138
138
  if: allowed_to?(:read, :component),
139
139
  submenu: { target_menu: :admin_participatory_process_components_menu }
140
140
 
141
- menu.add_item :categories,
142
- I18n.t("categories", scope: "decidim.admin.menu.participatory_processes_submenu"),
143
- decidim_admin_participatory_processes.categories_path(current_participatory_space),
144
- active: is_active_link?(decidim_admin_participatory_processes.categories_path(current_participatory_space)),
145
- icon_name: "price-tag-3-line",
146
- if: allowed_to?(:read, :category)
147
-
148
141
  menu.add_item :attachments,
149
142
  I18n.t("attachments", scope: "decidim.admin.menu.participatory_processes_submenu"),
150
143
  decidim_admin_participatory_processes.participatory_process_attachments_path(current_participatory_space),
@@ -173,6 +166,13 @@ module Decidim
173
166
  active: is_active_link?(decidim_admin_participatory_processes.moderations_path(current_participatory_space)),
174
167
  icon_name: "flag-line",
175
168
  if: allowed_to?(:read, :moderation, current_participatory_space:)
169
+
170
+ menu.add_item :participatory_process_share_tokens,
171
+ I18n.t("menu.share_tokens", scope: "decidim.admin"),
172
+ decidim_admin_participatory_processes.participatory_process_share_tokens_path(current_participatory_space),
173
+ active: is_active_link?(decidim_admin_participatory_processes.participatory_process_share_tokens_path(current_participatory_space)),
174
+ icon_name: "share-line",
175
+ if: allowed_to?(:read, :share_tokens, current_participatory_space:)
176
176
  end
177
177
  end
178
178
 
@@ -212,14 +212,6 @@ module Decidim
212
212
  icon_name: "upload-line",
213
213
  if: allowed_to?(:import, :process),
214
214
  active: is_active_link?(decidim_admin_participatory_processes.new_import_path)
215
-
216
- menu.add_item :participatory_process_types,
217
- I18n.t("menu.participatory_process_types", scope: "decidim.admin"),
218
- decidim_admin_participatory_processes.participatory_process_types_path,
219
- position: 3,
220
- icon_name: "price-tag-3-line",
221
- if: allowed_to?(:manage, :participatory_process_type),
222
- active: is_active_link?(decidim_admin_participatory_processes.participatory_process_types_path)
223
215
  end
224
216
  end
225
217
  end
@@ -45,11 +45,14 @@ Decidim.register_participatory_space(:participatory_processes) do |participatory
45
45
  end
46
46
 
47
47
  participatory_space.exports :participatory_processes do |export|
48
- export.collection do |participatory_process|
49
- Decidim::ParticipatoryProcess.where(id: participatory_process.id)
48
+ export.collection do
49
+ Decidim::ParticipatoryProcess.public_spaces
50
50
  end
51
51
 
52
+ export.include_in_open_data = true
53
+
52
54
  export.serializer Decidim::ParticipatoryProcesses::ParticipatoryProcessSerializer
55
+ export.open_data_serializer Decidim::ParticipatoryProcesses::OpenDataParticipatoryProcessSerializer
53
56
  end
54
57
 
55
58
  participatory_space.register_on_destroy_account do |user|
@@ -18,13 +18,17 @@ module Decidim
18
18
  Decidim::ContentBlocksCreator.new(process_group).create_default!
19
19
  end
20
20
 
21
- process_types = []
21
+ taxonomy = create_taxonomy!(name: "Process Types", parent: nil)
22
22
  2.times do
23
- process_types << create_process_type!
23
+ create_taxonomy!(name: ::Faker::Lorem.word, parent: taxonomy)
24
24
  end
25
+ # filters for processes only
26
+ create_taxonomy_filter!(root_taxonomy: taxonomy,
27
+ taxonomies: taxonomy.all_children,
28
+ participatory_space_manifests: [:participatory_processes])
25
29
 
26
30
  2.times do |_n|
27
- process = create_process!(process_group: process_groups.sample, process_type: process_types.sample)
31
+ process = create_process!(process_group: process_groups.sample)
28
32
 
29
33
  create_follow!(Decidim::User.where(organization:, admin: true).first, process)
30
34
  create_follow!(Decidim::User.where(organization:, admin: false).first, process)
@@ -37,10 +41,6 @@ module Decidim
37
41
 
38
42
  create_attachments!(attached_to: process)
39
43
 
40
- 2.times do
41
- create_category!(participatory_space: process)
42
- end
43
-
44
44
  seed_components_manifests!(participatory_space: process)
45
45
  end
46
46
  end
@@ -74,14 +74,7 @@ module Decidim
74
74
  )
75
75
  end
76
76
 
77
- def create_process_type!
78
- Decidim::ParticipatoryProcessType.create!(
79
- title: Decidim::Faker::Localized.word,
80
- organization:
81
- )
82
- end
83
-
84
- def create_process!(process_group: nil, process_type: nil)
77
+ def create_process!(process_group: nil)
85
78
  n = rand(2)
86
79
  params = {
87
80
  title: Decidim::Faker::Localized.sentence(word_count: 5),
@@ -107,7 +100,6 @@ module Decidim
107
100
  start_date: Date.current,
108
101
  end_date: 2.months.from_now,
109
102
  participatory_process_group: process_group,
110
- participatory_process_type: process_type,
111
103
  scope: n.positive? ? nil : Decidim::Scope.all.sample
112
104
  }
113
105