decidim-participatory_processes 0.30.2 → 0.31.0.rc1
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/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/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 +319 -25
- data/config/locales/ca.yml +319 -25
- data/config/locales/cs.yml +93 -26
- data/config/locales/de.yml +123 -25
- data/config/locales/el.yml +0 -21
- data/config/locales/en.yml +303 -24
- data/config/locales/es-MX.yml +319 -25
- data/config/locales/es-PY.yml +319 -25
- data/config/locales/es.yml +319 -25
- data/config/locales/eu.yml +304 -25
- data/config/locales/fi-plain.yml +303 -24
- data/config/locales/fi.yml +303 -24
- data/config/locales/fr-CA.yml +86 -24
- data/config/locales/fr.yml +86 -24
- 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 +123 -25
- 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 +86 -24
- 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 +34 -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 +22 -25
- data/lib/decidim/participatory_processes/participatory_space.rb +1 -4
- data/lib/decidim/participatory_processes/seeds.rb +3 -5
- data/lib/decidim/participatory_processes/test/factories.rb +2 -3
- data/lib/decidim/participatory_processes/version.rb +1 -1
- metadata +72 -22
- 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
@@ -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,32 +77,33 @@ module Decidim
|
|
81
77
|
end
|
82
78
|
|
83
79
|
initializer "decidim_participatory_processes.stats" do
|
84
|
-
Decidim.stats.register :
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
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
|
90
89
|
end
|
91
|
-
end
|
92
90
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
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
|
112
109
|
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|
|
@@ -10,7 +10,7 @@ module Decidim
|
|
10
10
|
create_content_block!
|
11
11
|
|
12
12
|
process_groups = []
|
13
|
-
|
13
|
+
number_of_records.times do
|
14
14
|
process_groups << create_process_group!
|
15
15
|
end
|
16
16
|
|
@@ -19,7 +19,7 @@ module Decidim
|
|
19
19
|
end
|
20
20
|
|
21
21
|
taxonomy = create_taxonomy!(name: "Process Types", parent: nil)
|
22
|
-
|
22
|
+
number_of_records.times do
|
23
23
|
create_taxonomy!(name: ::Faker::Lorem.word, parent: taxonomy)
|
24
24
|
end
|
25
25
|
# filters for processes only
|
@@ -27,7 +27,7 @@ module Decidim
|
|
27
27
|
taxonomies: taxonomy.all_children,
|
28
28
|
participatory_space_manifests: [:participatory_processes])
|
29
29
|
|
30
|
-
|
30
|
+
number_of_records.times do |_n|
|
31
31
|
process = create_process!(process_group: process_groups.sample)
|
32
32
|
|
33
33
|
create_follow!(Decidim::User.where(organization:, admin: true).first, process)
|
@@ -61,7 +61,6 @@ module Decidim
|
|
61
61
|
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
62
62
|
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
63
63
|
end,
|
64
|
-
hashtag: ::Faker::Internet.slug,
|
65
64
|
group_url: ::Faker::Internet.url,
|
66
65
|
organization:,
|
67
66
|
hero_image: ::Faker::Boolean.boolean(true_ratio: 0.5) ? hero_image : nil, # Keep after organization
|
@@ -80,7 +79,6 @@ module Decidim
|
|
80
79
|
title: Decidim::Faker::Localized.sentence(word_count: 5),
|
81
80
|
slug: Decidim::Faker::Internet.unique.slug(words: nil, glue: "-"),
|
82
81
|
subtitle: Decidim::Faker::Localized.sentence(word_count: 2),
|
83
|
-
hashtag: "##{::Faker::Lorem.word}",
|
84
82
|
short_description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
85
83
|
Decidim::Faker::Localized.sentence(word_count: 3)
|
86
84
|
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
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-participatory_processes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.31.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey Peroy
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2025-09-
|
13
|
+
date: 2025-09-25 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: decidim-core
|
@@ -18,56 +18,98 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.31.0.rc1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - '='
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 0.
|
28
|
+
version: 0.31.0.rc1
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: decidim-accountability
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - '='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 0.31.0.rc1
|
36
|
+
type: :development
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - '='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 0.31.0.rc1
|
29
43
|
- !ruby/object:Gem::Dependency
|
30
44
|
name: decidim-admin
|
31
45
|
requirement: !ruby/object:Gem::Requirement
|
32
46
|
requirements:
|
33
47
|
- - '='
|
34
48
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0.
|
49
|
+
version: 0.31.0.rc1
|
36
50
|
type: :development
|
37
51
|
prerelease: false
|
38
52
|
version_requirements: !ruby/object:Gem::Requirement
|
39
53
|
requirements:
|
40
54
|
- - '='
|
41
55
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.
|
56
|
+
version: 0.31.0.rc1
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: decidim-budgets
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - '='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 0.31.0.rc1
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - '='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 0.31.0.rc1
|
43
71
|
- !ruby/object:Gem::Dependency
|
44
72
|
name: decidim-dev
|
45
73
|
requirement: !ruby/object:Gem::Requirement
|
46
74
|
requirements:
|
47
75
|
- - '='
|
48
76
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.
|
77
|
+
version: 0.31.0.rc1
|
50
78
|
type: :development
|
51
79
|
prerelease: false
|
52
80
|
version_requirements: !ruby/object:Gem::Requirement
|
53
81
|
requirements:
|
54
82
|
- - '='
|
55
83
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.
|
84
|
+
version: 0.31.0.rc1
|
57
85
|
- !ruby/object:Gem::Dependency
|
58
86
|
name: decidim-meetings
|
59
87
|
requirement: !ruby/object:Gem::Requirement
|
60
88
|
requirements:
|
61
89
|
- - '='
|
62
90
|
- !ruby/object:Gem::Version
|
63
|
-
version: 0.
|
91
|
+
version: 0.31.0.rc1
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - '='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 0.31.0.rc1
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: decidim-proposals
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - '='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: 0.31.0.rc1
|
64
106
|
type: :development
|
65
107
|
prerelease: false
|
66
108
|
version_requirements: !ruby/object:Gem::Requirement
|
67
109
|
requirements:
|
68
110
|
- - '='
|
69
111
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.
|
112
|
+
version: 0.31.0.rc1
|
71
113
|
description: Participatory processes component for decidim.
|
72
114
|
email:
|
73
115
|
- josepjaume@gmail.com
|
@@ -89,6 +131,13 @@ files:
|
|
89
131
|
- app/cells/decidim/participatory_process_groups/content_blocks/statistics_cell.rb
|
90
132
|
- app/cells/decidim/participatory_process_groups/process_filters_cell.rb
|
91
133
|
- app/cells/decidim/participatory_processes/content_block_cell.rb
|
134
|
+
- app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats/show.erb
|
135
|
+
- app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_cell.rb
|
136
|
+
- app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/citizen_influence.erb
|
137
|
+
- app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/inclusiveness.erb
|
138
|
+
- app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/informativeness.erb
|
139
|
+
- app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/show.erb
|
140
|
+
- app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form_cell.rb
|
92
141
|
- app/cells/decidim/participatory_processes/content_blocks/extra_data/active_step.erb
|
93
142
|
- app/cells/decidim/participatory_processes/content_blocks/extra_data_cell.rb
|
94
143
|
- app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_cell.rb
|
@@ -96,7 +145,6 @@ files:
|
|
96
145
|
- app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_settings_form_cell.rb
|
97
146
|
- app/cells/decidim/participatory_processes/content_blocks/main_data_cell.rb
|
98
147
|
- app/cells/decidim/participatory_processes/content_blocks/metadata_cell.rb
|
99
|
-
- app/cells/decidim/participatory_processes/content_blocks/metrics_cell.rb
|
100
148
|
- app/cells/decidim/participatory_processes/content_blocks/processes_settings_form/show.erb
|
101
149
|
- app/cells/decidim/participatory_processes/content_blocks/processes_settings_form_cell.rb
|
102
150
|
- app/cells/decidim/participatory_processes/content_blocks/related_processes/content.erb
|
@@ -104,6 +152,8 @@ files:
|
|
104
152
|
- app/cells/decidim/participatory_processes/content_blocks/stats_cell.rb
|
105
153
|
- app/cells/decidim/participatory_processes/filtered_participatory_processes/show.erb
|
106
154
|
- app/cells/decidim/participatory_processes/filtered_participatory_processes_cell.rb
|
155
|
+
- app/cells/decidim/participatory_processes/indicator/show.erb
|
156
|
+
- app/cells/decidim/participatory_processes/indicator_cell.rb
|
107
157
|
- app/cells/decidim/participatory_processes/process_cell.rb
|
108
158
|
- app/cells/decidim/participatory_processes/process_dropdown_metadata/metadata.erb
|
109
159
|
- app/cells/decidim/participatory_processes/process_dropdown_metadata_cell.rb
|
@@ -123,11 +173,11 @@ files:
|
|
123
173
|
- app/cells/decidim/participatory_processes/processes/show.erb
|
124
174
|
- app/cells/decidim/participatory_processes/processes_cell.rb
|
125
175
|
- app/commands/decidim/participatory_processes/admin/activate_participatory_process_step.rb
|
126
|
-
- app/commands/decidim/participatory_processes/admin/copy_participatory_process.rb
|
127
176
|
- app/commands/decidim/participatory_processes/admin/create_participatory_process.rb
|
128
177
|
- app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb
|
129
178
|
- app/commands/decidim/participatory_processes/admin/create_participatory_process_step.rb
|
130
179
|
- app/commands/decidim/participatory_processes/admin/destroy_participatory_process_step.rb
|
180
|
+
- app/commands/decidim/participatory_processes/admin/duplicate_participatory_process.rb
|
131
181
|
- app/commands/decidim/participatory_processes/admin/import_participatory_process.rb
|
132
182
|
- app/commands/decidim/participatory_processes/admin/reorder_participatory_process_steps.rb
|
133
183
|
- app/commands/decidim/participatory_processes/admin/update_participatory_process.rb
|
@@ -147,7 +197,7 @@ files:
|
|
147
197
|
- app/controllers/decidim/participatory_processes/admin/moderations_controller.rb
|
148
198
|
- app/controllers/decidim/participatory_processes/admin/participatory_process_attachment_collections_controller.rb
|
149
199
|
- app/controllers/decidim/participatory_processes/admin/participatory_process_attachments_controller.rb
|
150
|
-
- app/controllers/decidim/participatory_processes/admin/
|
200
|
+
- app/controllers/decidim/participatory_processes/admin/participatory_process_duplicates_controller.rb
|
151
201
|
- app/controllers/decidim/participatory_processes/admin/participatory_process_exports_controller.rb
|
152
202
|
- app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_content_blocks_controller.rb
|
153
203
|
- app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_controller.rb
|
@@ -172,7 +222,7 @@ files:
|
|
172
222
|
- app/events/decidim/participatory_process_role_assigned_event.rb
|
173
223
|
- app/events/decidim/participatory_process_step_activated_event.rb
|
174
224
|
- app/events/decidim/participatory_process_step_changed_event.rb
|
175
|
-
- app/forms/decidim/participatory_processes/admin/
|
225
|
+
- app/forms/decidim/participatory_processes/admin/participatory_process_duplicate_form.rb
|
176
226
|
- app/forms/decidim/participatory_processes/admin/participatory_process_form.rb
|
177
227
|
- app/forms/decidim/participatory_processes/admin/participatory_process_group_form.rb
|
178
228
|
- app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb
|
@@ -200,9 +250,9 @@ files:
|
|
200
250
|
- app/presenters/decidim/participatory_processes/admin_log/participatory_process_user_role_presenter.rb
|
201
251
|
- app/presenters/decidim/participatory_processes/admin_log/step_presenter.rb
|
202
252
|
- app/presenters/decidim/participatory_processes/admin_log/value_types/role_presenter.rb
|
253
|
+
- app/presenters/decidim/participatory_processes/participatory_process_democratic_quality_stats_presenter.rb
|
203
254
|
- app/presenters/decidim/participatory_processes/participatory_process_group_presenter.rb
|
204
255
|
- app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb
|
205
|
-
- app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb
|
206
256
|
- app/presenters/decidim/participatory_processes/participatory_process_presenter.rb
|
207
257
|
- app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb
|
208
258
|
- app/queries/decidim/participatory_processes/admin/admin_users.rb
|
@@ -212,8 +262,6 @@ files:
|
|
212
262
|
- app/queries/decidim/participatory_processes/group_participatory_processes.rb
|
213
263
|
- app/queries/decidim/participatory_processes/group_published_participatory_processes.rb
|
214
264
|
- app/queries/decidim/participatory_processes/highlighted_participatory_processes.rb
|
215
|
-
- app/queries/decidim/participatory_processes/metrics/participatory_process_followers_metric_measure.rb
|
216
|
-
- app/queries/decidim/participatory_processes/metrics/participatory_processes_metric_manage.rb
|
217
265
|
- app/queries/decidim/participatory_processes/organization_participatory_process_groups.rb
|
218
266
|
- app/queries/decidim/participatory_processes/organization_participatory_processes.rb
|
219
267
|
- app/queries/decidim/participatory_processes/organization_prioritized_participatory_process_groups.rb
|
@@ -221,12 +269,12 @@ files:
|
|
221
269
|
- app/queries/decidim/participatory_processes/organization_promoted_participatory_process_groups.rb
|
222
270
|
- app/queries/decidim/participatory_processes/organization_published_participatory_processes.rb
|
223
271
|
- app/queries/decidim/participatory_processes/participatory_processes_by_group.rb
|
272
|
+
- app/queries/decidim/participatory_processes/participatory_processes_stats_followers_count.rb
|
273
|
+
- app/queries/decidim/participatory_processes/participatory_processes_stats_participants_count.rb
|
224
274
|
- app/queries/decidim/participatory_processes/prioritized_participatory_processes.rb
|
225
275
|
- app/queries/decidim/participatory_processes/promoted_participatory_process_groups.rb
|
226
276
|
- app/queries/decidim/participatory_processes/promoted_participatory_processes.rb
|
227
277
|
- app/queries/decidim/participatory_processes/published_participatory_processes.rb
|
228
|
-
- app/queries/decidim/participatory_processes/stats_followers_count.rb
|
229
|
-
- app/queries/decidim/participatory_processes/stats_participants_count.rb
|
230
278
|
- app/queries/decidim/participatory_processes/visible_participatory_process_groups.rb
|
231
279
|
- app/queries/decidim/participatory_processes/visible_participatory_processes.rb
|
232
280
|
- app/serializers/decidim/participatory_processes/open_data_participatory_process_serializer.rb
|
@@ -234,8 +282,8 @@ files:
|
|
234
282
|
- app/serializers/decidim/participatory_processes/participatory_process_serializer.rb
|
235
283
|
- app/views/decidim/participatory_process_groups/_participatory_process_group.html.erb
|
236
284
|
- app/views/decidim/participatory_processes/_participatory_process.html.erb
|
237
|
-
- app/views/decidim/participatory_processes/admin/
|
238
|
-
- app/views/decidim/participatory_processes/admin/
|
285
|
+
- app/views/decidim/participatory_processes/admin/participatory_process_duplicates/_form.html.erb
|
286
|
+
- app/views/decidim/participatory_processes/admin/participatory_process_duplicates/new.html.erb
|
239
287
|
- app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb
|
240
288
|
- app/views/decidim/participatory_processes/admin/participatory_process_groups/edit.html.erb
|
241
289
|
- app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb
|
@@ -261,7 +309,6 @@ files:
|
|
261
309
|
- app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb
|
262
310
|
- app/views/decidim/participatory_processes/participatory_process_groups/show.js.erb
|
263
311
|
- app/views/decidim/participatory_processes/participatory_processes/_collection.html.erb
|
264
|
-
- app/views/decidim/participatory_processes/participatory_processes/all_metrics.html.erb
|
265
312
|
- app/views/decidim/participatory_processes/participatory_processes/index.html.erb
|
266
313
|
- app/views/decidim/participatory_processes/participatory_processes/index.js.erb
|
267
314
|
- app/views/decidim/participatory_processes/participatory_processes/show.html.erb
|
@@ -410,6 +457,9 @@ files:
|
|
410
457
|
- db/migrate/20241108141423_remove_column_show_metrics_from_participatory_processes.rb
|
411
458
|
- db/migrate/20241108141514_remove_column_banner_image_from_participatory_processes.rb
|
412
459
|
- db/migrate/20241108141605_remove_column_show_statistics_from_participatory_processes.rb
|
460
|
+
- db/migrate/20250403110052_add_democratic_quality_static_page.rb
|
461
|
+
- db/migrate/20250605114136_remove_hashtag_from_participatory_processes.rb
|
462
|
+
- db/migrate/20250605114415_remove_hashtag_from_participatory_processes_groups.rb
|
413
463
|
- decidim-participatory_processes.gemspec
|
414
464
|
- lib/decidim/api/participatory_process_group_type.rb
|
415
465
|
- lib/decidim/api/participatory_process_input_filter.rb
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module ParticipatoryProcesses
|
5
|
-
module ContentBlocks
|
6
|
-
class MetricsCell < Decidim::ContentBlocks::ParticipatorySpaceMetricsCell
|
7
|
-
include ParticipatorySpaceContentBlocksHelper
|
8
|
-
|
9
|
-
private
|
10
|
-
|
11
|
-
def metrics
|
12
|
-
@metrics ||= ParticipatoryProcessMetricChartsPresenter.new(participatory_process: resource)
|
13
|
-
end
|
14
|
-
|
15
|
-
def scope
|
16
|
-
"participatory_process"
|
17
|
-
end
|
18
|
-
|
19
|
-
def show_all_path
|
20
|
-
decidim_participatory_processes.all_metrics_participatory_process_path(resource)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module ParticipatoryProcesses
|
5
|
-
# A presenter to render metrics in ParticipatoryProcesses statistics page
|
6
|
-
class ParticipatoryProcessMetricChartsPresenter < Decidim::MetricChartsPresenter
|
7
|
-
delegate :hidden_field_tag, :link_to, :capture, to: :view_context
|
8
|
-
|
9
|
-
def participatory_process
|
10
|
-
__getobj__.fetch(:participatory_process)
|
11
|
-
end
|
12
|
-
|
13
|
-
def params
|
14
|
-
capture do
|
15
|
-
concat(hidden_field_tag(:metrics_space_type, participatory_process.class.name, id: :"metrics-space_type"))
|
16
|
-
concat(hidden_field_tag(:metrics_space_id, participatory_process.id, id: :"metrics-space_id"))
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module ParticipatoryProcesses
|
5
|
-
module Metrics
|
6
|
-
# Searches for unique Users following the next objects
|
7
|
-
# - ParticipatoryProcesses
|
8
|
-
class ParticipatoryProcessFollowersMetricMeasure < Decidim::MetricMeasure
|
9
|
-
def valid?
|
10
|
-
super && @resource.is_a?(Decidim::Participable)
|
11
|
-
end
|
12
|
-
|
13
|
-
def calculate
|
14
|
-
participatory_process = @resource
|
15
|
-
|
16
|
-
process_followers = Decidim::Follow.where(followable: participatory_process).joins(:user)
|
17
|
-
.where(decidim_follows: { created_at: ..end_time })
|
18
|
-
cumulative_users = process_followers.pluck(:decidim_user_id)
|
19
|
-
|
20
|
-
process_followers = process_followers.where(decidim_follows: { created_at: start_time.. })
|
21
|
-
quantity_users = process_followers.pluck(:decidim_user_id)
|
22
|
-
|
23
|
-
{
|
24
|
-
cumulative_users: cumulative_users.uniq,
|
25
|
-
quantity_users: quantity_users.uniq
|
26
|
-
}
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
data/app/queries/decidim/participatory_processes/metrics/participatory_processes_metric_manage.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module ParticipatoryProcesses
|
5
|
-
module Metrics
|
6
|
-
class ParticipatoryProcessesMetricManage < Decidim::MetricManage
|
7
|
-
def metric_name
|
8
|
-
"participatory_processes"
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
def query
|
14
|
-
return @query if @query
|
15
|
-
|
16
|
-
@query = Decidim::ParticipatoryProcess.where(organization: @organization)
|
17
|
-
@query = @query.where(decidim_participatory_processes: { published_at: ..end_time })
|
18
|
-
@query
|
19
|
-
end
|
20
|
-
|
21
|
-
def quantity
|
22
|
-
@quantity ||= query.where(decidim_participatory_processes: { published_at: start_time.. }).count
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module ParticipatoryProcesses
|
5
|
-
# This class counts all Followers of a participatory process or
|
6
|
-
# participatory processes belonging to a participatory process group
|
7
|
-
class StatsFollowersCount < Decidim::Query
|
8
|
-
def self.for(participatory_space)
|
9
|
-
return 0 unless participatory_space.is_a?(Decidim::ParticipatoryProcess) ||
|
10
|
-
(participatory_space.is_a?(Decidim::ParticipatoryProcessGroup) && participatory_space.participatory_processes.exists?)
|
11
|
-
|
12
|
-
new(participatory_space).query
|
13
|
-
end
|
14
|
-
|
15
|
-
def initialize(participatory_space)
|
16
|
-
@participatory_space = participatory_space
|
17
|
-
end
|
18
|
-
|
19
|
-
def query
|
20
|
-
space_query + components_query
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
attr_reader :participatory_space
|
26
|
-
|
27
|
-
def components_query
|
28
|
-
Decidim.component_manifests.sum do |component|
|
29
|
-
component.stats
|
30
|
-
.filter(tag: :followers)
|
31
|
-
.with_context(space_components)
|
32
|
-
.map { |_name, value| value }
|
33
|
-
.sum
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def space_query
|
38
|
-
Decidim.participatory_space_manifests.sum do |space|
|
39
|
-
space.stats
|
40
|
-
.filter(tag: :followers)
|
41
|
-
.with_context(participatory_space_items)
|
42
|
-
.map { |_name, value| value }
|
43
|
-
.sum
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def participatory_space_items
|
48
|
-
@participatory_space_items ||= if participatory_space.is_a?(Decidim::ParticipatoryProcess)
|
49
|
-
participatory_space
|
50
|
-
else
|
51
|
-
participatory_space.participatory_processes
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def space_components
|
56
|
-
@space_components ||= Decidim::Component.where(participatory_space: participatory_space_items).published
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|