decidim-admin 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 (255) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/admin/update_organization.rb +18 -3
  3. data/app/controllers/concerns/decidim/admin/content_blocks/landing_page_content_blocks.rb +1 -1
  4. data/app/controllers/concerns/decidim/admin/filterable.rb +1 -1
  5. data/app/controllers/decidim/admin/area_types_controller.rb +2 -2
  6. data/app/controllers/decidim/admin/areas_controller.rb +2 -2
  7. data/app/controllers/decidim/admin/block_user_controller.rb +2 -2
  8. data/app/controllers/decidim/admin/component_permissions_controller.rb +1 -1
  9. data/app/controllers/decidim/admin/components_controller.rb +2 -2
  10. data/app/controllers/decidim/admin/concerns/has_attachment_collections.rb +2 -2
  11. data/app/controllers/decidim/admin/concerns/has_attachments.rb +2 -2
  12. data/app/controllers/decidim/admin/concerns/has_private_users.rb +3 -3
  13. data/app/controllers/decidim/admin/concerns/has_private_users_csv_import.rb +1 -1
  14. data/app/controllers/decidim/admin/conflicts_controller.rb +1 -1
  15. data/app/controllers/decidim/admin/dashboard_controller.rb +0 -9
  16. data/app/controllers/decidim/admin/impersonations_controller.rb +1 -1
  17. data/app/controllers/decidim/admin/imports_controller.rb +1 -1
  18. data/app/controllers/decidim/admin/managed_users/promotions_controller.rb +1 -1
  19. data/app/controllers/decidim/admin/newsletters_controller.rb +4 -4
  20. data/app/controllers/decidim/admin/organization_appearance_controller.rb +1 -3
  21. data/app/controllers/decidim/admin/organization_controller.rb +3 -5
  22. data/app/controllers/decidim/admin/organization_external_domain_allowlist_controller.rb +1 -1
  23. data/app/controllers/decidim/admin/organization_homepage_controller.rb +4 -0
  24. data/app/controllers/decidim/admin/participatory_space/user_role_controller.rb +2 -2
  25. data/app/controllers/decidim/admin/reminders_controller.rb +1 -1
  26. data/app/controllers/decidim/admin/resource_permissions_controller.rb +1 -1
  27. data/app/controllers/decidim/admin/scope_types_controller.rb +2 -2
  28. data/app/controllers/decidim/admin/scopes_controller.rb +2 -2
  29. data/app/controllers/decidim/admin/share_tokens_controller.rb +8 -8
  30. data/app/controllers/decidim/admin/static_page_topics_controller.rb +2 -2
  31. data/app/controllers/decidim/admin/static_pages_controller.rb +2 -2
  32. data/app/controllers/decidim/admin/statistics_controller.rb +34 -0
  33. data/app/controllers/decidim/admin/taxonomies_controller.rb +2 -2
  34. data/app/controllers/decidim/admin/taxonomy_filters_controller.rb +2 -2
  35. data/app/controllers/decidim/admin/taxonomy_items_controller.rb +2 -2
  36. data/app/controllers/decidim/admin/users_controller.rb +1 -1
  37. data/app/forms/decidim/admin/block_user_form.rb +1 -1
  38. data/app/forms/decidim/admin/block_users_form.rb +1 -1
  39. data/app/forms/decidim/admin/organization_form.rb +35 -6
  40. data/app/helpers/decidim/admin/filterable_helper.rb +27 -8
  41. data/app/helpers/decidim/admin/icon_link_helper.rb +2 -3
  42. data/app/helpers/decidim/admin/icon_with_tooltip_helper.rb +1 -2
  43. data/app/helpers/decidim/admin/imports_helper.rb +0 -5
  44. data/app/helpers/decidim/admin/menu_helper.rb +3 -2
  45. data/app/helpers/decidim/admin/moderations/reports_helper.rb +1 -1
  46. data/app/helpers/decidim/admin/resource_permissions_helper.rb +13 -13
  47. data/app/helpers/decidim/admin/settings_helper.rb +11 -3
  48. data/app/jobs/decidim/admin/newsletter_job.rb +1 -0
  49. data/app/packs/entrypoints/decidim_admin.js +2 -3
  50. data/app/packs/entrypoints/decidim_admin.scss +1 -1
  51. data/app/packs/entrypoints/decidim_admin_overrides.scss +1 -1
  52. data/app/packs/src/decidim/admin/admin_autocomplete.js +2 -2
  53. data/app/packs/src/decidim/admin/application.js +11 -10
  54. data/app/packs/src/decidim/admin/budget_rule_toggler.component.js +84 -34
  55. data/app/packs/src/decidim/admin/controllers/slug/controller.js +25 -0
  56. data/app/packs/src/decidim/admin/controllers/slug/slug.test.js +239 -0
  57. data/app/packs/src/decidim/admin/css_preview.js +1 -1
  58. data/app/packs/src/decidim/admin/draggable-list.js +1 -1
  59. data/app/packs/src/decidim/admin/draggable-table.js +1 -1
  60. data/app/packs/src/decidim/admin/dynamic_fields.component.js +13 -12
  61. data/app/packs/src/decidim/admin/external_domain_allowlist.js +1 -1
  62. data/app/packs/src/decidim/admin/form.js +21 -4
  63. data/app/packs/src/decidim/admin/global_moderations.js +2 -2
  64. data/app/packs/src/decidim/admin/managed_moderated_users.js +2 -2
  65. data/app/packs/src/decidim/admin/moderations.js +1 -1
  66. data/app/packs/src/decidim/admin/newsletters.js +1 -1
  67. data/app/packs/src/decidim/admin/officializations.js +1 -1
  68. data/app/packs/src/decidim/admin/participatory_space_search.js +2 -2
  69. data/app/packs/src/decidim/admin/proposal_infinite_edit.js +1 -1
  70. data/app/packs/src/decidim/admin/resources_permissions.js +1 -1
  71. data/app/packs/src/decidim/admin/sortable.js +1 -1
  72. data/app/packs/src/decidim/admin/sync_radio_buttons.js +1 -1
  73. data/app/packs/src/decidim/admin/tab_focus.js +1 -1
  74. data/app/packs/src/decidim/admin/text_copy.js +1 -1
  75. data/app/packs/src/decidim/admin/triadic_color_picker.js +1 -1
  76. data/app/packs/stylesheets/decidim/admin/_datepicker.scss +2 -2
  77. data/app/packs/stylesheets/decidim/admin/_dropdown.scss +12 -2
  78. data/app/packs/stylesheets/decidim/admin/_filters.scss +1 -57
  79. data/app/packs/stylesheets/decidim/admin/_forms.scss +1 -10
  80. data/app/packs/stylesheets/decidim/admin/_item_edit.scss +2 -10
  81. data/app/packs/stylesheets/decidim/admin/_item_show.scss +1 -5
  82. data/app/packs/stylesheets/decidim/admin/_legacy_foundation.scss +0 -412
  83. data/app/packs/stylesheets/decidim/admin/_main-nav.scss +75 -3
  84. data/app/packs/stylesheets/decidim/admin/_secondary-nav.scss +6 -10
  85. data/app/packs/stylesheets/decidim/admin/_select_picker.scss +1 -1
  86. data/app/packs/stylesheets/decidim/admin/_sidebar-menu.scss +2 -2
  87. data/app/packs/stylesheets/decidim/admin/_table-list.scss +25 -7
  88. data/app/packs/stylesheets/decidim/admin/_tabs.scss +4 -0
  89. data/app/packs/stylesheets/decidim/admin/_taxonomies.scss +6 -2
  90. data/app/packs/stylesheets/decidim/admin/application.scss +28 -29
  91. data/app/permissions/decidim/admin/permissions.rb +17 -5
  92. data/app/presenters/decidim/admin/dashboard_statistic_charts_presenter.rb +18 -0
  93. data/app/queries/decidim/admin/user_filter.rb +3 -3
  94. data/app/views/decidim/admin/area_types/index.html.erb +34 -11
  95. data/app/views/decidim/admin/areas/index.html.erb +32 -12
  96. data/app/views/decidim/admin/attachment_collections/index.html.erb +42 -14
  97. data/app/views/decidim/admin/attachments/index.html.erb +32 -13
  98. data/app/views/decidim/admin/block_user/bulk_new.html.erb +1 -1
  99. data/app/views/decidim/admin/block_user/new.html.erb +1 -1
  100. data/app/views/decidim/admin/components/_actions.html.erb +114 -54
  101. data/app/views/decidim/admin/components/_component_row.html.erb +5 -5
  102. data/app/views/decidim/admin/components/_components_table.html.erb +1 -1
  103. data/app/views/decidim/admin/components/_form.html.erb +4 -4
  104. data/app/views/decidim/admin/components/index.html.erb +12 -13
  105. data/app/views/decidim/admin/dashboard/show.html.erb +9 -21
  106. data/app/views/decidim/admin/exports/_dropdown.html.erb +16 -14
  107. data/app/views/decidim/admin/help_sections/_form.html.erb +1 -1
  108. data/app/views/decidim/admin/impersonatable_users/index.html.erb +68 -33
  109. data/app/views/decidim/admin/imports/_dropdown.html.erb +13 -11
  110. data/app/views/decidim/admin/imports/new.html.erb +13 -12
  111. data/app/views/decidim/admin/moderated_users/bulk_actions/_dropdown.html.erb +29 -32
  112. data/app/views/decidim/admin/moderated_users/index.html.erb +61 -21
  113. data/app/views/decidim/admin/moderations/_moderation-tr.html.erb +87 -32
  114. data/app/views/decidim/admin/moderations/_report.html.erb +2 -4
  115. data/app/views/decidim/admin/moderations/bulk_actions/_dropdown.html.erb +30 -34
  116. data/app/views/decidim/admin/moderations/index.html.erb +1 -1
  117. data/app/views/decidim/admin/moderations/reports/index.html.erb +1 -2
  118. data/app/views/decidim/admin/newsletters/index.html.erb +64 -21
  119. data/app/views/decidim/admin/officializations/index.html.erb +91 -32
  120. data/app/views/decidim/admin/organization/_form.html.erb +6 -92
  121. data/app/views/decidim/admin/organization/edit.html.erb +1 -5
  122. data/app/views/decidim/admin/organization/form/_admin_terms_of_service.html.erb +15 -0
  123. data/app/views/decidim/admin/organization/form/_basic_configuration.html.erb +31 -0
  124. data/app/views/decidim/admin/{organization_appearance → organization}/form/_colors.html.erb +9 -9
  125. data/app/views/decidim/admin/organization/form/_extra_features.html.erb +84 -0
  126. data/app/views/decidim/admin/{organization_appearance/form/_images.html.erb → organization/form/_logos.html.erb} +4 -4
  127. data/app/views/decidim/admin/organization/form/_welcome_notification.html.erb +25 -0
  128. data/app/views/decidim/admin/organization_external_domain_allowlist/_external_domain.html.erb +8 -6
  129. data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +49 -22
  130. data/app/views/decidim/admin/resource_permissions/edit.html.erb +1 -1
  131. data/app/views/decidim/admin/scope_types/index.html.erb +31 -12
  132. data/app/views/decidim/admin/scopes/index.html.erb +40 -13
  133. data/app/views/decidim/admin/share_tokens/_form.html.erb +1 -1
  134. data/app/views/decidim/admin/share_tokens/edit.html.erb +1 -1
  135. data/app/views/decidim/admin/share_tokens/index.html.erb +69 -12
  136. data/app/views/decidim/admin/share_tokens/new.html.erb +1 -1
  137. data/app/views/decidim/admin/shared/_filters.html.erb +8 -10
  138. data/app/views/decidim/admin/shared/landing_page/_content_blocks.html.erb +14 -11
  139. data/app/views/decidim/admin/shared/landing_page_content_blocks/edit.html.erb +2 -4
  140. data/app/views/decidim/admin/static_page_topics/index.html.erb +31 -10
  141. data/app/views/decidim/admin/static_pages/_form.html.erb +1 -1
  142. data/app/views/decidim/admin/static_pages/_topic.html.erb +46 -16
  143. data/app/views/decidim/admin/statistics/_statistics.html.erb +13 -0
  144. data/app/views/decidim/admin/statistics/index.html.erb +6 -0
  145. data/app/views/decidim/admin/taxonomies/_form.html.erb +1 -1
  146. data/app/views/decidim/admin/taxonomies/_row.html.erb +24 -6
  147. data/app/views/decidim/admin/taxonomies/_table.html.erb +2 -2
  148. data/app/views/decidim/admin/taxonomies/_taxonomy_actions.html.erb +48 -15
  149. data/app/views/decidim/admin/taxonomies/edit.html.erb +10 -0
  150. data/app/views/decidim/admin/taxonomy_filters/_form.html.erb +1 -1
  151. data/app/views/decidim/admin/taxonomy_filters/_table.html.erb +52 -15
  152. data/app/views/decidim/admin/taxonomy_filters/new.html.erb +1 -1
  153. data/app/views/decidim/admin/taxonomy_filters_selector/_component_table.html.erb +38 -23
  154. data/app/views/decidim/admin/taxonomy_items/_form.html.erb +1 -1
  155. data/app/views/decidim/admin/users/index.html.erb +48 -24
  156. data/app/views/layouts/decidim/admin/_application.html.erb +3 -6
  157. data/app/views/layouts/decidim/admin/_header.html.erb +3 -1
  158. data/app/views/layouts/decidim/admin/_js_configuration.html.erb +11 -12
  159. data/app/views/layouts/decidim/admin/_sidebar_menu.html.erb +1 -1
  160. data/app/views/layouts/decidim/admin/_title_bar.html.erb +4 -4
  161. data/app/views/layouts/decidim/admin/_title_bar_responsive.html.erb +4 -4
  162. data/app/views/layouts/decidim/admin/insights.html.erb +6 -0
  163. data/config/assets.rb +2 -2
  164. data/config/locales/ar.yml +2 -86
  165. data/config/locales/bg.yml +4 -105
  166. data/config/locales/bs-BA.yml +0 -44
  167. data/config/locales/ca-IT.yml +59 -117
  168. data/config/locales/ca.yml +59 -117
  169. data/config/locales/cs.yml +51 -119
  170. data/config/locales/de.yml +63 -121
  171. data/config/locales/el.yml +5 -97
  172. data/config/locales/en.yml +61 -119
  173. data/config/locales/eo.yml +0 -4
  174. data/config/locales/es-MX.yml +60 -118
  175. data/config/locales/es-PY.yml +60 -118
  176. data/config/locales/es.yml +60 -118
  177. data/config/locales/eu.yml +65 -123
  178. data/config/locales/fi-plain.yml +62 -109
  179. data/config/locales/fi.yml +62 -109
  180. data/config/locales/fr-CA.yml +69 -120
  181. data/config/locales/fr.yml +69 -120
  182. data/config/locales/ga-IE.yml +4 -28
  183. data/config/locales/gl.yml +3 -89
  184. data/config/locales/he-IL.yml +0 -8
  185. data/config/locales/hu.yml +5 -100
  186. data/config/locales/id-ID.yml +0 -58
  187. data/config/locales/is-IS.yml +1 -36
  188. data/config/locales/it.yml +202 -96
  189. data/config/locales/ja.yml +61 -110
  190. data/config/locales/kaa.yml +0 -12
  191. data/config/locales/ko.yml +0 -76
  192. data/config/locales/lb.yml +5 -89
  193. data/config/locales/lt.yml +4 -99
  194. data/config/locales/lv.yml +2 -70
  195. data/config/locales/nl.yml +5 -90
  196. data/config/locales/no.yml +5 -89
  197. data/config/locales/pl.yml +5 -103
  198. data/config/locales/pt-BR.yml +130 -105
  199. data/config/locales/pt.yml +2 -90
  200. data/config/locales/ro-RO.yml +13 -97
  201. data/config/locales/ru.yml +2 -50
  202. data/config/locales/sk.yml +2 -68
  203. data/config/locales/sl.yml +1 -18
  204. data/config/locales/sq-AL.yml +0 -43
  205. data/config/locales/sr-CS.yml +1 -44
  206. data/config/locales/sv.yml +59 -120
  207. data/config/locales/th-TH.yml +0 -5
  208. data/config/locales/tr-TR.yml +6 -83
  209. data/config/locales/uk.yml +1 -45
  210. data/config/locales/val-ES.yml +0 -1
  211. data/config/locales/zh-CN.yml +0 -68
  212. data/config/locales/zh-TW.yml +4 -97
  213. data/config/routes.rb +1 -12
  214. data/lib/decidim/admin/engine.rb +5 -1
  215. data/lib/decidim/admin/form_builder.rb +1 -1
  216. data/lib/decidim/admin/menu.rb +32 -16
  217. data/lib/decidim/admin/test/filterable_examples.rb +8 -18
  218. data/lib/decidim/admin/test/invite_participatory_space_admins_shared_examples.rb +4 -4
  219. data/lib/decidim/admin/test/invite_participatory_space_collaborators_shared_examples.rb +2 -2
  220. data/lib/decidim/admin/test/invite_participatory_space_moderators_shared_examples.rb +9 -6
  221. data/lib/decidim/admin/test/invite_participatory_space_users_shared_context.rb +1 -0
  222. data/lib/decidim/admin/test/manage_attachment_collections_examples.rb +5 -1
  223. data/lib/decidim/admin/test/manage_attachments_examples.rb +5 -1
  224. data/lib/decidim/admin/test/manage_component_permissions_examples.rb +31 -4
  225. data/lib/decidim/admin/test/manage_moderations_examples.rb +12 -5
  226. data/lib/decidim/admin/test/manage_participatory_space_publications_examples.rb +12 -6
  227. data/lib/decidim/admin/test/manage_resource_soft_deletion_examples.rb +19 -4
  228. data/lib/decidim/admin/test/manage_taxonomy_filters_examples.rb +28 -8
  229. data/lib/decidim/admin/version.rb +1 -1
  230. metadata +22 -35
  231. data/app/commands/decidim/admin/process_user_group_verification_csv.rb +0 -44
  232. data/app/commands/decidim/admin/reject_user_group.rb +0 -42
  233. data/app/commands/decidim/admin/update_organization_appearance.rb +0 -39
  234. data/app/commands/decidim/admin/update_user_groups.rb +0 -44
  235. data/app/commands/decidim/admin/verify_user_group.rb +0 -43
  236. data/app/controllers/concerns/decidim/admin/user_groups/filterable.rb +0 -45
  237. data/app/controllers/concerns/decidim/admin/user_groups.rb +0 -24
  238. data/app/controllers/decidim/admin/metrics_controller.rb +0 -23
  239. data/app/controllers/decidim/admin/user_groups_controller.rb +0 -76
  240. data/app/controllers/decidim/admin/user_groups_csv_verifications_controller.rb +0 -36
  241. data/app/forms/decidim/admin/organization_appearance_form.rb +0 -88
  242. data/app/forms/decidim/admin/user_group_csv_verification_form.rb +0 -25
  243. data/app/jobs/decidim/admin/verify_user_group_from_csv_job.rb +0 -30
  244. data/app/packs/src/decidim/admin/welcome_notification.js +0 -32
  245. data/app/packs/stylesheets/decidim/admin/_bulk_actions.scss +0 -16
  246. data/app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb +0 -33
  247. data/app/queries/decidim/admin/user_groups_evaluation.rb +0 -56
  248. data/app/views/decidim/admin/metrics/_metrics.html.erb +0 -16
  249. data/app/views/decidim/admin/metrics/index.html.erb +0 -7
  250. data/app/views/decidim/admin/organization_appearance/_form.html.erb +0 -100
  251. data/app/views/decidim/admin/organization_appearance/edit.html.erb +0 -18
  252. data/app/views/decidim/admin/organization_appearance/form/_header_snippets.html.erb +0 -17
  253. data/app/views/decidim/admin/user_groups/index.html.erb +0 -68
  254. data/app/views/decidim/admin/user_groups_csv_verifications/new.html.erb +0 -31
  255. /data/app/views/decidim/admin/{organization_appearance → organization}/form/_minimap.html.erb +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-admin
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-04 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: active_link_to
@@ -32,14 +32,14 @@ dependencies:
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.30.1
35
+ version: 0.31.0.rc1
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.30.1
42
+ version: 0.31.0.rc1
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: devise
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -94,28 +94,28 @@ dependencies:
94
94
  requirements:
