decidim-participatory_processes 0.30.1 → 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.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/participatory_process_groups/content_blocks/main_data/content.erb +1 -1
  3. data/app/cells/decidim/participatory_process_groups/content_blocks/main_data_cell.rb +1 -15
  4. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats/show.erb +74 -0
  5. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_cell.rb +29 -0
  6. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/citizen_influence.erb +32 -0
  7. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/inclusiveness.erb +69 -0
  8. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/informativeness.erb +29 -0
  9. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/show.erb +10 -0
  10. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form_cell.rb +81 -0
  11. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_settings_form/show.erb +3 -1
  12. data/app/cells/decidim/participatory_processes/content_blocks/main_data_cell.rb +10 -2
  13. data/app/cells/decidim/participatory_processes/indicator/show.erb +11 -0
  14. data/app/cells/decidim/participatory_processes/indicator_cell.rb +25 -0
  15. data/app/cells/decidim/participatory_processes/process_dropdown_metadata/metadata.erb +0 -7
  16. data/app/cells/decidim/participatory_processes/process_filters_cell.rb +2 -0
  17. data/app/cells/decidim/participatory_processes/process_step/show.erb +1 -1
  18. data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +1 -1
  19. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb +1 -1
  20. data/app/commands/decidim/participatory_processes/admin/{copy_participatory_process.rb → duplicate_participatory_process.rb} +25 -26
  21. data/app/commands/decidim/participatory_processes/admin/import_participatory_process.rb +1 -1
  22. data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +16 -4
  23. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb +1 -1
  24. data/app/controllers/decidim/participatory_processes/admin/{participatory_process_copies_controller.rb → participatory_process_duplicates_controller.rb} +7 -7
  25. data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_controller.rb +4 -0
  26. data/app/controllers/decidim/participatory_processes/admin/participatory_process_groups_controller.rb +3 -3
  27. data/app/controllers/decidim/participatory_processes/admin/participatory_process_imports_controller.rb +1 -1
  28. data/app/controllers/decidim/participatory_processes/admin/participatory_process_landing_page_controller.rb +4 -0
  29. data/app/controllers/decidim/participatory_processes/admin/participatory_process_steps_controller.rb +2 -2
  30. data/app/controllers/decidim/participatory_processes/admin/participatory_processes_controller.rb +3 -3
  31. data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +0 -9
  32. data/app/forms/decidim/participatory_processes/admin/{participatory_process_copy_form.rb → participatory_process_duplicate_form.rb} +5 -5
  33. data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +2 -1
  34. data/app/forms/decidim/participatory_processes/admin/participatory_process_group_form.rb +0 -1
  35. data/app/helpers/decidim/participatory_processes/application_helper.rb +14 -0
  36. data/app/models/decidim/participatory_process.rb +4 -4
  37. data/app/models/decidim/participatory_process_group.rb +9 -0
  38. data/app/permissions/decidim/participatory_processes/permissions.rb +6 -6
  39. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_group_presenter.rb +0 -1
  40. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +0 -1
  41. data/app/presenters/decidim/participatory_processes/participatory_process_democratic_quality_stats_presenter.rb +312 -0
  42. data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +1 -11
  43. data/app/presenters/decidim/participatory_processes/participatory_process_presenter.rb +35 -1
  44. data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +1 -3
  45. data/app/queries/decidim/participatory_processes/participatory_processes_stats_followers_count.rb +31 -0
  46. data/app/queries/decidim/participatory_processes/participatory_processes_stats_participants_count.rb +27 -0
  47. data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +7 -5
  48. data/app/views/decidim/participatory_processes/admin/{participatory_process_copies → participatory_process_duplicates}/_form.html.erb +5 -5
  49. data/app/views/decidim/participatory_processes/admin/participatory_process_duplicates/new.html.erb +19 -0
  50. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb +3 -7
  51. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb +31 -15
  52. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/_form.html.erb +1 -1
  53. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/index.html.erb +39 -21
  54. data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/index.html.erb +42 -24
  55. data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +10 -14
  56. data/app/views/decidim/participatory_processes/admin/participatory_processes/_process_row.html.erb +125 -53
  57. data/app/views/decidim/participatory_processes/admin/participatory_processes/edit.html.erb +0 -8
  58. data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +2 -2
  59. data/app/views/decidim/participatory_processes/admin/participatory_processes/manage_trash.html.erb +2 -1
  60. data/app/views/layouts/decidim/admin/_manage_processes.html.erb +1 -1
  61. data/app/views/layouts/decidim/admin/participatory_process_group.html.erb +1 -1
  62. data/config/assets.rb +2 -2
  63. data/config/locales/ar.yml +0 -19
  64. data/config/locales/bg.yml +0 -30
  65. data/config/locales/bs-BA.yml +0 -4
  66. data/config/locales/ca-IT.yml +321 -27
  67. data/config/locales/ca.yml +321 -27
  68. data/config/locales/cs.yml +96 -29
  69. data/config/locales/de.yml +135 -37
  70. data/config/locales/el.yml +0 -26
  71. data/config/locales/en.yml +303 -24
  72. data/config/locales/es-MX.yml +323 -29
  73. data/config/locales/es-PY.yml +323 -29
  74. data/config/locales/es.yml +321 -27
  75. data/config/locales/eu.yml +306 -27
  76. data/config/locales/fi-plain.yml +308 -27
  77. data/config/locales/fi.yml +305 -24
  78. data/config/locales/fr-CA.yml +89 -27
  79. data/config/locales/fr.yml +89 -27
  80. data/config/locales/ga-IE.yml +0 -7
  81. data/config/locales/gl.yml +0 -24
  82. data/config/locales/hu.yml +0 -26
  83. data/config/locales/id-ID.yml +0 -19
  84. data/config/locales/is-IS.yml +0 -13
  85. data/config/locales/it.yml +0 -25
  86. data/config/locales/ja.yml +125 -27
  87. data/config/locales/lb.yml +0 -21
  88. data/config/locales/lt.yml +0 -27
  89. data/config/locales/lv.yml +0 -20
  90. data/config/locales/nl.yml +0 -25
  91. data/config/locales/no.yml +0 -27
  92. data/config/locales/pl.yml +16 -30
  93. data/config/locales/pt-BR.yml +0 -28
  94. data/config/locales/pt.yml +0 -25
  95. data/config/locales/ro-RO.yml +2 -26
  96. data/config/locales/ru.yml +0 -17
  97. data/config/locales/sk.yml +0 -20
  98. data/config/locales/sr-CS.yml +0 -4
  99. data/config/locales/sv.yml +90 -28
  100. data/config/locales/tr-TR.yml +0 -25
  101. data/config/locales/uk.yml +0 -17
  102. data/config/locales/zh-CN.yml +0 -23
  103. data/config/locales/zh-TW.yml +0 -26
  104. data/db/migrate/20250403110052_add_democratic_quality_static_page.rb +34 -0
  105. data/db/migrate/20250605114136_remove_hashtag_from_participatory_processes.rb +7 -0
  106. data/db/migrate/20250605114415_remove_hashtag_from_participatory_processes_groups.rb +7 -0
  107. data/decidim-participatory_processes.gemspec +3 -0
  108. data/lib/decidim/api/participatory_process_group_type.rb +9 -0
  109. data/lib/decidim/api/participatory_process_input_filter.rb +0 -1
  110. data/lib/decidim/api/participatory_process_step_type.rb +2 -0
  111. data/lib/decidim/api/participatory_process_type.rb +17 -11
  112. data/lib/decidim/participatory_processes/admin_engine.rb +1 -1
  113. data/lib/decidim/participatory_processes/content_blocks/registry_manager.rb +25 -5
  114. data/lib/decidim/participatory_processes/engine.rb +22 -25
  115. data/lib/decidim/participatory_processes/menu.rb +1 -1
  116. data/lib/decidim/participatory_processes/participatory_space.rb +1 -4
  117. data/lib/decidim/participatory_processes/seeds.rb +3 -5
  118. data/lib/decidim/participatory_processes/test/factories.rb +2 -3
  119. data/lib/decidim/participatory_processes/version.rb +1 -1
  120. metadata +72 -22
  121. data/app/cells/decidim/participatory_processes/content_blocks/metrics_cell.rb +0 -25
  122. data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +0 -21
  123. data/app/queries/decidim/participatory_processes/metrics/participatory_process_followers_metric_measure.rb +0 -31
  124. data/app/queries/decidim/participatory_processes/metrics/participatory_processes_metric_manage.rb +0 -27
  125. data/app/queries/decidim/participatory_processes/stats_followers_count.rb +0 -60
  126. data/app/queries/decidim/participatory_processes/stats_participants_count.rb +0 -136
  127. data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +0 -19
  128. data/app/views/decidim/participatory_processes/participatory_processes/all_metrics.html.erb +0 -25
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.30.1
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-06-17 00:00:00.000000000 Z
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.30.1
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.30.1
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.30.1
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.30.1
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.30.1
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.30.1
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.30.1
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.30.1
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/participatory_process_copies_controller.rb
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/participatory_process_copy_form.rb
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/participatory_process_copies/_form.html.erb
238
- - app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb
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
@@ -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
@@ -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
@@ -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
@@ -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 %>