decidim-participatory_processes 0.30.3 → 0.31.0.rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) 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/commands/decidim/participatory_processes/create_democratic_quality_indicators_page.rb +40 -0
  25. data/app/controllers/decidim/participatory_processes/admin/{participatory_process_copies_controller.rb → participatory_process_duplicates_controller.rb} +7 -7
  26. data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_controller.rb +4 -0
  27. data/app/controllers/decidim/participatory_processes/admin/participatory_process_groups_controller.rb +3 -3
  28. data/app/controllers/decidim/participatory_processes/admin/participatory_process_imports_controller.rb +1 -1
  29. data/app/controllers/decidim/participatory_processes/admin/participatory_process_landing_page_controller.rb +4 -0
  30. data/app/controllers/decidim/participatory_processes/admin/participatory_process_steps_controller.rb +2 -2
  31. data/app/controllers/decidim/participatory_processes/admin/participatory_processes_controller.rb +3 -3
  32. data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +0 -9
  33. data/app/forms/decidim/participatory_processes/admin/{participatory_process_copy_form.rb → participatory_process_duplicate_form.rb} +5 -5
  34. data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +2 -1
  35. data/app/forms/decidim/participatory_processes/admin/participatory_process_group_form.rb +0 -1
  36. data/app/helpers/decidim/participatory_processes/application_helper.rb +14 -0
  37. data/app/helpers/decidim/participatory_processes/participatory_process_helper.rb +1 -1
  38. data/app/models/decidim/participatory_process.rb +4 -4
  39. data/app/models/decidim/participatory_process_group.rb +9 -0
  40. data/app/permissions/decidim/participatory_processes/permissions.rb +4 -4
  41. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_group_presenter.rb +0 -1
  42. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +0 -1
  43. data/app/presenters/decidim/participatory_processes/participatory_process_democratic_quality_stats_presenter.rb +312 -0
  44. data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +1 -11
  45. data/app/presenters/decidim/participatory_processes/participatory_process_presenter.rb +35 -1
  46. data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +1 -3
  47. data/app/queries/decidim/participatory_processes/participatory_processes_stats_followers_count.rb +31 -0
  48. data/app/queries/decidim/participatory_processes/participatory_processes_stats_participants_count.rb +27 -0
  49. data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +0 -1
  50. data/app/views/decidim/participatory_processes/admin/{participatory_process_copies → participatory_process_duplicates}/_form.html.erb +5 -5
  51. data/app/views/decidim/participatory_processes/admin/participatory_process_duplicates/new.html.erb +19 -0
  52. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb +3 -7
  53. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb +31 -15
  54. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/_form.html.erb +1 -1
  55. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/index.html.erb +39 -21
  56. data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/index.html.erb +42 -24
  57. data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +10 -14
  58. data/app/views/decidim/participatory_processes/admin/participatory_processes/_process_row.html.erb +125 -53
  59. data/app/views/decidim/participatory_processes/admin/participatory_processes/edit.html.erb +0 -8
  60. data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +2 -2
  61. data/app/views/decidim/participatory_processes/admin/participatory_processes/manage_trash.html.erb +2 -1
  62. data/app/views/layouts/decidim/admin/_manage_processes.html.erb +1 -1
  63. data/app/views/layouts/decidim/admin/participatory_process_group.html.erb +1 -1
  64. data/config/assets.rb +2 -2
  65. data/config/locales/ar.yml +0 -13
  66. data/config/locales/bg.yml +0 -24
  67. data/config/locales/bs-BA.yml +0 -4
  68. data/config/locales/ca-IT.yml +320 -26
  69. data/config/locales/ca.yml +320 -26
  70. data/config/locales/cs.yml +116 -25
  71. data/config/locales/de.yml +124 -26
  72. data/config/locales/el.yml +0 -21
  73. data/config/locales/en.yml +304 -25
  74. data/config/locales/es-MX.yml +320 -26
  75. data/config/locales/es-PY.yml +320 -26
  76. data/config/locales/es.yml +320 -26
  77. data/config/locales/eu.yml +305 -26
  78. data/config/locales/fi-plain.yml +304 -25
  79. data/config/locales/fi.yml +304 -25
  80. data/config/locales/fr-CA.yml +87 -25
  81. data/config/locales/fr.yml +87 -25
  82. data/config/locales/ga-IE.yml +0 -7
  83. data/config/locales/gl.yml +0 -19
  84. data/config/locales/hu.yml +0 -21
  85. data/config/locales/id-ID.yml +0 -13
  86. data/config/locales/is-IS.yml +0 -11
  87. data/config/locales/it.yml +0 -20
  88. data/config/locales/ja.yml +305 -26
  89. data/config/locales/lb.yml +0 -20
  90. data/config/locales/lt.yml +0 -21
  91. data/config/locales/lv.yml +0 -14
  92. data/config/locales/nl.yml +0 -20
  93. data/config/locales/no.yml +0 -21
  94. data/config/locales/pl.yml +16 -24
  95. data/config/locales/pt-BR.yml +0 -23
  96. data/config/locales/pt.yml +0 -20
  97. data/config/locales/ro-RO.yml +2 -21
  98. data/config/locales/ru.yml +0 -11
  99. data/config/locales/sk.yml +0 -14
  100. data/config/locales/sr-CS.yml +0 -4
  101. data/config/locales/sv.yml +87 -25
  102. data/config/locales/tr-TR.yml +0 -20
  103. data/config/locales/uk.yml +0 -11
  104. data/config/locales/zh-CN.yml +0 -17
  105. data/config/locales/zh-TW.yml +0 -21
  106. data/db/migrate/20250403110052_add_democratic_quality_static_page.rb +17 -0
  107. data/db/migrate/20250605114136_remove_hashtag_from_participatory_processes.rb +7 -0
  108. data/db/migrate/20250605114415_remove_hashtag_from_participatory_processes_groups.rb +7 -0
  109. data/decidim-participatory_processes.gemspec +3 -0
  110. data/lib/decidim/api/participatory_process_group_type.rb +9 -0
  111. data/lib/decidim/api/participatory_process_input_filter.rb +0 -1
  112. data/lib/decidim/api/participatory_process_step_type.rb +2 -0
  113. data/lib/decidim/api/participatory_process_type.rb +17 -11
  114. data/lib/decidim/participatory_processes/admin_engine.rb +1 -1
  115. data/lib/decidim/participatory_processes/content_blocks/registry_manager.rb +25 -5
  116. data/lib/decidim/participatory_processes/engine.rb +30 -25
  117. data/lib/decidim/participatory_processes/participatory_space.rb +1 -4
  118. data/lib/decidim/participatory_processes/seeds.rb +5 -5
  119. data/lib/decidim/participatory_processes/test/factories.rb +2 -3
  120. data/lib/decidim/participatory_processes/version.rb +1 -1
  121. metadata +72 -21
  122. data/app/cells/decidim/participatory_processes/content_blocks/metrics_cell.rb +0 -25
  123. data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +0 -21
  124. data/app/queries/decidim/participatory_processes/metrics/participatory_process_followers_metric_measure.rb +0 -31
  125. data/app/queries/decidim/participatory_processes/metrics/participatory_processes_metric_manage.rb +0 -27
  126. data/app/queries/decidim/participatory_processes/stats_followers_count.rb +0 -60
  127. data/app/queries/decidim/participatory_processes/stats_participants_count.rb +0 -136
  128. data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +0 -19
  129. 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.3