95
95
  - - '='
96
96
  - !ruby/object:Gem::Version
97
- version: 0.30.1
97
+ version: 0.31.0.rc1
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - '='
103
103
  - !ruby/object:Gem::Version
104
- version: 0.30.1
104
+ version: 0.31.0.rc1
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: decidim-participatory_processes
107
107
  requirement: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - '='
110
110
  - !ruby/object:Gem::Version
111
- version: 0.30.1
111
+ version: 0.31.0.rc1
112
112
  type: :development
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - '='
117
117
  - !ruby/object:Gem::Version
118
- version: 0.30.1
118
+ version: 0.31.0.rc1
119
119
  description: Organization administration to manage a single organization.
120
120
  email:
121
121
  - josepjaume@gmail.com
@@ -182,11 +182,9 @@ files:
182
182
  - app/commands/decidim/admin/participatory_space/unpublish.rb
183
183
  - app/commands/decidim/admin/participatory_space/update_admin.rb
184
184
  - app/commands/decidim/admin/process_participatory_space_private_user_import_csv.rb
185
- - app/commands/decidim/admin/process_user_group_verification_csv.rb
186
185
  - app/commands/decidim/admin/promote_managed_user.rb
187
186
  - app/commands/decidim/admin/publish_all_participatory_space_private_users.rb
