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
@@ -1,136 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module ParticipatoryProcesses
|
5
|
-
# This class counts unique Participants on a participatory process or
|
6
|
-
# participatory processes belonging to a participatory process group
|
7
|
-
class StatsParticipantsCount < 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
|
-
[
|
21
|
-
comments_query,
|
22
|
-
debates_query,
|
23
|
-
meetings_query,
|
24
|
-
endorsements_query,
|
25
|
-
project_votes_query,
|
26
|
-
proposals_query,
|
27
|
-
proposal_votes_query,
|
28
|
-
survey_answer_query
|
29
|
-
].flatten.uniq.count
|
30
|
-
end
|
31
|
-
|
32
|
-
private
|
33
|
-
|
34
|
-
attr_reader :participatory_space
|
35
|
-
|
36
|
-
def participatory_space_ids
|
37
|
-
@participatory_space_ids ||= if participatory_space.is_a?(Decidim::ParticipatoryProcess)
|
38
|
-
participatory_space.id
|
39
|
-
else
|
40
|
-
participatory_space.participatory_processes.pluck(:id)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
def comments_query
|
45
|
-
return [] unless Decidim.module_installed?(:comments)
|
46
|
-
|
47
|
-
Decidim::Comments::Comment
|
48
|
-
.where(decidim_participatory_space_type: Decidim::ParticipatoryProcess.class.name)
|
49
|
-
.where(decidim_participatory_space_id: participatory_space_ids)
|
50
|
-
.pluck(:decidim_author_id)
|
51
|
-
.uniq
|
52
|
-
end
|
53
|
-
|
54
|
-
def debates_query
|
55
|
-
return [] unless Decidim.module_installed?(:debates)
|
56
|
-
|
57
|
-
Decidim::Debates::Debate
|
58
|
-
.where(
|
59
|
-
component: space_components,
|
60
|
-
decidim_author_type: Decidim::UserBaseEntity.name
|
61
|
-
)
|
62
|
-
.not_hidden
|
63
|
-
.pluck(:decidim_author_id)
|
64
|
-
.uniq
|
65
|
-
end
|
66
|
-
|
67
|
-
def meetings_query
|
68
|
-
return [] unless Decidim.module_installed?(:meetings)
|
69
|
-
|
70
|
-
meetings = Decidim::Meetings::Meeting.where(component: space_components).not_hidden
|
71
|
-
registrations = Decidim::Meetings::Registration.where(decidim_meeting_id: meetings).distinct.pluck(:decidim_user_id)
|
72
|
-
organizers = meetings.where(decidim_author_type: Decidim::UserBaseEntity.name).distinct.pluck(:decidim_author_id)
|
73
|
-
|
74
|
-
[registrations, organizers].flatten.uniq
|
75
|
-
end
|
76
|
-
|
77
|
-
def endorsements_query
|
78
|
-
Decidim::Endorsement
|
79
|
-
.where(resource: space_components)
|
80
|
-
.pluck(:decidim_author_id)
|
81
|
-
.uniq
|
82
|
-
end
|
83
|
-
|
84
|
-
def proposals_query
|
85
|
-
return [] unless Decidim.module_installed?(:proposals)
|
86
|
-
|
87
|
-
Decidim::Coauthorship
|
88
|
-
.where(
|
89
|
-
coauthorable: proposals_components,
|
90
|
-
decidim_author_type: Decidim::UserBaseEntity.name
|
91
|
-
)
|
92
|
-
.pluck(:decidim_author_id)
|
93
|
-
.uniq
|
94
|
-
end
|
95
|
-
|
96
|
-
def proposal_votes_query
|
97
|
-
return [] unless Decidim.module_installed?(:proposals)
|
98
|
-
|
99
|
-
Decidim::Proposals::ProposalVote
|
100
|
-
.where(
|
101
|
-
proposal: proposals_components
|
102
|
-
)
|
103
|
-
.final
|
104
|
-
.pluck(:decidim_author_id)
|
105
|
-
.uniq
|
106
|
-
end
|
107
|
-
|
108
|
-
def project_votes_query
|
109
|
-
return [] unless Decidim.module_installed?(:budgets)
|
110
|
-
|
111
|
-
Decidim::Budgets::Order.joins(budget: [:component])
|
112
|
-
.where(budget: {
|
113
|
-
decidim_components: { id: space_components.pluck(:id) }
|
114
|
-
})
|
115
|
-
.pluck(:decidim_user_id)
|
116
|
-
.uniq
|
117
|
-
end
|
118
|
-
|
119
|
-
def survey_answer_query
|
120
|
-
Decidim::Forms::Answer.newsletter_participant_ids(space_components)
|
121
|
-
end
|
122
|
-
|
123
|
-
def space_components
|
124
|
-
@space_components ||= if participatory_space.is_a?(Decidim::ParticipatoryProcess)
|
125
|
-
participatory_space.components
|
126
|
-
else
|
127
|
-
Decidim::Component.where(participatory_space: participatory_space.participatory_processes)
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
def proposals_components
|
132
|
-
@proposals_components ||= Decidim::Proposals::FilteredProposals.for(space_components).published.not_hidden
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
<% add_decidim_page_title(t("participatory_process_copies.new.title", scope: "decidim.admin")) %>
|
2
|
-
<div class="item_show__header">
|
3
|
-
<h1 class="item_show__header-title">
|
4
|
-
<%= t("participatory_process_copies.new.title", scope: "decidim.admin") %>
|
5
|
-
</h1>
|
6
|
-
</div>
|
7
|
-
|
8
|
-
<div class="item__edit item__edit-1col">
|
9
|
-
<div class="item__edit-form">
|
10
|
-
<%= decidim_form_for(@form, url: participatory_process_copies_path(current_participatory_process), method: :post, html: { class: "form form-defaults copy_participatory_process" }) do |f| %>
|
11
|
-
<%= render partial: "form", object: f %>
|
12
|
-
<div class="item__edit-sticky">
|
13
|
-
<div class="item__edit-sticky-container">
|
14
|
-
<%= f.submit t("participatory_process_copies.new.copy", scope: "decidim.admin"), class: "button button__sm button__secondary" %>
|
15
|
-
</div>
|
16
|
-
</div>
|
17
|
-
<% end %>
|
18
|
-
</div>
|
19
|
-
</div>
|
@@ -1,25 +0,0 @@
|
|
1
|
-
<% add_decidim_page_title(t("decidim.pages.participatory_space.metrics.headline")) %>
|
2
|
-
<% add_decidim_page_title(translated_attribute(current_participatory_space.title)) %>
|
3
|
-
|
4
|
-
<%= render layout:"layouts/decidim/shared/layout_center", locals: { columns: 8 } do %>
|
5
|
-
<div class="text-center py-10">
|
6
|
-
<h2 class="title-decorator inline-block text-left">
|
7
|
-
<%= t("decidim.pages.participatory_space.metrics.headline") %>
|
8
|
-
</h2>
|
9
|
-
</div>
|
10
|
-
|
11
|
-
<% if current_participatory_space.private_space? %>
|
12
|
-
<%= cell("decidim/announcement", t("participatory_processes.show.private_space", scope: "decidim"), callout_class: "alert") %>
|
13
|
-
<% end %>
|
14
|
-
|
15
|
-
<div id="metrics" class="metric__container">
|
16
|
-
<%= metrics.params %>
|
17
|
-
<%= metrics.render_charts Decidim.metrics_registry.filtered(scope: "participatory_process", sort: true) %>
|
18
|
-
</div>
|
19
|
-
|
20
|
-
<%= link_to participatory_process_path(current_participatory_space), class: "button button__sm button__text-secondary mt-10" do %>
|
21
|
-
<%= icon "arrow-left-line" %>
|
22
|
-
<span><%= t("back_to_process", scope: "decidim.participatory_processes.participatory_process_steps.index") %></span>
|
23
|
-
<% end %>
|
24
|
-
|
25
|
-
<% end %>
|