4
+ version: 0.31.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -18,56 +18,98 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.30.3
21
+ version: 0.31.0.rc2
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.3
28
+ version: 0.31.0.rc2
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.rc2
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.rc2
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.3
49
+ version: 0.31.0.rc2
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.3
56
+ version: 0.31.0.rc2
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.rc2
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.rc2
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.3
77
+ version: 0.31.0.rc2
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.3
84
+ version: 0.31.0.rc2
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.3
91
+ version: 0.31.0.rc2
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.rc2
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.rc2
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.3
112
+ version: 0.31.0.rc2
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,16 +173,17 @@ 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
134
184
  - app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb
135
185
  - app/commands/decidim/participatory_processes/admin/update_participatory_process_step.rb
186
+ - app/commands/decidim/participatory_processes/create_democratic_quality_indicators_page.rb
136
187
  - app/constraints/decidim/participatory_processes/current_component.rb
137
188
  - app/constraints/decidim/participatory_processes/current_participatory_process.rb
138
189
  - app/controllers/concerns/decidim/participatory_processes/admin/filterable.rb
@@ -147,7 +198,7 @@ files:
147
198
  - app/controllers/decidim/participatory_processes/admin/moderations_controller.rb
148
199
  - app/controllers/decidim/participatory_processes/admin/participatory_process_attachment_collections_controller.rb
149
200
  - app/controllers/decidim/participatory_processes/admin/participatory_process_attachments_controller.rb
150
- - app/controllers/decidim/participatory_processes/admin/participatory_process_copies_controller.rb
201
+ - app/controllers/decidim/participatory_processes/admin/participatory_process_duplicates_controller.rb
151
202
  - app/controllers/decidim/participatory_processes/admin/participatory_process_exports_controller.rb
152
203
  - app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_content_blocks_controller.rb
153
204
  - app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_controller.rb
@@ -172,7 +223,7 @@ files:
172
223
  - app/events/decidim/participatory_process_role_assigned_event.rb
173
224
  - app/events/decidim/participatory_process_step_activated_event.rb
174
225
  - app/events/decidim/participatory_process_step_changed_event.rb