188
187
  - app/commands/decidim/admin/publish_component.rb
189
- - app/commands/decidim/admin/reject_user_group.rb
190
188
  - app/commands/decidim/admin/remove_admin.rb
191
189
  - app/commands/decidim/admin/reorder_components.rb
192
190
  - app/commands/decidim/admin/reorder_taxonomies.rb
@@ -208,7 +206,6 @@ files:
208
206
  - app/commands/decidim/admin/update_help_sections.rb
209
207
  - app/commands/decidim/admin/update_newsletter.rb
210
208
  - app/commands/decidim/admin/update_organization.rb
211
- - app/commands/decidim/admin/update_organization_appearance.rb
212
209
  - app/commands/decidim/admin/update_organization_tos_version.rb
213
210
  - app/commands/decidim/admin/update_participatory_space_private_user.rb
214
211
  - app/commands/decidim/admin/update_resource_permissions.rb
@@ -219,8 +216,6 @@ files:
219
216
  - app/commands/decidim/admin/update_static_page_topic.rb
220
217
  - app/commands/decidim/admin/update_taxonomy.rb
221
218
  - app/commands/decidim/admin/update_taxonomy_filter.rb
222
- - app/commands/decidim/admin/update_user_groups.rb
223
- - app/commands/decidim/admin/verify_user_group.rb
224
219
  - app/constraints/decidim/admin/organization_dashboard_constraint.rb
