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.
- checksums.yaml +4 -4
- data/app/cells/decidim/participatory_process_groups/content_block_cell.rb +17 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters.erb +22 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters_small_view.erb +18 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/participatory_space_filters.erb +6 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/show.erb +7 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/title_filter_order.erb +8 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes_cell.rb +65 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/html/show.erb +3 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/html_cell.rb +13 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/metadata/show.erb +28 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/metadata_cell.rb +15 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/stats/show.erb +13 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/stats_cell.rb +17 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/title/show.erb +43 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/title_cell.rb +56 -0
- data/app/cells/decidim/participatory_process_groups/process_filters_cell.rb +78 -0
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/show.erb +2 -16
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/single_process.erb +32 -28
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_cell.rb +33 -10
- data/app/cells/decidim/participatory_processes/filtered_participatory_processes/show.erb +3 -0
- data/app/cells/decidim/participatory_processes/filtered_participatory_processes_cell.rb +56 -0
- data/app/cells/decidim/participatory_processes/process_cell.rb +6 -1
- data/app/cells/decidim/participatory_processes/process_filters_cell.rb +1 -1
- data/app/cells/decidim/participatory_processes/process_group_cell.rb +6 -1
- data/app/cells/decidim/participatory_processes/process_group_m_cell.rb +3 -1
- data/app/cells/decidim/participatory_processes/process_group_s/image.erb +1 -0
- data/app/cells/decidim/participatory_processes/process_group_s/show.erb +8 -0
- data/app/cells/decidim/participatory_processes/process_group_s_cell.rb +23 -0
- data/app/cells/decidim/participatory_processes/process_s/image.erb +1 -0
- data/app/cells/decidim/participatory_processes/process_s/show.erb +14 -0
- data/app/cells/decidim/participatory_processes/process_s_cell.rb +35 -0
- data/app/cells/decidim/participatory_processes/statistic/show.erb +3 -3
- data/app/cells/decidim/participatory_processes/statistics/show.erb +1 -1
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +1 -0
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_admin.rb +7 -75
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb +11 -2
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +1 -0
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb +11 -2
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_step.rb +1 -0
- data/app/controllers/decidim/participatory_processes/admin/imports_controller.rb +14 -0
- data/app/controllers/decidim/participatory_processes/admin/moderations/reports_controller.rb +18 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_content_blocks_controller.rb +48 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_controller.rb +53 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_groups_controller.rb +3 -1
- data/app/controllers/decidim/participatory_processes/participatory_process_groups_controller.rb +1 -2
- data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +14 -1
- data/app/events/decidim/participatory_process_role_assigned_event.rb +1 -1
- data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +1 -0
- data/app/forms/decidim/participatory_processes/admin/participatory_process_group_form.rb +34 -2
- data/app/forms/decidim/participatory_processes/admin/participatory_process_step_form.rb +1 -1
- data/app/forms/decidim/participatory_processes/admin/participatory_process_user_role_form.rb +0 -5
- data/app/helpers/decidim/participatory_processes/admin/participatory_processes_menu_helper.rb +23 -0
- data/app/helpers/decidim/participatory_processes/admin/process_groups_for_select_helper.rb +1 -1
- data/app/helpers/decidim/participatory_processes/application_helper.rb +0 -12
- data/app/helpers/decidim/participatory_processes/participatory_process_helper.rb +35 -0
- data/app/models/decidim/participatory_process_group.rb +9 -1
- data/app/permissions/decidim/participatory_processes/permissions.rb +1 -0
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_group_presenter.rb +12 -4
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +2 -2
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_user_role_presenter.rb +2 -2
- data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +67 -0
- data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +2 -2
- data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +3 -3
- data/app/queries/decidim/participatory_processes/group_participatory_processes.rb +16 -0
- data/app/queries/decidim/participatory_processes/group_published_participatory_processes.rb +21 -0
- data/app/queries/decidim/participatory_processes/organization_participatory_processes.rb +1 -1
- data/app/queries/decidim/participatory_processes/organization_published_participatory_processes.rb +1 -1
- data/app/queries/decidim/participatory_processes/promoted_participatory_process_groups.rb +12 -0
- data/app/queries/decidim/participatory_processes/stats_followers_count.rb +18 -4
- data/app/queries/decidim/participatory_processes/stats_participants_count.rb +18 -4
- data/app/queries/decidim/participatory_processes/visible_participatory_process_groups.rb +6 -2
- data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +1 -1
- data/app/serializers/decidim/participatory_processes/participatory_process_serializer.rb +1 -1
- data/app/services/decidim/participatory_processes/participatory_process_search.rb +2 -1
- data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +2 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb +68 -13
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/edit.html.erb +7 -14
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb +12 -3
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/new.html.erb +2 -8
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/show.html.erb +10 -2
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/edit.html.erb +1 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/index.html.erb +6 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/edit.html.erb +2 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/index.html.erb +8 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/new.html.erb +2 -0
- data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +4 -0
- data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +14 -3
- data/app/views/decidim/participatory_processes/admin/participatory_processes/new.html.erb +2 -0
- data/app/views/decidim/participatory_processes/admin/shared/_secondary_nav.html.erb +2 -16
- data/app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb +18 -8
- data/app/views/decidim/participatory_processes/participatory_process_groups/show.js.erb +12 -0
- data/app/views/decidim/participatory_processes/participatory_processes/_participatory_process_group.html.erb +4 -0
- data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process_group.html.erb +31 -0
- data/app/views/decidim/participatory_processes/participatory_processes/index.html.erb +4 -2
- data/app/views/decidim/participatory_processes/participatory_processes/show.html.erb +4 -4
- data/app/views/layouts/decidim/admin/participatory_process.html.erb +8 -1
- data/app/views/layouts/decidim/admin/participatory_process_group.html.erb +17 -0
- data/config/locales/ar.yml +0 -10
- data/config/locales/ca.yml +6 -9
- data/config/locales/cs.yml +65 -18
- data/config/locales/de.yml +85 -35
- data/config/locales/el.yml +0 -6
- data/config/locales/en.yml +52 -5
- data/config/locales/es-MX.yml +0 -9
- data/config/locales/es-PY.yml +0 -9
- data/config/locales/es.yml +0 -9
- data/config/locales/eu.yml +0 -6
- data/config/locales/fi-plain.yml +56 -6
- data/config/locales/fi.yml +59 -9
- data/config/locales/fr-CA.yml +52 -5
- data/config/locales/fr.yml +52 -5
- data/config/locales/gl.yml +0 -6
- data/config/locales/hu.yml +0 -6
- data/config/locales/id-ID.yml +0 -5
- data/config/locales/is-IS.yml +0 -3
- data/config/locales/it.yml +5 -6
- data/config/locales/ja.yml +0 -5
- data/config/locales/lv.yml +0 -7
- data/config/locales/nl.yml +51 -6
- data/config/locales/no.yml +0 -6
- data/config/locales/pl.yml +27 -7
- data/config/locales/pt-BR.yml +0 -6
- data/config/locales/pt.yml +0 -6
- data/config/locales/ro-RO.yml +0 -7
- data/config/locales/ru.yml +0 -8
- data/config/locales/si-LK.yml +1 -0
- data/config/locales/sk.yml +0 -8
- data/config/locales/sv.yml +13 -12
- data/config/locales/sw-KE.yml +1 -0
- data/config/locales/tr-TR.yml +104 -6
- data/config/locales/uk.yml +0 -8
- data/config/locales/zh-CN.yml +0 -5
- data/db/migrate/20170220110740_remove_steps_short_description.rb +1 -1
- data/db/migrate/20201007215105_add_hashtag_to_participatory_process_groups.rb +7 -0
- data/db/migrate/20201008154315_add_metadata_columns_to_participatory_process_groups.rb +13 -0
- data/db/migrate/20201013105520_rename_name_column_to_title_in_decidim_participatory_process_groups.rb +39 -0
- data/db/migrate/20201030133444_add_promoted_flag_to_decidim_participatory_process_groups.rb +7 -0
- data/db/migrate/20210204154593_add_weight_field_to_participatory_processes.rb +7 -0
- data/lib/decidim/api/participatory_process_group_type.rb +17 -0
- data/{app/types/decidim/participatory_processes → lib/decidim/api}/participatory_process_input_filter.rb +0 -0
- data/{app/types/decidim/participatory_processes → lib/decidim/api}/participatory_process_input_sort.rb +2 -2
- data/lib/decidim/api/participatory_process_step_type.rb +23 -0
- data/lib/decidim/api/participatory_process_type.rb +50 -0
- data/lib/decidim/participatory_processes.rb +2 -6
- data/lib/decidim/participatory_processes/admin_engine.rb +49 -1
- data/lib/decidim/participatory_processes/api.rb +11 -0
- data/lib/decidim/participatory_processes/engine.rb +90 -8
- data/lib/decidim/participatory_processes/participatory_space.rb +47 -24
- data/lib/decidim/participatory_processes/query_extensions.rb +18 -20
- data/lib/decidim/participatory_processes/test/factories.rb +15 -2
- data/lib/decidim/participatory_processes/version.rb +1 -1
- metadata +65 -22
- data/app/functions/decidim/participatory_processes/participatory_process_finder.rb +0 -10
- data/app/functions/decidim/participatory_processes/participatory_process_list.rb +0 -11
- data/app/types/decidim/participatory_processes/participatory_process_group_type.rb +0 -20
- data/app/types/decidim/participatory_processes/participatory_process_step_type.rb +0 -28
- data/app/types/decidim/participatory_processes/participatory_process_type.rb +0 -54
data/config/locales/uk.yml
CHANGED
@@ -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:
|
data/config/locales/zh-CN.yml
CHANGED
@@ -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.
|
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,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,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
|
File without changes
|
@@ -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.
|
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{
|
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 |
|
88
|
-
Decidim::ParticipatoryProcesses::StatsFollowersCount.for(
|
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 |
|
92
|
-
Decidim::ParticipatoryProcesses::StatsParticipantsCount.for(
|
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
|
|