175
- - app/forms/decidim/participatory_processes/admin/participatory_process_copy_form.rb
226
+ - app/forms/decidim/participatory_processes/admin/participatory_process_duplicate_form.rb
176
227
  - app/forms/decidim/participatory_processes/admin/participatory_process_form.rb
177
228
  - app/forms/decidim/participatory_processes/admin/participatory_process_group_form.rb
178
229
  - app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb
@@ -200,9 +251,9 @@ files:
200
251
  - app/presenters/decidim/participatory_processes/admin_log/participatory_process_user_role_presenter.rb
201
252
  - app/presenters/decidim/participatory_processes/admin_log/step_presenter.rb
202
253
  - app/presenters/decidim/participatory_processes/admin_log/value_types/role_presenter.rb
254
+ - app/presenters/decidim/participatory_processes/participatory_process_democratic_quality_stats_presenter.rb
203
255
  - app/presenters/decidim/participatory_processes/participatory_process_group_presenter.rb
204
256
  - app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb
205
- - app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb
206
257
  - app/presenters/decidim/participatory_processes/participatory_process_presenter.rb
207
258
  - app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb
208
259
  - app/queries/decidim/participatory_processes/admin/admin_users.rb
@@ -212,8 +263,6 @@ files:
212
263
  - app/queries/decidim/participatory_processes/group_participatory_processes.rb
213
264
  - app/queries/decidim/participatory_processes/group_published_participatory_processes.rb
214
265
  - 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
266
  - app/queries/decidim/participatory_processes/organization_participatory_process_groups.rb
218
267
  - app/queries/decidim/participatory_processes/organization_participatory_processes.rb
219
268
  - app/queries/decidim/participatory_processes/organization_prioritized_participatory_process_groups.rb
@@ -221,12 +270,12 @@ files:
221
270
  - app/queries/decidim/participatory_processes/organization_promoted_participatory_process_groups.rb
222
271
  - app/queries/decidim/participatory_processes/organization_published_participatory_processes.rb
223
272
  - app/queries/decidim/participatory_processes/participatory_processes_by_group.rb
273
+ - app/queries/decidim/participatory_processes/participatory_processes_stats_followers_count.rb
274
+ - app/queries/decidim/participatory_processes/participatory_processes_stats_participants_count.rb
224
275
  - app/queries/decidim/participatory_processes/prioritized_participatory_processes.rb
225
276
  - app/queries/decidim/participatory_processes/promoted_participatory_process_groups.rb
226
277
  - app/queries/decidim/participatory_processes/promoted_participatory_processes.rb
227
278
  - 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
279
  - app/queries/decidim/participatory_processes/visible_participatory_process_groups.rb
231
280
  - app/queries/decidim/participatory_processes/visible_participatory_processes.rb
232
281
  - app/serializers/decidim/participatory_processes/open_data_participatory_process_serializer.rb
@@ -234,8 +283,8 @@ files:
234
283
  - app/serializers/decidim/participatory_processes/participatory_process_serializer.rb
235
284
  - app/views/decidim/participatory_process_groups/_participatory_process_group.html.erb
236
285
  - 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
286
+ - app/views/decidim/participatory_processes/admin/participatory_process_duplicates/_form.html.erb
287
+ - app/views/decidim/participatory_processes/admin/participatory_process_duplicates/new.html.erb
239
288
  - app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb
240
289
  - app/views/decidim/participatory_processes/admin/participatory_process_groups/edit.html.erb
241
290
  - app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb
@@ -261,7 +310,6 @@ files:
261
310
  - app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb
262
311
  - app/views/decidim/participatory_processes/participatory_process_groups/show.js.erb
263
312
  - app/views/decidim/participatory_processes/participatory_processes/_collection.html.erb
264
- - app/views/decidim/participatory_processes/participatory_processes/all_metrics.html.erb
265
313
  - app/views/decidim/participatory_processes/participatory_processes/index.html.erb
266
314
  - app/views/decidim/participatory_processes/participatory_processes/index.js.erb
267
315
  - app/views/decidim/participatory_processes/participatory_processes/show.html.erb
@@ -410,6 +458,9 @@ files:
410
458
  - db/migrate/20241108141423_remove_column_show_metrics_from_participatory_processes.rb
411
459
  - db/migrate/20241108141514_remove_column_banner_image_from_participatory_processes.rb
412
460
  - db/migrate/20241108141605_remove_column_show_statistics_from_participatory_processes.rb
461
+ - db/migrate/20250403110052_add_democratic_quality_static_page.rb
462
+ - db/migrate/20250605114136_remove_hashtag_from_participatory_processes.rb
463
+ - db/migrate/20250605114415_remove_hashtag_from_participatory_processes_groups.rb
413
464
  - decidim-participatory_processes.gemspec
414
465
  - lib/decidim/api/participatory_process_group_type.rb
415
466
  - 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 %>