225
220
  - app/controllers/concerns/decidim/admin/component_taxonomies_helper.rb
226
221
  - app/controllers/concerns/decidim/admin/content_blocks/landing_page.rb
@@ -235,8 +230,6 @@ files:
235
230
  - app/controllers/concerns/decidim/admin/participatory_space_admin_context.rb
236
231
  - app/controllers/concerns/decidim/admin/participatory_space_export.rb
237
232
  - app/controllers/concerns/decidim/admin/taxonomies/filterable.rb
238
- - app/controllers/concerns/decidim/admin/user_groups.rb
239
- - app/controllers/concerns/decidim/admin/user_groups/filterable.rb
240
233
  - app/controllers/concerns/decidim/admin/verification_conflicts/filterable.rb
241
234
  - app/controllers/concerns/decidim/moderated_users/admin/filterable.rb
242
235
  - app/controllers/concerns/decidim/moderations/admin/filterable.rb
@@ -269,7 +262,6 @@ files:
269
262
  - app/controllers/decidim/admin/logs_controller.rb
270
263
  - app/controllers/decidim/admin/managed_users/impersonation_logs_controller.rb
271
264
  - app/controllers/decidim/admin/managed_users/promotions_controller.rb
272
- - app/controllers/decidim/admin/metrics_controller.rb
273
265
  - app/controllers/decidim/admin/moderated_users_controller.rb
