decidim-participatory_processes 0.30.3 → 0.31.0.rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/cells/decidim/participatory_process_groups/content_blocks/main_data/content.erb +1 -1
- data/app/cells/decidim/participatory_process_groups/content_blocks/main_data_cell.rb +1 -15
- data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats/show.erb +74 -0
- data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_cell.rb +29 -0
- data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/citizen_influence.erb +32 -0
- data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/inclusiveness.erb +69 -0
- data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/informativeness.erb +29 -0
- data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/show.erb +10 -0
- data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form_cell.rb +81 -0
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_settings_form/show.erb +3 -1
- data/app/cells/decidim/participatory_processes/content_blocks/main_data_cell.rb +10 -2
- data/app/cells/decidim/participatory_processes/indicator/show.erb +11 -0
- data/app/cells/decidim/participatory_processes/indicator_cell.rb +25 -0
- data/app/cells/decidim/participatory_processes/process_dropdown_metadata/metadata.erb +0 -7
- data/app/cells/decidim/participatory_processes/process_filters_cell.rb +2 -0
- data/app/cells/decidim/participatory_processes/process_step/show.erb +1 -1
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/{copy_participatory_process.rb → duplicate_participatory_process.rb} +25 -26
- data/app/commands/decidim/participatory_processes/admin/import_participatory_process.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +16 -4
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb +1 -1
- data/app/commands/decidim/participatory_processes/create_democratic_quality_indicators_page.rb +40 -0
- data/app/controllers/decidim/participatory_processes/admin/{participatory_process_copies_controller.rb → participatory_process_duplicates_controller.rb} +7 -7
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_controller.rb +4 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_groups_controller.rb +3 -3
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_imports_controller.rb +1 -1
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_landing_page_controller.rb +4 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_steps_controller.rb +2 -2
- data/app/controllers/decidim/participatory_processes/admin/participatory_processes_controller.rb +3 -3
- data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +0 -9
- data/app/forms/decidim/participatory_processes/admin/{participatory_process_copy_form.rb → participatory_process_duplicate_form.rb} +5 -5
- data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +2 -1
- data/app/forms/decidim/participatory_processes/admin/participatory_process_group_form.rb +0 -1
- data/app/helpers/decidim/participatory_processes/application_helper.rb +14 -0
- data/app/helpers/decidim/participatory_processes/participatory_process_helper.rb +1 -1
- data/app/models/decidim/participatory_process.rb +4 -4
- data/app/models/decidim/participatory_process_group.rb +9 -0
- data/app/permissions/decidim/participatory_processes/permissions.rb +4 -4
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_group_presenter.rb +0 -1
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +0 -1
- data/app/presenters/decidim/participatory_processes/participatory_process_democratic_quality_stats_presenter.rb +312 -0
- data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +1 -11
- data/app/presenters/decidim/participatory_processes/participatory_process_presenter.rb +35 -1
- data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +1 -3
- data/app/queries/decidim/participatory_processes/participatory_processes_stats_followers_count.rb +31 -0
- data/app/queries/decidim/participatory_processes/participatory_processes_stats_participants_count.rb +27 -0
- data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +0 -1
- data/app/views/decidim/participatory_processes/admin/{participatory_process_copies → participatory_process_duplicates}/_form.html.erb +5 -5
- data/app/views/decidim/participatory_processes/admin/participatory_process_duplicates/new.html.erb +19 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb +3 -7
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb +31 -15
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/_form.html.erb +1 -1
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/index.html.erb +39 -21
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/index.html.erb +42 -24
- data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +10 -14
- data/app/views/decidim/participatory_processes/admin/participatory_processes/_process_row.html.erb +125 -53
- data/app/views/decidim/participatory_processes/admin/participatory_processes/edit.html.erb +0 -8
- data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +2 -2
- data/app/views/decidim/participatory_processes/admin/participatory_processes/manage_trash.html.erb +2 -1
- data/app/views/layouts/decidim/admin/_manage_processes.html.erb +1 -1
- data/app/views/layouts/decidim/admin/participatory_process_group.html.erb +1 -1
- data/config/assets.rb +2 -2
- data/config/locales/ar.yml +0 -13
- data/config/locales/bg.yml +0 -24
- data/config/locales/bs-BA.yml +0 -4
- data/config/locales/ca-IT.yml +320 -26
- data/config/locales/ca.yml +320 -26
- data/config/locales/cs.yml +116 -25
- data/config/locales/de.yml +124 -26
- data/config/locales/el.yml +0 -21
- data/config/locales/en.yml +304 -25
- data/config/locales/es-MX.yml +320 -26
- data/config/locales/es-PY.yml +320 -26
- data/config/locales/es.yml +320 -26
- data/config/locales/eu.yml +305 -26
- data/config/locales/fi-plain.yml +304 -25
- data/config/locales/fi.yml +304 -25
- data/config/locales/fr-CA.yml +87 -25
- data/config/locales/fr.yml +87 -25
- data/config/locales/ga-IE.yml +0 -7
- data/config/locales/gl.yml +0 -19
- data/config/locales/hu.yml +0 -21
- data/config/locales/id-ID.yml +0 -13
- data/config/locales/is-IS.yml +0 -11
- data/config/locales/it.yml +0 -20
- data/config/locales/ja.yml +305 -26
- data/config/locales/lb.yml +0 -20
- data/config/locales/lt.yml +0 -21
- data/config/locales/lv.yml +0 -14
- data/config/locales/nl.yml +0 -20
- data/config/locales/no.yml +0 -21
- data/config/locales/pl.yml +16 -24
- data/config/locales/pt-BR.yml +0 -23
- data/config/locales/pt.yml +0 -20
- data/config/locales/ro-RO.yml +2 -21
- data/config/locales/ru.yml +0 -11
- data/config/locales/sk.yml +0 -14
- data/config/locales/sr-CS.yml +0 -4
- data/config/locales/sv.yml +87 -25
- data/config/locales/tr-TR.yml +0 -20
- data/config/locales/uk.yml +0 -11
- data/config/locales/zh-CN.yml +0 -17
- data/config/locales/zh-TW.yml +0 -21
- data/db/migrate/20250403110052_add_democratic_quality_static_page.rb +17 -0
- data/db/migrate/20250605114136_remove_hashtag_from_participatory_processes.rb +7 -0
- data/db/migrate/20250605114415_remove_hashtag_from_participatory_processes_groups.rb +7 -0
- data/decidim-participatory_processes.gemspec +3 -0
- data/lib/decidim/api/participatory_process_group_type.rb +9 -0
- data/lib/decidim/api/participatory_process_input_filter.rb +0 -1
- data/lib/decidim/api/participatory_process_step_type.rb +2 -0
- data/lib/decidim/api/participatory_process_type.rb +17 -11
- data/lib/decidim/participatory_processes/admin_engine.rb +1 -1
- data/lib/decidim/participatory_processes/content_blocks/registry_manager.rb +25 -5
- data/lib/decidim/participatory_processes/engine.rb +30 -25
- data/lib/decidim/participatory_processes/participatory_space.rb +1 -4
- data/lib/decidim/participatory_processes/seeds.rb +5 -5
- data/lib/decidim/participatory_processes/test/factories.rb +2 -3
- data/lib/decidim/participatory_processes/version.rb +1 -1
- metadata +72 -21
- data/app/cells/decidim/participatory_processes/content_blocks/metrics_cell.rb +0 -25
- data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +0 -21
- data/app/queries/decidim/participatory_processes/metrics/participatory_process_followers_metric_measure.rb +0 -31
- data/app/queries/decidim/participatory_processes/metrics/participatory_processes_metric_manage.rb +0 -27
- data/app/queries/decidim/participatory_processes/stats_followers_count.rb +0 -60
- data/app/queries/decidim/participatory_processes/stats_participants_count.rb +0 -136
- data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +0 -19
- data/app/views/decidim/participatory_processes/participatory_processes/all_metrics.html.erb +0 -25
data/config/locales/zh-TW.yml
CHANGED
|
@@ -5,16 +5,12 @@ zh-TW:
|
|
|
5
5
|
participatory_process:
|
|
6
6
|
announcement: 公告
|
|
7
7
|
area_id: 區域
|
|
8
|
-
copy_categories: 複製類別
|
|
9
|
-
copy_components: 複製組件
|
|
10
|
-
copy_steps: 複製步驟
|
|
11
8
|
decidim_area_id: 區域
|
|
12
9
|
description: 說明
|
|
13
10
|
developer_group: 促銷團隊
|
|
14
11
|
document: 文件
|
|
15
12
|
domain: 網域
|
|
16
13
|
end_date: 結束日期
|
|
17
|
-
hashtag: 主題標籤
|
|
18
14
|
hero_image: 首頁圖片
|
|
19
15
|
import_attachments: 匯入附件
|
|
20
16
|
import_categories: 匯入類別
|
|
@@ -40,7 +36,6 @@ zh-TW:
|
|
|
40
36
|
description: 說明
|
|
41
37
|
developer_group: 促銷團隊
|
|
42
38
|
group_url: 網站
|
|
43
|
-
hashtag: 主題標籤
|
|
44
39
|
hero_image: 圖片
|
|
45
40
|
local_area: 組織區域
|
|
46
41
|
meta_scope: 元數據範圍
|
|
@@ -82,13 +77,11 @@ zh-TW:
|
|
|
82
77
|
admin:
|
|
83
78
|
actions:
|
|
84
79
|
activate: 啟動
|
|
85
|
-
configure: 配置
|
|
86
80
|
confirm_destroy: 確認刪除
|
|
87
81
|
destroy: 刪除
|
|
88
82
|
duplicate: 重複
|
|
89
83
|
edit: 編輯
|
|
90
84
|
import_process: 匯入
|
|
91
|
-
moderate: 管理
|
|
92
85
|
new_process: 新的程序
|
|
93
86
|
new_process_group: 新的程序群組
|
|
94
87
|
new_process_step: 新階段
|
|
@@ -101,14 +94,12 @@ zh-TW:
|
|
|
101
94
|
participatory_process_groups: 程序群組
|
|
102
95
|
participatory_process_groups_submenu:
|
|
103
96
|
info: 資訊
|
|
104
|
-
landing_page: 登陸頁面
|
|
105
97
|
participatory_processes: 程序
|
|
106
98
|
participatory_processes_submenu:
|
|
107
99
|
attachment_collections: 資料夾
|
|
108
100
|
attachment_files: 檔案
|
|
109
101
|
attachments: 附件
|
|
110
102
|
components: 组件
|
|
111
|
-
landing_page: 登陸頁面
|
|
112
103
|
moderations: 版主
|
|
113
104
|
process_admins: 程序管理員
|
|
114
105
|
steps: 分類
|
|
@@ -140,14 +131,10 @@ zh-TW:
|
|
|
140
131
|
admin: 管理員
|
|
141
132
|
collaborator: 合作者
|
|
142
133
|
moderator: 版主
|
|
143
|
-
valuator: 評估者
|
|
144
134
|
user:
|
|
145
135
|
fields:
|
|
146
136
|
invitation_accepted_at: 邀請已接受時間
|
|
147
137
|
invitation_sent_at: 邀請已發送時間
|
|
148
|
-
participatory_process_copies:
|
|
149
|
-
new:
|
|
150
|
-
copy: 複製
|
|
151
138
|
participatory_process_groups:
|
|
152
139
|
destroy:
|
|
153
140
|
success: 參與式流程組成功刪除。
|
|
@@ -301,11 +288,6 @@ zh-TW:
|
|
|
301
288
|
not_found: '未在資料庫(ID:%{id}) 中找到此流程類型'
|
|
302
289
|
menu:
|
|
303
290
|
processes: 程序
|
|
304
|
-
metrics:
|
|
305
|
-
participatory_processes:
|
|
306
|
-
description: 此組織中的參與式過程數量
|
|
307
|
-
object: 參與程序
|
|
308
|
-
title: 參與程序
|
|
309
291
|
participatory_process_groups:
|
|
310
292
|
content_blocks:
|
|
311
293
|
html_1:
|
|
@@ -359,9 +341,6 @@ zh-TW:
|
|
|
359
341
|
name: 精選程序
|
|
360
342
|
index:
|
|
361
343
|
title: 參與程序
|
|
362
|
-
participatory_process_steps:
|
|
363
|
-
index:
|
|
364
|
-
back_to_process: 返回程序頁
|
|
365
344
|
participatory_processes:
|
|
366
345
|
filters:
|
|
367
346
|
all_types: 所有類型
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class AddDemocraticQualityStaticPage < ActiveRecord::Migration[7.0]
|
|
4
|
+
class Organization < ApplicationRecord
|
|
5
|
+
self.table_name = :decidim_organizations
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class StaticPage < ApplicationRecord
|
|
9
|
+
self.table_name = :decidim_static_pages
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def up
|
|
13
|
+
Organization.find_each do |organization|
|
|
14
|
+
Decidim::ParticipatoryProcesses::CreateDemocraticQualityIndicatorsPage.call(organization.id)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -32,7 +32,10 @@ Gem::Specification.new do |s|
|
|
|
32
32
|
|
|
33
33
|
s.add_dependency "decidim-core", Decidim::ParticipatoryProcesses.version
|
|
34
34
|
|
|
35
|
+
s.add_development_dependency "decidim-accountability", Decidim::ParticipatoryProcesses.version
|
|
35
36
|
s.add_development_dependency "decidim-admin", Decidim::ParticipatoryProcesses.version
|
|
37
|
+
s.add_development_dependency "decidim-budgets", Decidim::ParticipatoryProcesses.version
|
|
36
38
|
s.add_development_dependency "decidim-dev", Decidim::ParticipatoryProcesses.version
|
|
37
39
|
s.add_development_dependency "decidim-meetings", Decidim::ParticipatoryProcesses.version
|
|
40
|
+
s.add_development_dependency "decidim-proposals", Decidim::ParticipatoryProcesses.version
|
|
38
41
|
end
|
|
@@ -6,11 +6,20 @@ module Decidim
|
|
|
6
6
|
class ParticipatoryProcessGroupType < Decidim::Api::Types::BaseObject
|
|
7
7
|
description "A participatory process group"
|
|
8
8
|
|
|
9
|
+
implements Decidim::Core::TimestampsInterface
|
|
10
|
+
|
|
9
11
|
field :description, Decidim::Core::TranslatedFieldType, "The description of this participatory process group", null: true
|
|
12
|
+
field :developer_group, Decidim::Core::TranslatedFieldType, "The promoter group of this participatory process group", null: true
|
|
10
13
|
field :hero_image, GraphQL::Types::String, "The hero image for this participatory process group", null: true
|
|
11
14
|
field :id, GraphQL::Types::ID, "ID of this participatory process group", null: false
|
|
15
|
+
field :local_area, Decidim::Core::TranslatedFieldType, "The organization area of this participatory process group", null: true
|
|
16
|
+
field :meta_scope, Decidim::Core::TranslatedFieldType, "The scope metadata of this participatory process group", null: true
|
|
12
17
|
field :participatory_processes, [Decidim::ParticipatoryProcesses::ParticipatoryProcessType, { null: true }],
|
|
13
18
|
description: "Lists all the participatory processes belonging to this group", null: false
|
|
19
|
+
field :participatory_scope, Decidim::Core::TranslatedFieldType, "What is decided on this participatory process group", null: true
|
|
20
|
+
field :participatory_structure, Decidim::Core::TranslatedFieldType, "How it is decided on this participatory process group", null: true
|
|
21
|
+
field :promoted, GraphQL::Types::Boolean, "If this participatory process group is promoted (therefore in the homepage)", null: true
|
|
22
|
+
field :target, Decidim::Core::TranslatedFieldType, "Who participates in this participatory process group", null: true
|
|
14
23
|
field :title, Decidim::Core::TranslatedFieldType, "The title of this participatory process group", null: true
|
|
15
24
|
|
|
16
25
|
def hero_image
|
|
@@ -4,7 +4,6 @@ module Decidim
|
|
|
4
4
|
module ParticipatoryProcesses
|
|
5
5
|
class ParticipatoryProcessInputFilter < Decidim::Core::BaseInputFilter
|
|
6
6
|
include Decidim::Core::HasPublishableInputFilter
|
|
7
|
-
include Decidim::Core::HasHastaggableInputFilter
|
|
8
7
|
|
|
9
8
|
graphql_name "ParticipatoryProcessFilter"
|
|
10
9
|
description "A type used for filtering participatory processes"
|
|
@@ -6,6 +6,8 @@ module Decidim
|
|
|
6
6
|
class ParticipatoryProcessStepType < Decidim::Api::Types::BaseObject
|
|
7
7
|
description "A participatory process step"
|
|
8
8
|
|
|
9
|
+
implements Decidim::Core::TimestampsInterface
|
|
10
|
+
|
|
9
11
|
field :active, GraphQL::Types::Boolean, "If this step is the active one", null: true
|
|
10
12
|
field :call_to_action_path, GraphQL::Types::String, "A call to action URL for this step", method: :cta_path, null: true
|
|
11
13
|
field :call_to_action_text, Decidim::Core::TranslatedFieldType, "The call to action text for this step", method: :cta_text, null: true
|
|
@@ -10,6 +10,8 @@ module Decidim
|
|
|
10
10
|
implements Decidim::Core::TimestampsInterface
|
|
11
11
|
implements Decidim::Core::AttachableInterface
|
|
12
12
|
implements Decidim::Core::CategoriesContainerInterface
|
|
13
|
+
implements Decidim::Core::FollowableInterface
|
|
14
|
+
implements Decidim::Core::ReferableInterface
|
|
13
15
|
|
|
14
16
|
description "A participatory process"
|
|
15
17
|
|
|
@@ -17,7 +19,6 @@ module Decidim
|
|
|
17
19
|
field :description, Decidim::Core::TranslatedFieldType, "The description of this participatory process.", null: true
|
|
18
20
|
field :developer_group, Decidim::Core::TranslatedFieldType, "The promoter group of this participatory process.", null: true
|
|
19
21
|
field :end_date, Decidim::Core::DateType, "This participatory process' end date.", null: true
|
|
20
|
-
field :hashtag, GraphQL::Types::String, "The hashtag for this participatory process", null: true
|
|
21
22
|
field :hero_image, GraphQL::Types::String, "The hero image for this participatory process", null: true
|
|
22
23
|
field :id, GraphQL::Types::ID, "The internal ID for this participatory process", null: false
|
|
23
24
|
field :local_area, Decidim::Core::TranslatedFieldType, "The organization area of this participatory process.", null: true
|
|
@@ -25,18 +26,23 @@ module Decidim
|
|
|
25
26
|
field :participatory_process_group, Decidim::ParticipatoryProcesses::ParticipatoryProcessGroupType,
|
|
26
27
|
null: true,
|
|
27
28
|
description: "The participatory process group in which this process belong to"
|
|
28
|
-
field :participatory_scope, Decidim::Core::TranslatedFieldType, "What is decided on this participatory process
|
|
29
|
-
field :participatory_structure, Decidim::Core::TranslatedFieldType, "How it is decided on this participatory process
|
|
29
|
+
field :participatory_scope, Decidim::Core::TranslatedFieldType, "What is decided on this participatory process", null: true
|
|
30
|
+
field :participatory_structure, Decidim::Core::TranslatedFieldType, "How it is decided on this participatory process", null: true
|
|
31
|
+
field :private_space, GraphQL::Types::Boolean, "Specifies if the space is public or private", null: true
|
|
30
32
|
field :promoted, GraphQL::Types::Boolean, "If this participatory process is promoted (therefore in the homepage)", null: true
|
|
31
33
|
field :published_at, Decidim::Core::DateTimeType, "The time this page was published", null: false
|
|
32
|
-
field :
|
|
33
|
-
field :
|
|
34
|
-
field :
|
|
35
|
-
field :
|
|
36
|
-
field :
|
|
37
|
-
field :
|
|
38
|
-
field :
|
|
39
|
-
field :
|
|
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
|
|
37
|
+
field :steps, [Decidim::ParticipatoryProcesses::ParticipatoryProcessStepType, { null: true }], "All the steps of this participatory process", null: false
|
|
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
|
|
40
|
+
field :url, GraphQL::Types::String, "The URL of this participatory process", null: true
|
|
41
|
+
field :weight, GraphQL::Types::Int, "The weight of this participatory process", null: true
|
|
42
|
+
|
|
43
|
+
def url
|
|
44
|
+
Decidim::EngineRouter.main_proxy(object).participatory_process_url(object)
|
|
45
|
+
end
|
|
40
46
|
|
|
41
47
|
def hero_image
|
|
42
48
|
object.attached_uploader(:hero_image).url
|
|
@@ -24,7 +24,7 @@ module Decidim
|
|
|
24
24
|
end
|
|
25
25
|
resources :participatory_processes, param: :slug, except: [:show, :destroy] do
|
|
26
26
|
resource :publish, controller: "participatory_process_publications", only: [:create, :destroy]
|
|
27
|
-
resources :
|
|
27
|
+
resources :duplicates, controller: "participatory_process_duplicates", only: [:new, :create]
|
|
28
28
|
|
|
29
29
|
member do
|
|
30
30
|
patch :soft_delete
|
|
@@ -125,11 +125,6 @@ module Decidim
|
|
|
125
125
|
content_block.public_name_key = "decidim.content_blocks.participatory_space_stats.name"
|
|
126
126
|
end
|
|
127
127
|
|
|
128
|
-
Decidim.content_blocks.register(:participatory_process_homepage, :metrics) do |content_block|
|
|
129
|
-
content_block.cell = "decidim/participatory_processes/content_blocks/metrics"
|
|
130
|
-
content_block.public_name_key = "decidim.content_blocks.participatory_space_metrics.name"
|
|
131
|
-
end
|
|
132
|
-
|
|
133
128
|
Decidim.content_blocks.register(:participatory_process_homepage, :related_processes) do |content_block|
|
|
134
129
|
content_block.cell = "decidim/participatory_processes/content_blocks/related_processes"
|
|
135
130
|
content_block.settings_form_cell = "decidim/participatory_processes/content_blocks/highlighted_processes_settings_form"
|
|
@@ -172,6 +167,31 @@ module Decidim
|
|
|
172
167
|
register_highlighted_proposals
|
|
173
168
|
register_highlighted_results
|
|
174
169
|
register_related_assemblies
|
|
170
|
+
register_democratic_quality_stats
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def self.register_democratic_quality_stats
|
|
174
|
+
return unless Decidim.module_installed?(:meetings)
|
|
175
|
+
return unless Decidim.module_installed?(:proposals)
|
|
176
|
+
return unless Decidim.module_installed?(:accountability)
|
|
177
|
+
return unless Decidim.module_installed?(:budgets)
|
|
178
|
+
|
|
179
|
+
Decidim.content_blocks.register(:participatory_process_homepage, :democratic_quality_stats) do |content_block|
|
|
180
|
+
content_block.cell = "decidim/participatory_processes/content_blocks/democratic_quality_stats"
|
|
181
|
+
content_block.public_name_key = "decidim.participatory_processes.content_blocks.democratic_quality_stats.name"
|
|
182
|
+
content_block.settings_form_cell = "decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form"
|
|
183
|
+
content_block.settings do |settings|
|
|
184
|
+
settings.attribute :functional_diversity_invited, type: :integer, default: -1
|
|
185
|
+
settings.attribute :languages_communicated, type: :integer, default: -1
|
|
186
|
+
settings.attribute :mobility_meeting_access, type: :integer, default: -1
|
|
187
|
+
settings.attribute :participation_scheduling_times, type: :integer, default: -1
|
|
188
|
+
settings.attribute :digital_support_offered, type: :integer, default: -1
|
|
189
|
+
settings.attribute :citizen_influence_level, type: :integer, default: -1
|
|
190
|
+
settings.attribute :citizen_decisional_intervention, type: :integer, default: -1
|
|
191
|
+
settings.attribute :published_information_clarity, type: :integer, default: -1
|
|
192
|
+
settings.attribute :information_provided, type: :integer, default: -1
|
|
193
|
+
end
|
|
194
|
+
end
|
|
175
195
|
end
|
|
176
196
|
|
|
177
197
|
def self.register_highlighted_debates
|
|
@@ -25,14 +25,8 @@ module Decidim
|
|
|
25
25
|
process ? "/processes/#{process.slug}/f/#{params[:component_id]}" : "/404"
|
|
26
26
|
}, constraints: { process_id: /[0-9]+/ }
|
|
27
27
|
|
|
28
|
-
get "processes/:process_id/all-metrics", to: redirect { |params, _request|
|
|
29
|
-
process = Decidim::ParticipatoryProcess.find(params[:process_id])
|
|
30
|
-
process ? "/processes/#{process.slug}/all-metrics" : "/404"
|
|
31
|
-
}, constraints: { process_id: /[0-9]+/ }, as: :all_metrics
|
|
32
|
-
|
|
33
28
|
resources :participatory_process_groups, only: :show, path: "processes_groups"
|
|
34
29
|
resources :participatory_processes, only: [:index, :show], param: :slug, path: "processes" do
|
|
35
|
-
get "all-metrics", on: :member
|
|
36
30
|
resources :participatory_space_private_users, only: :index, path: "members"
|
|
37
31
|
end
|
|
38
32
|
|
|
@@ -56,6 +50,8 @@ module Decidim
|
|
|
56
50
|
initializer "decidim_participatory_processes.register_icons" do
|
|
57
51
|
Decidim.icons.register(name: "Decidim::ParticipatoryProcess", icon: "treasure-map-line", description: "Participatory Process", category: "activity",
|
|
58
52
|
engine: :participatory_process)
|
|
53
|
+
Decidim.icons.register(name: "Decidim::ParticipatoryProcessGroup", icon: "treasure-map-line", description: "Participatory Process Group", category: "activity",
|
|
54
|
+
engine: :participatory_process)
|
|
59
55
|
Decidim.icons.register(name: "archive-line", icon: "archive-line", category: "system", description: "", engine: :participatory_process)
|
|
60
56
|
Decidim.icons.register(name: "grid-line", icon: "grid-line", category: "system", description: "", engine: :participatory_process)
|
|
61
57
|
Decidim.icons.register(name: "globe-line", icon: "globe-line", category: "system", description: "", engine: :participatory_process)
|
|
@@ -81,34 +77,43 @@ module Decidim
|
|
|
81
77
|
end
|
|
82
78
|
|
|
83
79
|
initializer "decidim_participatory_processes.stats" do
|
|
84
|
-
Decidim.stats.register :
|
|
85
|
-
|
|
80
|
+
Decidim.stats.register :processes_count,
|
|
81
|
+
priority: StatsRegistry::HIGH_PRIORITY,
|
|
82
|
+
icon_name: "treasure-map-line",
|
|
83
|
+
tooltip_key: "processes_count_tooltip" do |organization, start_at, end_at|
|
|
84
|
+
processes = ParticipatoryProcesses::OrganizationPrioritizedParticipatoryProcesses.new(organization)
|
|
85
|
+
|
|
86
|
+
processes = processes.where(created_at: start_at..) if start_at.present?
|
|
87
|
+
processes = processes.where(created_at: ..end_at) if end_at.present?
|
|
88
|
+
processes.count
|
|
86
89
|
end
|
|
87
90
|
|
|
88
|
-
Decidim.stats.register :
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
initializer "decidim_participatory_processes.register_metrics" do
|
|
94
|
-
Decidim.metrics_registry.register(:participatory_processes) do |metric_registry|
|
|
95
|
-
metric_registry.manager_class = "Decidim::ParticipatoryProcesses::Metrics::ParticipatoryProcessesMetricManage"
|
|
96
|
-
|
|
97
|
-
metric_registry.settings do |settings|
|
|
98
|
-
settings.attribute :highlighted, type: :boolean, default: false
|
|
99
|
-
settings.attribute :scopes, type: :array, default: %w(home)
|
|
100
|
-
settings.attribute :weight, type: :integer, default: 2
|
|
101
|
-
end
|
|
91
|
+
Decidim.stats.register :followers_count,
|
|
92
|
+
priority: StatsRegistry::MEDIUM_PRIORITY,
|
|
93
|
+
icon_name: "user-follow-line",
|
|
94
|
+
tooltip_key: "followers_count_tooltip" do |participatory_space|
|
|
95
|
+
Decidim::ParticipatoryProcesses::ParticipatoryProcessesStatsFollowersCount.for(participatory_space)
|
|
102
96
|
end
|
|
103
97
|
|
|
104
|
-
Decidim.
|
|
105
|
-
|
|
98
|
+
Decidim.stats.register :participants_count,
|
|
99
|
+
priority: StatsRegistry::MEDIUM_PRIORITY,
|
|
100
|
+
icon_name: "user-line",
|
|
101
|
+
tooltip_key: "participants_count_tooltip" do |participatory_space|
|
|
102
|
+
Decidim::ParticipatoryProcesses::ParticipatoryProcessesStatsParticipantsCount.for(participatory_space)
|
|
106
103
|
end
|
|
107
104
|
end
|
|
108
105
|
|
|
109
|
-
initializer "decidim_participatory_processes.
|
|
106
|
+
initializer "decidim_participatory_processes.shakapacker.assets_path" do
|
|
110
107
|
Decidim.register_assets_path File.expand_path("app/packs", root)
|
|
111
108
|
end
|
|
109
|
+
|
|
110
|
+
initializer "decidim_participatory_processes.static_pages" do
|
|
111
|
+
config.to_prepare do
|
|
112
|
+
Decidim::EventsManager.subscribe("decidim.system.create_organization:after") do |_event_name, data|
|
|
113
|
+
Decidim::ParticipatoryProcesses::CreateDemocraticQualityIndicatorsPage.call(data[:organization].id)
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
112
117
|
end
|
|
113
118
|
end
|
|
114
119
|
end
|
|
@@ -27,10 +27,7 @@ Decidim.register_participatory_space(:participatory_processes) do |participatory
|
|
|
27
27
|
resource.model_class_name = "Decidim::ParticipatoryProcessGroup"
|
|
28
28
|
resource.card = "decidim/participatory_processes/process_group"
|
|
29
29
|
resource.content_blocks_scope_name = "participatory_process_group_homepage"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
participatory_space.register_stat :followers_count, tag: :followers, priority: Decidim::StatsRegistry::LOW_PRIORITY do |spaces, _start_at, _end_at|
|
|
33
|
-
Decidim::Follow.where(followable: spaces).count
|
|
30
|
+
resource.searchable = true
|
|
34
31
|
end
|
|
35
32
|
|
|
36
33
|
participatory_space.context(:public) do |context|
|
|
@@ -7,10 +7,12 @@ module Decidim
|
|
|
7
7
|
module ParticipatoryProcesses
|
|
8
8
|
class Seeds < Decidim::Seeds
|
|
9
9
|
def call
|
|
10
|
+
Decidim::ParticipatoryProcesses::CreateDemocraticQualityIndicatorsPage.call(organization.id)
|
|
11
|
+
|
|
10
12
|
create_content_block!
|
|
11
13
|
|
|
12
14
|
process_groups = []
|
|
13
|
-
|
|
15
|
+
number_of_records.times do
|
|
14
16
|
process_groups << create_process_group!
|
|
15
17
|
end
|
|
16
18
|
|
|
@@ -19,7 +21,7 @@ module Decidim
|
|
|
19
21
|
end
|
|
20
22
|
|
|
21
23
|
taxonomy = create_taxonomy!(name: "Process Types", parent: nil)
|
|
22
|
-
|
|
24
|
+
number_of_records.times do
|
|
23
25
|
create_taxonomy!(name: ::Faker::Lorem.word, parent: taxonomy)
|
|
24
26
|
end
|
|
25
27
|
# filters for processes only
|
|
@@ -27,7 +29,7 @@ module Decidim
|
|
|
27
29
|
taxonomies: taxonomy.all_children,
|
|
28
30
|
participatory_space_manifests: [:participatory_processes])
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
number_of_records.times do |_n|
|
|
31
33
|
process = create_process!(process_group: process_groups.sample)
|
|
32
34
|
|
|
33
35
|
create_follow!(Decidim::User.where(organization:, admin: true).first, process)
|
|
@@ -61,7 +63,6 @@ module Decidim
|
|
|
61
63
|
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
|
62
64
|
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
|
63
65
|
end,
|
|
64
|
-
hashtag: ::Faker::Internet.slug,
|
|
65
66
|
group_url: ::Faker::Internet.url,
|
|
66
67
|
organization:,
|
|
67
68
|
hero_image: ::Faker::Boolean.boolean(true_ratio: 0.5) ? hero_image : nil, # Keep after organization
|
|
@@ -80,7 +81,6 @@ module Decidim
|
|
|
80
81
|
title: Decidim::Faker::Localized.sentence(word_count: 5),
|
|
81
82
|
slug: Decidim::Faker::Internet.unique.slug(words: nil, glue: "-"),
|
|
82
83
|
subtitle: Decidim::Faker::Localized.sentence(word_count: 2),
|
|
83
|
-
hashtag: "##{::Faker::Lorem.word}",
|
|
84
84
|
short_description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
|
85
85
|
Decidim::Faker::Localized.sentence(word_count: 3)
|
|
86
86
|
end,
|
|
@@ -111,7 +111,6 @@ FactoryBot.define do
|
|
|
111
111
|
description { generate_localized_description(:participatory_process_group_description, skip_injection:) }
|
|
112
112
|
hero_image { Decidim::Dev.test_file("city.jpeg", "image/jpeg") }
|
|
113
113
|
organization
|
|
114
|
-
hashtag { Faker::Internet.slug }
|
|
115
114
|
group_url { Faker::Internet.url }
|
|
116
115
|
developer_group { generate_localized_title(:participatory_process_group_developer_group, skip_injection:) }
|
|
117
116
|
local_area { generate_localized_title(:participatory_process_group_local_area, skip_injection:) }
|
|
@@ -227,7 +226,7 @@ FactoryBot.define do
|
|
|
227
226
|
end
|
|
228
227
|
end
|
|
229
228
|
|
|
230
|
-
factory :
|
|
229
|
+
factory :process_evaluator, parent: :user, class: "Decidim::User" do
|
|
231
230
|
transient do
|
|
232
231
|
skip_injection { false }
|
|
233
232
|
participatory_process { create(:participatory_process, skip_injection:) }
|
|
@@ -240,7 +239,7 @@ FactoryBot.define do
|
|
|
240
239
|
create(:participatory_process_user_role,
|
|
241
240
|
user:,
|
|
242
241
|
participatory_process: evaluator.participatory_process,
|
|
243
|
-
role: :
|
|
242
|
+
role: :evaluator, skip_injection: evaluator.skip_injection)
|
|
244
243
|
end
|
|
245
244
|
end
|
|
246
245
|
|