274
266
  - app/controllers/decidim/admin/moderations/reports_controller.rb
275
267
  - app/controllers/decidim/admin/moderations_controller.rb
@@ -291,12 +283,11 @@ files:
291
283
  - app/controllers/decidim/admin/static_page_content_blocks_controller.rb
292
284
  - app/controllers/decidim/admin/static_page_topics_controller.rb
293
285
  - app/controllers/decidim/admin/static_pages_controller.rb
286
+ - app/controllers/decidim/admin/statistics_controller.rb
294
287
  - app/controllers/decidim/admin/taxonomies_controller.rb
295
288
  - app/controllers/decidim/admin/taxonomy_filters_controller.rb
296
289
  - app/controllers/decidim/admin/taxonomy_filters_selector_controller.rb
297
290
  - app/controllers/decidim/admin/taxonomy_items_controller.rb
298
- - app/controllers/decidim/admin/user_groups_controller.rb
299
- - app/controllers/decidim/admin/user_groups_csv_verifications_controller.rb
300
291
  - app/controllers/decidim/admin/users_controller.rb
301
292
  - app/events/decidim/attachment_created_event.rb
302
293
  - app/events/decidim/component_published_event.rb
@@ -320,7 +311,6 @@ files:
320
311
  - app/forms/decidim/admin/managed_user_promotion_form.rb
321
312
  - app/forms/decidim/admin/newsletter_form.rb
322
313
  - app/forms/decidim/admin/officialization_form.rb
323
- - app/forms/decidim/admin/organization_appearance_form.rb
324
314
  - app/forms/decidim/admin/organization_external_domain_allowlist_form.rb
325
315
  - app/forms/decidim/admin/organization_form.rb
326
316
  - app/forms/decidim/admin/participatory_space_admin_user_form.rb
@@ -339,7 +329,6 @@ files:
339
329
  - app/forms/decidim/admin/taxonomy_form.rb
340
330
  - app/forms/decidim/admin/taxonomy_item_form.rb
341
331
  - app/forms/decidim/admin/transfer_user_form.rb
342
- - app/forms/decidim/admin/user_group_csv_verification_form.rb
343
332
  - app/helpers/decidim/admin/admin_terms_helper.rb
344
333
  - app/helpers/decidim/admin/application_helper.rb
345
334
  - app/helpers/decidim/admin/areas_helper.rb
@@ -370,7 +359,6 @@ files:
370
359
  - app/jobs/decidim/admin/import_participatory_space_private_user_csv_job.rb
371
360
  - app/jobs/decidim/admin/newsletter_delivery_job.rb
372
361
  - app/jobs/decidim/admin/newsletter_job.rb
373
- - app/jobs/decidim/admin/verify_user_group_from_csv_job.rb
374
362
  - app/models/decidim/admin/fake_newsletter.rb
375
363
  - app/packs/entrypoints/decidim_admin.js
376
364
  - app/packs/entrypoints/decidim_admin.scss
@@ -382,6 +370,8 @@ files:
382
370
  - app/packs/src/decidim/admin/auto_label_by_position.component.js
383
371
  - app/packs/src/decidim/admin/budget_rule_toggler.component.js
384
372
  - app/packs/src/decidim/admin/choose_language.js
373
+ - app/packs/src/decidim/admin/controllers/slug/controller.js
374
+ - app/packs/src/decidim/admin/controllers/slug/slug.test.js
385
375
  - app/packs/src/decidim/admin/css_preview.js
386
376
  - app/packs/src/decidim/admin/draggable-list.js
387
377
  - app/packs/src/decidim/admin/draggable-table.js
@@ -408,8 +398,6 @@ files:
408
398
  - app/packs/src/decidim/admin/text_copy.js
409
399
  - app/packs/src/decidim/admin/toggle_nav.js
410
400
  - app/packs/src/decidim/admin/triadic_color_picker.js
411
- - app/packs/src/decidim/admin/welcome_notification.js
412
- - app/packs/stylesheets/decidim/admin/_bulk_actions.scss
413
401
  - app/packs/stylesheets/decidim/admin/_cards.scss
414
402
  - app/packs/stylesheets/decidim/admin/_color_picker.scss
415
403
  - app/packs/stylesheets/decidim/admin/_component-show.scss
@@ -441,7 +429,7 @@ files:
441
429
  - app/permissions/decidim/admin/permissions.rb
442
430
  - app/permissions/decidim/admin/user_manager_permissions.rb
443
431
  - app/presenters/decidim/admin/aside_menu_presenter.rb
444
- - app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb
432
+ - app/presenters/decidim/admin/dashboard_statistic_charts_presenter.rb
445
433
  - app/presenters/decidim/admin/secondary_menu_presenter.rb
446
434
  - app/presenters/decidim/admin/simple_menu_presenter.rb
447
435
  - app/queries/decidim/admin/active_users_counter.rb
@@ -449,7 +437,6 @@ files:
449
437
  - app/queries/decidim/admin/moderation_stats.rb
450
438
  - app/queries/decidim/admin/newsletter_recipients.rb
451
439
  - app/queries/decidim/admin/user_filter.rb
452
- - app/queries/decidim/admin/user_groups_evaluation.rb
453
440
  - app/views/decidim/admin/admin_terms/show.html.erb
454
441
  - app/views/decidim/admin/area_types/_form.html.erb
455
442
  - app/views/decidim/admin/area_types/edit.html.erb
@@ -504,8 +491,6 @@ files:
504
491
  - app/views/decidim/admin/managed_users/impersonation_logs/index.html.erb
505
492
  - app/views/decidim/admin/managed_users/promotions/_form.html.erb
506
493
  - app/views/decidim/admin/managed_users/promotions/new.html.erb
507
- - app/views/decidim/admin/metrics/_metrics.html.erb
508
- - app/views/decidim/admin/metrics/index.html.erb
509
494
  - app/views/decidim/admin/moderated_users/_bulk-actions.html.erb
510
495
  - app/views/decidim/admin/moderated_users/_report.html.erb
511
496
  - app/views/decidim/admin/moderated_users/bulk_actions/_block.html.erb
@@ -539,12 +524,13 @@ files:
539
524
  - app/views/decidim/admin/officializations/show_email.html.erb
540
525
  - app/views/decidim/admin/organization/_form.html.erb
541
526
  - app/views/decidim/admin/organization/edit.html.erb
542
- - app/views/decidim/admin/organization_appearance/_form.html.erb
543
- - app/views/decidim/admin/organization_appearance/edit.html.erb
544
- - app/views/decidim/admin/organization_appearance/form/_colors.html.erb
545
- - app/views/decidim/admin/organization_appearance/form/_header_snippets.html.erb
546
- - app/views/decidim/admin/organization_appearance/form/_images.html.erb
547
- - app/views/decidim/admin/organization_appearance/form/_minimap.html.erb
527
+ - app/views/decidim/admin/organization/form/_admin_terms_of_service.html.erb
528
+ - app/views/decidim/admin/organization/form/_basic_configuration.html.erb
529
+ - app/views/decidim/admin/organization/form/_colors.html.erb
530
+ - app/views/decidim/admin/organization/form/_extra_features.html.erb
531
+ - app/views/decidim/admin/organization/form/_logos.html.erb
532
+ - app/views/decidim/admin/organization/form/_minimap.html.erb
533
+ - app/views/decidim/admin/organization/form/_welcome_notification.html.erb
548
534
  - app/views/decidim/admin/organization_external_domain_allowlist/_external_domain.html.erb
549
535
  - app/views/decidim/admin/organization_external_domain_allowlist/_form.html.erb
550
536
  - app/views/decidim/admin/organization_external_domain_allowlist/edit.html.erb
@@ -586,6 +572,8 @@ files:
586
572
  - app/views/decidim/admin/static_pages/edit.html.erb
587
573
  - app/views/decidim/admin/static_pages/index.html.erb
588
574
  - app/views/decidim/admin/static_pages/new.html.erb
575
+ - app/views/decidim/admin/statistics/_statistics.html.erb
576
+ - app/views/decidim/admin/statistics/index.html.erb
589
577
  - app/views/decidim/admin/taxonomies/_filters.html.erb
590
578
  - app/views/decidim/admin/taxonomies/_form.html.erb
591
579
  - app/views/decidim/admin/taxonomies/_row.html.erb
@@ -610,8 +598,6 @@ files:
610
598
  - app/views/decidim/admin/taxonomy_items/_form.html.erb
611
599
  - app/views/decidim/admin/taxonomy_items/edit.html.erb
612
600
  - app/views/decidim/admin/taxonomy_items/new.html.erb
613
- - app/views/decidim/admin/user_groups/index.html.erb
614
- - app/views/decidim/admin/user_groups_csv_verifications/new.html.erb
615
601
  - app/views/decidim/admin/users/_form.html.erb
616
602
  - app/views/decidim/admin/users/index.html.erb
617
603
  - app/views/decidim/admin/users/new.html.erb
@@ -627,6 +613,7 @@ files:
627
613
  - app/views/layouts/decidim/admin/_title_bar_responsive.html.erb
628
614
  - app/views/layouts/decidim/admin/application.html.erb
629
615
  - app/views/layouts/decidim/admin/global_moderations.html.erb
616
+ - app/views/layouts/decidim/admin/insights.html.erb
630
617
  - app/views/layouts/decidim/admin/newsletters.erb
631
618
  - app/views/layouts/decidim/admin/settings.html.erb
632
619
  - app/views/layouts/decidim/admin/taxonomy_filters.html.erb
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "csv"
4
-
5
- module Decidim
6
- module Admin
7
- # A command with all the business logic when processing the CSV to verify
8
- # user groups.
9
- class ProcessUserGroupVerificationCsv < Decidim::Command
10
- include Decidim::Admin::CustomImport
11
-
12
- # Public: Initializes the command.
13
- #
14
- # form - the form object containing the uploaded file
15
- def initialize(form)
16
- @form = form
17
- end
18
-
19
- # Executes the command. Broadcasts these events:
20
- #
21
- # - :ok when everything is valid.
22
- # - :invalid if the form was not valid and we could not proceed.
23
- #
24
- # Returns nothing.
25
- def call
26
- return broadcast(:invalid) unless @form.valid?
27
-
28
- process_csv
29
- broadcast(:ok)
30
- end
31
-
32
- private
33
-
34
- def process_csv
35
- verifier = @form.current_user
36
- organization = @form.current_organization
37
-
38
- process_import_file(@form.file) do |(email)|
39
- VerifyUserGroupFromCsvJob.perform_later(email, verifier, organization) if email.present?
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- # A command with all the business logic when rejecting a user_group.
6
- class RejectUserGroup < Decidim::Command
7
- # Public: Initializes the command.
8
- #
9
- # user_group - The user_group to reject
10
- # current_user - The user performing the action
11
- def initialize(user_group, current_user)
12
- @user_group = user_group
13
- @current_user = current_user
14
- end
15
-
16
- # Executes the command. Broadcasts these events:
17
- #
18
- # - :ok when everything is valid.
19
- # - :invalid if the form was not valid and we could not proceed.
20
- #
21
- # Returns nothing.
22
- def call
23
- return broadcast(:invalid) unless @user_group.valid?
24
-
25
- reject_user_group
26
- broadcast(:ok)
27
- end
28
-
29
- private
30
-
31
- def reject_user_group
32
- Decidim.traceability.perform_action!(
33
- "reject",
34
- @user_group,
35
- @current_user
36
- ) do
37
- @user_group.reject!
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- # A command with all the business logic for updating the current
6
- # organization appearance.
7
- class UpdateOrganizationAppearance < Decidim::Commands::UpdateResource
8
- fetch_file_attributes :logo, :highlighted_content_banner_image, :favicon, :official_img_footer
9
-
10
- fetch_form_attributes :cta_button_path, :cta_button_text, :description, :official_url,
11
- :highlighted_content_banner_enabled, :highlighted_content_banner_action_url,
12
- :highlighted_content_banner_title, :highlighted_content_banner_short_description,
13
- :highlighted_content_banner_action_title,
14
- :highlighted_content_banner_action_subtitle, :enable_omnipresent_banner, :omnipresent_banner_url,
15
- :omnipresent_banner_title, :omnipresent_banner_short_description
16
-
17
- private
18
-
19
- def attributes
20
- super
21
- .merge(colors_attributes)
22
- .delete_if { |_k, val| val.is_a?(Decidim::ApplicationUploader) }
23
- .tap do |attributes|
24
- attributes[:header_snippets] = form.header_snippets if Decidim.enable_html_header_snippets
25
- end
26
- end
27
-
28
- def colors_attributes
29
- {
30
- colors: {
31
- primary: form.primary_color,
32
- secondary: form.secondary_color,
33
- tertiary: form.tertiary_color
34
- }.compact_blank
35
- }
36
- end
37
- end
38
- end
39
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- # A command with all the business logic when updating a usergroup.
6
- class UpdateUserGroups < Decidim::Command
7
- # Public: Initializes the command.
8
- #
9
- # scope - The Scope to update
10
- # form - A form object with the params.
11
- def initialize(user_group)
12
- @user_group = user_group
13
- @form = form
14
- end
15
-
16
- # Executes the command. Broadcasts these events:
17
- #
18
- # - :ok when everything is valid.
19
- # - :invalid if the form was not valid and we could not proceed.
20
- #
21
- # Returns nothing.
22
- def call
23
- return broadcast(:invalid) if form.invalid?
24
-
25
- update_scope
26
- broadcast(:ok)
27
- end
28
-
29
- private
30
-
31
- attr_reader :form
32
-
33
- def update_scope
34
- @scope.update!(attributes)
35
- end
36
-
37
- def attributes
38
- {
39
- name: form.name
40
- }
41
- end
42
- end
43
- end
44
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- # A command with all the business logic when verifying a user_group.
6
- class VerifyUserGroup < Decidim::Command
7
- # Public: Initializes the command.
8
- #
9
- # user_group - The user_group to verify
10
- # current_user - the user performing the action
11
- def initialize(user_group, current_user, via_csv: false)
12
- @user_group = user_group
13
- @current_user = current_user
14
- @via_csv = via_csv
15
- end
16
-
17
- # Executes the command. Broadcasts these events:
18
- #
19
- # - :ok when everything is valid.
20
- #
21
- # Returns nothing.
22
- def call
23
- return broadcast(:invalid) unless @user_group.valid?
24
-
25
- verify_user_group
26
- broadcast(:ok)
27
- end
28
-
29
- private
30
-
31
- def verify_user_group
32
- action = @via_csv ? "verify_via_csv" : "verify"
33
- Decidim.traceability.perform_action!(
34
- action,
35
- @user_group,
36
- @current_user
37
- ) do
38
- @user_group.verify!
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "active_support/concern"
4
-
5
- module Decidim
6
- module Admin
7
- module UserGroups
8
- module Filterable
9
- extend ActiveSupport::Concern
10
-
11
- included do
12
- include Decidim::Admin::Filterable
13
-
14
- private
15
-
16
- def base_query
17
- collection
18
- end
19
-
20
- def search_field_predicate
21
- :name_or_nickname_or_email_cont
22
- end
23
-
24
- def filters
25
- [
26
- :state_eq
27
- ]
28
- end
29
-
30
- def filters_with_values
31
- {
32
- state_eq: user_groups_states
33
- }
34
- end
35
-
36
- protected
37
-
38
- def user_groups_states
39
- %w(all pending rejected verified)
40
- end
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "active_support/concern"
4
-
5
- module Decidim
6
- module Admin
7
- # The UserGroups concern must be included in all controllers related
8
- # to UserGroups feature. It adds a method to enforce that the feature
9
- # is enabled.
10
- module UserGroups
11
- extend ActiveSupport::Concern
12
-
13
- included do
14
- delegate :user_groups_enabled?, to: :current_organization
15
-
16
- helper_method :user_groups_enabled?
17
- end
18
-
19
- def enforce_user_groups_enabled
20
- raise Decidim::ActionForbidden unless current_organization.user_groups_enabled?
21
- end
22
- end
23
- end
24
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- class MetricsController < Decidim::Admin::ApplicationController
6
- helper_method :metrics_presenter
7
-
8
- def index
9
- enforce_permission_to :read, :metrics
10
- end
11
-
12
- private
13
-
14
- def metrics_presenter
15
- @metrics_presenter ||= Decidim::Admin::DashboardMetricChartsPresenter.new(
16
- summary: false,
17
- organization: current_organization,
18
- view_context:
19
- )
20
- end
21
- end
22
- end
23
- end
@@ -1,76 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- # Controller that allows managing user groups at the admin panel.
6
- #
7
- class UserGroupsController < Decidim::Admin::ApplicationController
8
- include UserGroups
9
- include Decidim::Admin::UserGroups::Filterable
10
-
11
- before_action :enforce_user_groups_enabled
12
-
13
- layout "decidim/admin/users"
14
-
15
- add_breadcrumb_item_from_menu :admin_user_menu
16
-
17
- def index
18
- enforce_permission_to :index, :user_group
19
-
20
- @user_groups = filtered_collection
21
- end
22
-
23
- def verify
24
- @user_group = collection.find(params[:id])
25
- enforce_permission_to :verify, :user_group, user_group: @user_group
26
-
27
- VerifyUserGroup.call(@user_group, current_user) do
28
- on(:ok) do
29
- flash[:notice] = I18n.t("user_group.verify.success", scope: "decidim.admin")
30
- redirect_back(fallback_location: decidim_admin.user_groups_path)
31
- end
32
-
33
- on(:invalid) do
34
- flash[:alert] = I18n.t("user_group.verify.invalid", scope: "decidim.admin")
35
- redirect_back(fallback_location: decidim_admin.user_groups_path)
36
- end
37
- end
38
- end
39
-
40
- def reject
41
- @user_group = collection.find(params[:id])
42
- enforce_permission_to :reject, :user_group, user_group: @user_group
43
-
44
- RejectUserGroup.call(@user_group, current_user) do
45
- on(:ok) do
46
- flash[:notice] = I18n.t("user_group.reject.success", scope: "decidim.admin")
47
- redirect_back(fallback_location: decidim_admin.user_groups_path)
48
- end
49
-
50
- on(:invalid) do
51
- flash[:alert] = I18n.t("user_group.reject.invalid", scope: "decidim.admin")
52
- redirect_back(fallback_location: decidim_admin.user_groups_path)
53
- end
54
- end
55
- end
56
-
57
- private
58
-
59
- def filtered_collection
60
- paginate(query.result)
61
- end
62
-
63
- def base_query
64
- Decidim::Admin::UserGroupsEvaluation.for(collection, @query, @state)
65
- end
66
-
67
- def collection
68
- UserGroup
69
- .left_outer_joins(:memberships)
70
- .select("decidim_users.*, COUNT(decidim_user_group_memberships.decidim_user_group_id) as users_count")
71
- .where(decidim_user_group_memberships: { decidim_user_id: current_organization.users })
72
- .group(Arel.sql("decidim_users.id"))
73
- end
74
- end
75
- end
76
- end
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- # Controller that allows batch verifying user groups by uploading a CSV file.
6
- class UserGroupsCsvVerificationsController < Decidim::Admin::ApplicationController
7
- include UserGroups
8
-
9
- before_action :enforce_user_groups_enabled
10
-
11
- layout "decidim/admin/users"
12
-
13
- def new
14
- enforce_permission_to :csv_verify, :user_group
15
- @form = form(UserGroupCsvVerificationForm).instance
16
- end
17
-
18
- def create
19
- enforce_permission_to :csv_verify, :user_group
20
- @form = form(UserGroupCsvVerificationForm).from_params(params)
21
-
22
- ProcessUserGroupVerificationCsv.call(@form) do
23
- on(:ok) do
24
- flash[:notice] = I18n.t("user_group.csv_verify.success", scope: "decidim.admin")
25
- redirect_to decidim_admin.user_groups_path
26
- end
27
-
28
- on(:invalid) do
29
- flash[:alert] = I18n.t("user_group.csv_verify.invalid", scope: "decidim.admin")
30
- render :new
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end