decidim-core 0.30.2 → 0.31.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (774) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -4
  3. data/app/cells/decidim/activity_cell.rb +0 -3
  4. data/app/cells/decidim/address/show.erb +1 -0
  5. data/app/cells/decidim/address_cell.rb +7 -1
  6. data/app/cells/decidim/amendable/amend_button_card/show.erb +2 -2
  7. data/app/cells/decidim/author/likes.erb +4 -0
  8. data/app/cells/decidim/author/show.erb +1 -3
  9. data/app/cells/decidim/author_cell.rb +5 -28
  10. data/app/cells/decidim/badge_cell.rb +1 -7
  11. data/app/cells/decidim/card_cell.rb +2 -12
  12. data/app/cells/decidim/card_metadata_cell.rb +4 -4
  13. data/app/cells/decidim/coauthorships_cell.rb +1 -1
  14. data/app/cells/decidim/collapsible_authors/show.erb +1 -1
  15. data/app/cells/decidim/content_blocks/hero_cell.rb +23 -4
  16. data/app/cells/decidim/content_blocks/hero_settings_form/show.erb +16 -2
  17. data/app/cells/decidim/content_blocks/highlighted_content_banner/show.erb +6 -6
  18. data/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb +28 -1
  19. data/app/cells/decidim/content_blocks/highlighted_content_banner_settings_form/show.erb +27 -0
  20. data/app/cells/decidim/content_blocks/highlighted_content_banner_settings_form_cell.rb +13 -0
  21. data/app/cells/decidim/content_blocks/highlighted_elements_for_component_settings_form/show.erb +9 -2
  22. data/app/cells/decidim/content_blocks/html_settings_form/show.erb +3 -1
  23. data/app/cells/decidim/content_blocks/last_activity_cell.rb +1 -1
  24. data/app/cells/decidim/content_blocks/last_activity_settings_form/show.erb +3 -1
  25. data/app/cells/decidim/content_blocks/menu_breadcrumb_last_activity_cell.rb +1 -1
  26. data/app/cells/decidim/content_blocks/participatory_space_extra_data/recent_users.erb +1 -1
  27. data/app/cells/decidim/content_blocks/participatory_space_hero/show.erb +0 -5
  28. data/app/cells/decidim/content_blocks/participatory_space_hero_cell.rb +1 -13
  29. data/app/cells/decidim/content_blocks/participatory_space_hero_settings_form/show.erb +10 -3
  30. data/app/cells/decidim/content_blocks/participatory_space_last_activity/content.erb +1 -1
  31. data/app/cells/decidim/content_blocks/participatory_space_last_activity/recent_avatars.erb +1 -1
  32. data/app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb +3 -3
  33. data/app/cells/decidim/content_blocks/participatory_space_main_data/title.erb +17 -5
  34. data/app/cells/decidim/content_blocks/participatory_space_main_data_cell.rb +4 -0
  35. data/app/cells/decidim/content_blocks/stats/show.erb +2 -3
  36. data/app/cells/decidim/data_consent/modal.erb +1 -1
  37. data/app/cells/decidim/like_block/show.erb +3 -0
  38. data/app/cells/decidim/{endorsement_block_cell.rb → like_block_cell.rb} +2 -2
  39. data/app/cells/decidim/like_buttons/button_content.erb +2 -0
  40. data/app/cells/decidim/like_buttons/show.erb +17 -0
  41. data/app/cells/decidim/{endorsement_buttons → like_buttons}/verification_modal.erb +3 -3
  42. data/app/cells/decidim/like_buttons_cell.rb +77 -0
  43. data/app/cells/decidim/likers_list/empty.erb +3 -0
  44. data/app/cells/decidim/{endorsers_list → likers_list}/full.erb +3 -3
  45. data/app/cells/decidim/likers_list/show.erb +20 -0
  46. data/app/cells/decidim/likers_list_cell.rb +64 -0
  47. data/app/cells/decidim/nav_links/show.erb +1 -1
  48. data/app/cells/decidim/notification_actions/buttons_cell.rb +1 -1
  49. data/app/cells/decidim/onboarding_action_message_cell.rb +1 -1
  50. data/app/cells/decidim/participatory_space_dropdown_metadata/metadata.erb +0 -8
  51. data/app/cells/decidim/participatory_space_dropdown_metadata_cell.rb +0 -8
  52. data/app/cells/decidim/profile/details.erb +1 -1
  53. data/app/cells/decidim/profile/tabs.erb +1 -1
  54. data/app/cells/decidim/profile_actions/show.erb +0 -1
  55. data/app/cells/decidim/profile_actions_cell.rb +5 -91
  56. data/app/cells/decidim/profile_cell.rb +4 -39
  57. data/app/cells/decidim/report_button/content.erb +2 -0
  58. data/app/cells/decidim/report_button/flag_modal.erb +1 -1
  59. data/app/cells/decidim/report_button_cell.rb +1 -1
  60. data/app/cells/decidim/report_user_button/flag_modal.erb +1 -1
  61. data/app/cells/decidim/resource_history_cell.rb +2 -1
  62. data/app/cells/decidim/resource_types_filter/show.erb +1 -1
  63. data/app/cells/decidim/share_button_cell.rb +1 -1
  64. data/app/cells/decidim/share_text_widget/modal.erb +16 -0
  65. data/app/cells/decidim/share_text_widget/show.erb +2 -0
  66. data/app/cells/decidim/share_text_widget_cell.rb +27 -0
  67. data/app/cells/decidim/share_widget/modal.erb +19 -8
  68. data/app/cells/decidim/share_widget/qr_code_modal.erb +26 -0
  69. data/app/cells/decidim/share_widget/show.erb +1 -0
  70. data/app/cells/decidim/share_widget_cell.rb +10 -6
  71. data/app/cells/decidim/statistic/show.erb +23 -5
  72. data/app/cells/decidim/statistic_cell.rb +28 -3
  73. data/app/cells/decidim/tab_panels/show.erb +1 -1
  74. data/app/cells/decidim/user_profile/show.erb +1 -1
  75. data/app/cells/decidim/user_profile_cell.rb +1 -9
  76. data/app/cells/decidim/version_author_cell.rb +0 -7
  77. data/app/commands/decidim/amendable/accept.rb +1 -3
  78. data/app/commands/decidim/amendable/create_draft.rb +2 -3
  79. data/app/commands/decidim/amendable/update_draft.rb +2 -3
  80. data/app/commands/decidim/create_ephemeral_user.rb +7 -1
  81. data/app/commands/decidim/create_omniauth_registration.rb +8 -7
  82. data/app/commands/decidim/create_report.rb +9 -1
  83. data/app/commands/decidim/destroy_account.rb +0 -5
  84. data/app/commands/decidim/like_resource.rb +52 -0
  85. data/app/commands/decidim/messaging/reply_to_conversation.rb +2 -21
  86. data/app/commands/decidim/messaging/start_conversation.rb +2 -21
  87. data/app/commands/decidim/unlike_resource.rb +34 -0
  88. data/app/commands/decidim/update_account.rb +1 -1
  89. data/app/controllers/concerns/decidim/ephemeral_session_checker.rb +6 -2
  90. data/app/controllers/concerns/decidim/user_profile.rb +0 -1
  91. data/app/controllers/decidim/account_controller.rb +1 -1
  92. data/app/controllers/decidim/amendments_controller.rb +4 -5
  93. data/app/controllers/decidim/application_controller.rb +2 -1
  94. data/app/controllers/decidim/devise/confirmations_controller.rb +0 -5
  95. data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +1 -1
  96. data/app/controllers/decidim/devise/passwords_controller.rb +1 -1
  97. data/app/controllers/decidim/devise/registrations_controller.rb +1 -1
  98. data/app/controllers/decidim/doorkeeper/authorizations_controller.rb +19 -1
  99. data/app/controllers/decidim/download_your_data_controller.rb +2 -2
  100. data/app/controllers/decidim/likes_controller.rb +57 -0
  101. data/app/controllers/decidim/links_controller.rb +1 -0
  102. data/app/controllers/decidim/messaging/conversations_controller.rb +1 -8
  103. data/app/controllers/decidim/newsletters_controller.rb +1 -1
  104. data/app/controllers/decidim/notifications_settings_controller.rb +2 -2
  105. data/app/controllers/decidim/pages_controller.rb +0 -1
  106. data/app/controllers/decidim/profiles_controller.rb +2 -57
  107. data/app/controllers/decidim/qr_controller.rb +73 -0
  108. data/app/controllers/decidim/resource_autocomplete_controller.rb +56 -0
  109. data/app/controllers/decidim/user_activities_controller.rb +0 -1
  110. data/app/events/decidim/resource_liked_event.rb +36 -0
  111. data/app/forms/decidim/amendable/create_form.rb +0 -1
  112. data/app/forms/decidim/amendable/edit_form.rb +0 -1
  113. data/app/forms/decidim/amendable/form.rb +4 -4
  114. data/app/forms/decidim/ephemeral_user_form.rb +1 -0
  115. data/app/forms/decidim/notifications_settings_form.rb +1 -1
  116. data/app/forms/decidim/omniauth_registration_form.rb +1 -1
  117. data/app/forms/decidim/upload_validation_form.rb +9 -1
  118. data/app/helpers/decidim/amendments_helper.rb +1 -2
  119. data/app/helpers/decidim/animations_helper.rb +14 -0
  120. data/app/helpers/decidim/decidim_form_helper.rb +17 -6
  121. data/app/helpers/decidim/layout_helper.rb +1 -15
  122. data/app/helpers/decidim/likeable_helper.rb +46 -0
  123. data/app/helpers/decidim/messaging/conversation_helper.rb +1 -1
  124. data/app/helpers/decidim/omniauth_helper.rb +1 -1
  125. data/app/helpers/decidim/qr_code_helper.rb +37 -0
  126. data/app/helpers/decidim/rich_text_editor_helper.rb +0 -1
  127. data/app/helpers/decidim/sanitize_helper.rb +5 -5
  128. data/app/helpers/decidim/social_share_button_helper.rb +11 -10
  129. data/app/jobs/decidim/delete_inactive_participants_job.rb +41 -0
  130. data/app/jobs/decidim/process_inactive_participant_job.rb +48 -0
  131. data/app/mailers/decidim/participants_account_mailer.rb +38 -0
  132. data/app/mailers/decidim/user_group_mailer.rb +28 -0
  133. data/app/models/decidim/action_log.rb +3 -5
  134. data/app/models/decidim/amendment.rb +1 -1
  135. data/app/models/decidim/attachment_collection.rb +2 -0
  136. data/app/models/decidim/authorization_transfer.rb +0 -1
  137. data/app/models/decidim/coauthorship.rb +1 -1
  138. data/app/models/decidim/component.rb +4 -1
  139. data/app/models/decidim/{endorsement.rb → like.rb} +4 -4
  140. data/app/models/decidim/messaging/conversation.rb +3 -5
  141. data/app/models/decidim/messaging/message.rb +3 -15
  142. data/app/models/decidim/omniauth_provider.rb +1 -1
  143. data/app/models/decidim/organization.rb +3 -8
  144. data/app/models/decidim/participatory_space_role_config/{valuator.rb → evaluator.rb} +1 -1
  145. data/app/models/decidim/reminder_record.rb +1 -1
  146. data/app/models/decidim/searchable_resource.rb +16 -0
  147. data/app/models/decidim/taxonomy.rb +6 -1
  148. data/app/models/decidim/user.rb +32 -15
  149. data/app/models/decidim/user_base_entity.rb +2 -2
  150. data/app/packs/entrypoints/decidim_conference_diploma.scss +2 -2
  151. data/app/packs/entrypoints/decidim_core.scss +2 -2
  152. data/app/packs/entrypoints/decidim_editor.js +0 -4
  153. data/app/packs/entrypoints/decidim_map.scss +2 -2
  154. data/app/packs/entrypoints/decidim_overrides.scss +1 -1
  155. data/app/packs/entrypoints/decidim_qr.js +1 -0
  156. data/app/packs/images/decidim/remixicon.symbol.svg +3 -3
  157. data/app/packs/src/decidim/a11y.js +1 -120
  158. data/app/packs/src/decidim/append_redirect_url_to_modals.js +1 -1
  159. data/app/packs/src/decidim/attachments/file_or_link_tabs.js +1 -1
  160. data/app/packs/src/decidim/confirm.js +27 -20
  161. data/app/packs/src/decidim/controllers/.keep +0 -0
  162. data/app/packs/src/decidim/controllers/accordion/controller.js +100 -0
  163. data/app/packs/src/decidim/controllers/account_form/account_form.test.js +423 -0
  164. data/app/packs/src/decidim/controllers/account_form/controller.js +69 -0
  165. data/app/packs/src/decidim/{input_character_counter.js → controllers/character_counter/controller.js} +90 -106
  166. data/app/packs/src/decidim/controllers/clipboard_copy/clipboard_copy.test.js +305 -0
  167. data/app/packs/src/decidim/controllers/clipboard_copy/controller.js +403 -0
  168. data/app/packs/src/decidim/controllers/date_picker/controller.js +12 -0
  169. data/app/packs/src/decidim/controllers/delete_account_form/controller.js +45 -0
  170. data/app/packs/src/decidim/controllers/delete_account_form/delete_account_form.test.js +216 -0
  171. data/app/packs/src/decidim/controllers/dropdown/controller.js +125 -0
  172. data/app/packs/src/decidim/controllers/editor/controller.js +8 -0
  173. data/app/packs/src/decidim/controllers/emoji/controller.js +26 -0
  174. data/app/packs/src/decidim/{input_emoji.js → controllers/emoji/emoji.js} +1 -15
  175. data/app/packs/src/decidim/{form_filter.js → controllers/form_filter/controller.js} +68 -51
  176. data/app/packs/src/decidim/controllers/form_filter/form_filter.test.js +648 -0
  177. data/app/packs/src/decidim/controllers/form_validator/controller.js +23 -0
  178. data/app/packs/src/decidim/controllers/form_validator/form_validator.js +789 -0
  179. data/app/packs/src/decidim/controllers/form_validator/form_validator.test.js +685 -0
  180. data/app/packs/src/decidim/controllers/impersonation_warning/controller.js +137 -0
  181. data/app/packs/src/decidim/controllers/impersonation_warning/impersonation.test.js +382 -0
  182. data/app/packs/src/decidim/controllers/input_tags/controller.js +28 -0
  183. data/app/packs/src/decidim/controllers/mention/controller.js +243 -0
  184. data/app/packs/src/decidim/controllers/mention/input_mentions.test.js +562 -0
  185. data/app/packs/src/decidim/controllers/multiple_mentions/controller.js +215 -0
  186. data/app/packs/src/decidim/controllers/multiple_mentions/input_multiple_mentions.test.js +645 -0
  187. data/app/packs/src/decidim/controllers/notification_action/controller.js +210 -0
  188. data/app/packs/src/decidim/controllers/notification_action/notification_action.test.js +388 -0
  189. data/app/packs/src/decidim/controllers/password_toggler/controller.js +232 -0
  190. data/app/packs/src/decidim/controllers/password_toggler/password_toggler.test.js +229 -0
  191. data/app/packs/src/decidim/controllers/report_form/controller.js +184 -0
  192. data/app/packs/src/decidim/controllers/report_form/report_form_manager.test.js +511 -0
  193. data/app/packs/src/decidim/controllers/scroll_to_last/controller.js +9 -0
  194. data/app/packs/src/decidim/controllers/scroll_to_last/scroll_to_last_child.test.js +225 -0
  195. data/app/packs/src/decidim/controllers/sticky_buttons/controller.js +55 -0
  196. data/app/packs/src/decidim/controllers/sticky_buttons/sticky_buttons.test.js +334 -0
  197. data/app/packs/src/decidim/controllers/sticky_header/controller.js +116 -0
  198. data/app/packs/src/decidim/controllers/sticky_header/sticky_header.test.js +320 -0
  199. data/app/packs/src/decidim/controllers/toggle/controller.js +111 -0
  200. data/app/packs/src/decidim/controllers/toggle/toggle.test.js +260 -0
  201. data/app/packs/src/decidim/controllers/tooltip/controller.js +287 -0
  202. data/app/packs/src/decidim/controllers/tooltip/tooltip.test.js +380 -0
  203. data/app/packs/src/decidim/controllers/user_registration_form/controller.js +160 -0
  204. data/app/packs/src/decidim/controllers/user_registration_form/omniauth_registration_form.test.js +441 -0
  205. data/app/packs/src/decidim/controllers/user_registration_form/user_registration_form.test.js +386 -0
  206. data/app/packs/src/decidim/data_consent/index.js +1 -1
  207. data/app/packs/src/decidim/datalist_select.js +1 -1
  208. data/app/packs/src/decidim/datepicker/form_datepicker.js +1 -1
  209. data/app/packs/src/decidim/datepicker/generate_datepicker.js +2 -2
  210. data/app/packs/src/decidim/datepicker/generate_timepicker.js +2 -2
  211. data/app/packs/src/decidim/direct_uploads/upload_field.js +3 -5
  212. data/app/packs/src/decidim/direct_uploads/upload_modal.js +1 -1
  213. data/app/packs/src/decidim/dropdown_menu.js +1 -1
  214. data/app/packs/src/decidim/editor/common/input_dialog.js +1 -1
  215. data/app/packs/src/decidim/editor/common/suggestion.js +10 -2
  216. data/app/packs/src/decidim/editor/common/upload_dialog.js +1 -1
  217. data/app/packs/src/decidim/editor/extensions/decidim_kit/index.js +7 -7
  218. data/app/packs/src/decidim/editor/extensions/emoji/index.js +2 -3
  219. data/app/packs/src/decidim/editor/extensions/image/index.js +1 -1
  220. data/app/packs/src/decidim/editor/extensions/image/node_view.js +1 -1
  221. data/app/packs/src/decidim/editor/extensions/link/bubble_menu.js +1 -1
  222. data/app/packs/src/decidim/editor/extensions/link/index.js +1 -1
  223. data/app/packs/src/decidim/editor/extensions/mention/index.js +1 -2
  224. data/app/packs/src/decidim/editor/extensions/mention_resource/index.js +69 -0
  225. data/app/packs/src/decidim/editor/extensions/video_embed/index.js +1 -1
  226. data/app/packs/src/decidim/editor/index.js +6 -5
  227. data/app/packs/src/decidim/editor/test/extensions/decidim_kit.test.js +1 -2
  228. data/app/packs/src/decidim/editor/test/extensions/emoji.test.js +17 -0
  229. data/app/packs/src/decidim/editor/test/extensions/heading.test.js +2 -2
  230. data/app/packs/src/decidim/editor/toolbar.js +1 -1
  231. data/app/packs/src/decidim/form_attachments.js +1 -1
  232. data/app/packs/src/decidim/geocoding/attach_input.js +3 -0
  233. data/app/packs/src/decidim/geocoding/provider/here.js +1 -1
  234. data/app/packs/src/decidim/geocoding/provider/photon.js +1 -1
  235. data/app/packs/src/decidim/geocoding/reverse_geocoding.js +2 -2
  236. data/app/packs/src/decidim/geocoding.js +2 -2
  237. data/app/packs/src/decidim/index.js +127 -95
  238. data/app/packs/src/decidim/map/integration/forms.js +1 -1
  239. data/app/packs/src/decidim/map/legacy.js +1 -1
  240. data/app/packs/src/decidim/map/provider/default.js +1 -1
  241. data/app/packs/src/decidim/map/provider/here.js +1 -1
  242. data/app/packs/src/decidim/map.js +1 -1
  243. data/app/packs/src/decidim/{external_link.js → refactor/implementation/external_link.js} +1 -1
  244. data/app/packs/src/decidim/{onboarding_pending_action.js → refactor/integration/onboarding_pending_action.js} +4 -4
  245. data/app/packs/src/decidim/{check_boxes_tree.js → refactor/moved/check_boxes_tree.js} +24 -9
  246. data/app/packs/src/decidim/{i18n.test.js → refactor/moved/i18n.test.js} +1 -1
  247. data/app/packs/src/decidim/{icon.js → refactor/moved/icon.js} +2 -0
  248. data/app/packs/src/decidim/refactor/support/stimulus.js +39 -0
  249. data/app/packs/src/decidim/refactor/test/configuration.test.js +360 -0
  250. data/app/packs/src/decidim/{external_domain_warning.test.js → refactor/test/external_domain_warning.test.js} +1 -1
  251. data/app/packs/src/decidim/{external_link.test.js → refactor/test/external_link.test.js} +1 -1
  252. data/app/packs/src/decidim/results_listing.js +2 -2
  253. data/app/packs/src/decidim/security/selfxss_warning.js +1 -1
  254. data/app/packs/src/decidim/session_timeouter.js +1 -1
  255. data/app/packs/src/decidim/sw/push-permissions.js +1 -1
  256. data/app/packs/src/decidim/utilities/dom.js +1 -1
  257. data/app/packs/stylesheets/decidim/_accordion.scss +37 -3
  258. data/app/packs/stylesheets/decidim/_author.scss +0 -21
  259. data/app/packs/stylesheets/decidim/_buttons.scss +4 -0
  260. data/app/packs/stylesheets/decidim/_callout.scss +1 -1
  261. data/app/packs/stylesheets/decidim/_cards.scss +1 -1
  262. data/app/packs/stylesheets/decidim/_content_blocks.scss +1 -1
  263. data/app/packs/stylesheets/decidim/_cookies.scss +1 -1
  264. data/app/packs/stylesheets/decidim/_datepicker.scss +0 -4
  265. data/app/packs/stylesheets/decidim/_dropdown.scss +56 -19
  266. data/app/packs/stylesheets/decidim/_forms.scss +6 -6
  267. data/app/packs/stylesheets/decidim/_header.scss +17 -1
  268. data/app/packs/stylesheets/decidim/_labels.scss +1 -1
  269. data/app/packs/stylesheets/decidim/_layout.scss +12 -2
  270. data/app/packs/stylesheets/decidim/{_endorsers_list.scss → _likes_list.scss} +1 -1
  271. data/app/packs/stylesheets/decidim/_modal.scss +5 -1
  272. data/app/packs/stylesheets/decidim/_modal_share.scss +83 -9
  273. data/app/packs/stylesheets/decidim/_modal_update.scss +1 -5
  274. data/app/packs/stylesheets/decidim/_participatory_spaces.scss +1 -1
  275. data/app/packs/stylesheets/decidim/_rich_text.scss +13 -0
  276. data/app/packs/stylesheets/decidim/_statistics.scss +35 -3
  277. data/app/packs/stylesheets/decidim/_tooltip.scss +1 -1
  278. data/app/packs/stylesheets/decidim/_typography.scss +6 -0
  279. data/app/packs/stylesheets/decidim/_wizard_steps.scss +1 -1
  280. data/app/packs/stylesheets/decidim/application.scss +76 -76
  281. data/app/packs/stylesheets/decidim/editor.scss +11 -12
  282. data/app/packs/stylesheets/decidim/legacy/email.scss +6 -5
  283. data/app/packs/stylesheets/decidim/map.scss +5 -3
  284. data/app/packs/stylesheets/decidim/qr.scss +65 -0
  285. data/app/permissions/decidim/default_permissions.rb +16 -0
  286. data/app/permissions/decidim/permissions.rb +5 -26
  287. data/app/presenters/decidim/admin_log/base_user_presenter.rb +2 -2
  288. data/app/presenters/decidim/admin_log/organization_presenter.rb +0 -15
  289. data/app/presenters/decidim/home_stats_presenter.rb +4 -54
  290. data/app/presenters/decidim/log/base_presenter.rb +1 -1
  291. data/app/presenters/decidim/menu_item_presenter.rb +10 -3
  292. data/app/presenters/decidim/official_author_presenter.rb +0 -4
  293. data/app/presenters/decidim/participatory_space_private_user_presenter.rb +0 -4
  294. data/app/presenters/decidim/resource_locator_presenter.rb +15 -4
  295. data/app/presenters/decidim/resource_presenter.rb +8 -8
  296. data/app/presenters/decidim/stats_presenter.rb +39 -60
  297. data/app/presenters/decidim/taxonomy_presenter.rb +5 -1
  298. data/app/presenters/decidim/user_presenter.rb +0 -6
  299. data/app/queries/decidim/authorized_users.rb +26 -0
  300. data/app/queries/decidim/inactive_users_query.rb +31 -0
  301. data/app/queries/decidim/public_activities.rb +2 -2
  302. data/app/queries/decidim/stats_followers_count.rb +43 -0
  303. data/app/queries/decidim/stats_participants_count.rb +102 -0
  304. data/app/serializers/decidim/exporters/open_data_user_serializer.rb +1 -5
  305. data/app/serializers/decidim/exporters/participatory_space_serializer.rb +0 -1
  306. data/app/services/decidim/action_logger.rb +2 -1
  307. data/app/services/decidim/base_diff_renderer.rb +0 -17
  308. data/app/services/decidim/onboarding_manager.rb +4 -0
  309. data/app/services/decidim/open_data_exporter.rb +19 -11
  310. data/app/services/decidim/send_push_notification.rb +4 -3
  311. data/app/services/decidim/traceability.rb +1 -1
  312. data/app/validators/etiquette_validator.rb +7 -0
  313. data/app/validators/translated_etiquette_validator.rb +1 -0
  314. data/app/views/decidim/account/_old_password_field.html.erb +1 -1
  315. data/app/views/decidim/account/_password_fields.html.erb +1 -1
  316. data/app/views/decidim/account/delete.html.erb +1 -1
  317. data/app/views/decidim/account/show.html.erb +3 -3
  318. data/app/views/decidim/amendments/edit_draft.html.erb +0 -4
  319. data/app/views/decidim/amendments/new.html.erb +0 -4
  320. data/app/views/decidim/amendments/preview_draft.html.erb +1 -1
  321. data/app/views/decidim/application/_accordion_section.html.erb +1 -1
  322. data/app/views/decidim/application/_collection.html.erb +1 -1
  323. data/app/views/decidim/application/_radio_accordion.html.erb +30 -0
  324. data/app/views/decidim/devise/omniauth_registrations/new.html.erb +1 -1
  325. data/app/views/decidim/devise/omniauth_registrations/new_tos_fields.html.erb +1 -1
  326. data/app/views/decidim/devise/registrations/new.html.erb +1 -1
  327. data/app/views/decidim/devise/shared/_links.html.erb +1 -1
  328. data/app/views/decidim/doorkeeper/authorizations/new.html.erb +39 -8
  329. data/app/views/decidim/errors/internal_server_error.html.erb +1 -0
  330. data/app/views/decidim/likes/update_buttons_and_counters.js.erb +21 -0
  331. data/app/views/decidim/messaging/conversations/_add_conversation_users.html.erb +2 -2
  332. data/app/views/decidim/messaging/conversations/_reply_form.html.erb +1 -1
  333. data/app/views/decidim/messaging/conversations/_start.html.erb +1 -1
  334. data/app/views/decidim/messaging/conversations/create.js.erb +0 -1
  335. data/app/views/decidim/messaging/conversations/new.html.erb +1 -1
  336. data/app/views/decidim/messaging/conversations/show.html.erb +1 -1
  337. data/app/views/decidim/notifications_settings/show.html.erb +3 -3
  338. data/app/views/decidim/pages/_tabbed.html.erb +1 -1
  339. data/app/views/decidim/pages/index.html.erb +1 -1
  340. data/app/views/decidim/participants_account_mailer/inactivity_notification.html.erb +13 -0
  341. data/app/views/decidim/participants_account_mailer/removal_notification.html.erb +11 -0
  342. data/app/views/decidim/profiles/show.html.erb +1 -1
  343. data/app/views/decidim/qr/show.html.erb +28 -0
  344. data/app/views/decidim/searches/_filters.html.erb +18 -2
  345. data/app/views/decidim/searches/index.html.erb +5 -2
  346. data/app/views/decidim/shared/_confirm_modal.html.erb +5 -3
  347. data/app/views/decidim/shared/_filters.html.erb +2 -2
  348. data/app/views/decidim/shared/_orders.html.erb +1 -1
  349. data/app/views/decidim/shared/_resource_actions.html.erb +8 -5
  350. data/app/views/decidim/user_activities/index.html.erb +1 -1
  351. data/app/views/decidim/user_group_mailer/notify_deprecation_to_member.html.erb +15 -0
  352. data/app/views/decidim/user_group_mailer/notify_deprecation_to_owner.html.erb +22 -0
  353. data/app/views/layouts/decidim/_head.html.erb +15 -12
  354. data/app/views/layouts/decidim/_impersonation_warning.html.erb +1 -1
  355. data/app/views/layouts/decidim/_js_configuration.html.erb +17 -19
  356. data/app/views/layouts/decidim/_meta_tags_context.html.erb +3 -0
  357. data/app/views/layouts/decidim/_offline_banner.html.erb +1 -1
  358. data/app/views/layouts/decidim/_wrapper.html.erb +8 -6
  359. data/app/views/layouts/decidim/footer/_focus_mode_main.html.erb +7 -0
  360. data/app/views/layouts/decidim/footer/_main_language_chooser.html.erb +1 -1
  361. data/app/views/layouts/decidim/header/_close_ephemeral_session.html.erb +12 -2
  362. data/app/views/layouts/decidim/header/_focus_mode_back_button.html.erb +24 -0
  363. data/app/views/layouts/decidim/header/_main.html.erb +28 -22
  364. data/app/views/layouts/decidim/header/_main_links_desktop.html.erb +1 -1
  365. data/app/views/layouts/decidim/header/_main_links_dropdown.html.erb +18 -18
  366. data/app/views/layouts/decidim/header/_main_links_mobile_item_account.html.erb +1 -1
  367. data/app/views/layouts/decidim/header/_main_menu_mobile.html.erb +1 -1
  368. data/app/views/layouts/decidim/header/_menu_breadcrumb_desktop.html.erb +1 -1
  369. data/app/views/layouts/decidim/header/_menu_breadcrumb_items.html.erb +1 -1
  370. data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +1 -1
  371. data/app/views/layouts/decidim/header/_mobile_language_choose.html.erb +1 -1
  372. data/app/views/layouts/decidim/mailer.html.erb +2 -2
  373. data/app/views/layouts/decidim/newsletter_base.html.erb +2 -2
  374. data/app/views/layouts/decidim/shared/_layout_two_col.html.erb +3 -1
  375. data/app/views/layouts/decidim/shared/_layout_user_profile.html.erb +7 -3
  376. data/config/assets.rb +3 -3
  377. data/config/initializers/devise.rb +8 -0
  378. data/config/initializers/omniauth.rb +1 -1
  379. data/config/locales/ar.yml +0 -209
  380. data/config/locales/bg.yml +0 -238
  381. data/config/locales/bs-BA.yml +0 -30
  382. data/config/locales/ca-IT.yml +112 -286
  383. data/config/locales/ca.yml +112 -286
  384. data/config/locales/cs.yml +85 -279
  385. data/config/locales/de.yml +112 -285
  386. data/config/locales/el.yml +0 -224
  387. data/config/locales/en.yml +112 -286
  388. data/config/locales/eo.yml +0 -2
  389. data/config/locales/es-MX.yml +112 -286
  390. data/config/locales/es-PY.yml +112 -286
  391. data/config/locales/es.yml +112 -286
  392. data/config/locales/eu.yml +125 -299
  393. data/config/locales/fi-plain.yml +112 -286
  394. data/config/locales/fi.yml +112 -286
  395. data/config/locales/fr-CA.yml +85 -275
  396. data/config/locales/fr.yml +85 -275
  397. data/config/locales/ga-IE.yml +0 -28
  398. data/config/locales/gl.yml +0 -140
  399. data/config/locales/hu.yml +0 -237
  400. data/config/locales/id-ID.yml +0 -136
  401. data/config/locales/is-IS.yml +0 -14
  402. data/config/locales/it.yml +1 -234
  403. data/config/locales/ja.yml +108 -282
  404. data/config/locales/lb.yml +0 -189
  405. data/config/locales/lt.yml +0 -240
  406. data/config/locales/lv.yml +0 -186
  407. data/config/locales/nl.yml +0 -189
  408. data/config/locales/no.yml +0 -189
  409. data/config/locales/pl.yml +0 -244
  410. data/config/locales/pt-BR.yml +0 -213
  411. data/config/locales/pt.yml +0 -189
  412. data/config/locales/ro-RO.yml +54 -218
  413. data/config/locales/ru.yml +0 -62
  414. data/config/locales/sk.yml +0 -164
  415. data/config/locales/sr-CS.yml +0 -31
  416. data/config/locales/sv.yml +80 -263
  417. data/config/locales/tr-TR.yml +0 -189
  418. data/config/locales/uk.yml +0 -23
  419. data/config/locales/zh-CN.yml +0 -180
  420. data/config/locales/zh-TW.yml +0 -229
  421. data/config/routes.rb +3 -36
  422. data/db/migrate/20250217192438_convert_user_groups_into_users.rb +38 -0
  423. data/db/migrate/20250221085317_add_user_type_to_action_logs.rb +12 -0
  424. data/db/migrate/20250221090905_create_decidim_api_jwt_denylist.rb +11 -0
  425. data/db/migrate/20250221091348_add_api_key_to_decidim_api_user.rb +7 -0
  426. data/db/migrate/20250327143657_remove_metrics_content_blocks.rb +9 -0
  427. data/db/migrate/20250401153444_enable_pkce.rb +8 -0
  428. data/db/migrate/20250416130426_rename_doorkeeper_scopes.rb +25 -0
  429. data/db/migrate/20250515105231_rename_endorsements_to_likes.rb +62 -0
  430. data/db/migrate/20250523104311_move_cta_to_hero_content_block.rb +34 -0
  431. data/db/migrate/20250527122040_move_highlighted_content_banner_settings_to_content_block.rb +69 -0
  432. data/db/migrate/20250603103953_add_refresh_tokens_enabled_to_doorkeeper_applications.rb +7 -0
  433. data/db/migrate/20250609073104_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb +10 -0
  434. data/db/migrate/20250613122148_remove_hashtag_table_from_core.rb +7 -0
  435. data/decidim-core.gemspec +4 -4
  436. data/{app/helpers → lib}/decidim/action_authorization_helper.rb +5 -4
  437. data/lib/decidim/amendable.rb +4 -4
  438. data/lib/decidim/api/functions/user_entity_finder.rb +1 -1
  439. data/lib/decidim/api/input_filters/component_input_filter.rb +3 -3
  440. data/lib/decidim/api/input_filters/user_entity_input_filter.rb +0 -21
  441. data/lib/decidim/api/input_sorts/has_likeable_input_sort.rb +15 -0
  442. data/lib/decidim/api/interfaces/attachable_collection_interface.rb +13 -0
  443. data/lib/decidim/api/interfaces/author_interface.rb +1 -2
  444. data/lib/decidim/api/interfaces/authorable_interface.rb +2 -2
  445. data/lib/decidim/api/interfaces/coauthorable_interface.rb +1 -1
  446. data/lib/decidim/api/interfaces/component_interface.rb +6 -0
  447. data/lib/decidim/api/interfaces/followable_interface.rb +13 -0
  448. data/lib/decidim/api/interfaces/likeable_interface.rb +19 -0
  449. data/lib/decidim/api/interfaces/localizable_interface.rb +18 -0
  450. data/lib/decidim/api/interfaces/participatory_space_interface.rb +6 -8
  451. data/lib/decidim/api/interfaces/referable_interface.rb +13 -0
  452. data/lib/decidim/api/interfaces/timestamps_interface.rb +0 -1
  453. data/lib/decidim/api/interfaces/traceable_interface.rb +1 -1
  454. data/lib/decidim/api/types/attachment_collection_type.rb +14 -0
  455. data/lib/decidim/api/types/organization_type.rb +3 -1
  456. data/lib/decidim/api/types/session_type.rb +0 -5
  457. data/lib/decidim/api/types/statistic_type.rb +29 -3
  458. data/lib/decidim/api/types/trace_version_type.rb +1 -1
  459. data/lib/decidim/api/types/user_type.rb +1 -2
  460. data/lib/decidim/api_response_helper.rb +12 -0
  461. data/lib/decidim/asset_router/storage.rb +2 -4
  462. data/lib/decidim/assets/tailwind/instance.rb +1 -1
  463. data/lib/decidim/assets/tailwind/tailwind.config.js.erb +4 -3
  464. data/lib/decidim/attribute_encryptor.rb +1 -1
  465. data/lib/decidim/attributes/time_with_zone.rb +1 -1
  466. data/lib/decidim/authorable.rb +5 -34
  467. data/lib/decidim/coauthorable.rb +13 -31
  468. data/lib/decidim/content_parsers/blob_parser.rb +1 -1
  469. data/lib/decidim/content_parsers/mention_resource_parser.rb +23 -0
  470. data/lib/decidim/content_parsers/tag_parser.rb +2 -2
  471. data/lib/decidim/content_parsers/user_parser.rb +2 -2
  472. data/lib/decidim/content_parsers.rb +14 -2
  473. data/lib/decidim/content_processor.rb +1 -1
  474. data/lib/decidim/content_renderers/mention_resource_renderer.rb +77 -0
  475. data/lib/decidim/content_renderers.rb +1 -2
  476. data/lib/decidim/core/api.rb +7 -8
  477. data/lib/decidim/core/content_blocks/registry_manager.rb +19 -5
  478. data/lib/decidim/core/engine.rb +72 -104
  479. data/lib/decidim/core/menu.rb +0 -7
  480. data/lib/decidim/core/seeds.rb +11 -39
  481. data/lib/decidim/core/test/factories.rb +22 -121
  482. data/lib/decidim/core/test/shared_examples/authorable.rb +0 -17
  483. data/lib/decidim/core/test/shared_examples/coauthorable.rb +5 -48
  484. data/lib/decidim/core/test/shared_examples/comments_examples.rb +7 -56
  485. data/lib/decidim/core/test/shared_examples/likeable.rb +22 -0
  486. data/lib/decidim/core/test/shared_examples/manage_share_tokens_examples.rb +16 -3
  487. data/lib/decidim/core/test/shared_examples/map_examples.rb +1 -1
  488. data/lib/decidim/core/test/shared_examples/oauth_application_examples.rb +137 -0
  489. data/lib/decidim/core/test/shared_examples/participatory_space_dropdown_metadata_cell_examples.rb +0 -18
  490. data/lib/decidim/core/test/shared_examples/permissions.rb +0 -46
  491. data/lib/decidim/core/test/shared_examples/reports_examples.rb +2 -2
  492. data/lib/decidim/core/test/shared_examples/{resource_endorsed_event_examples.rb → resource_liked_event_examples.rb} +7 -7
  493. data/lib/decidim/core/test/shared_examples/resource_search_examples.rb +0 -14
  494. data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +8 -34
  495. data/lib/decidim/core/test/shared_examples/social_share_examples.rb +79 -0
  496. data/lib/decidim/core/test/shared_examples/system_like_resource_examples.rb +192 -0
  497. data/lib/decidim/core/test/shared_examples/uncommentable_component_examples.rb +2 -2
  498. data/lib/decidim/core/test/shared_examples/{with_endorsable_permissions_examples.rb → with_likeable_permissions_examples.rb} +22 -22
  499. data/lib/decidim/core/test.rb +6 -9
  500. data/lib/decidim/core/version.rb +1 -1
  501. data/lib/decidim/core.rb +237 -88
  502. data/lib/decidim/deprecations.rb +1 -1
  503. data/lib/decidim/download_your_data_serializers.rb +6 -3
  504. data/lib/decidim/env.rb +3 -1
  505. data/lib/decidim/events.rb +0 -1
  506. data/lib/decidim/form_builder.rb +26 -43
  507. data/lib/decidim/gamification/badge_scorer.rb +0 -2
  508. data/lib/decidim/gamification.rb +1 -1
  509. data/lib/decidim/has_conversations.rb +0 -44
  510. data/lib/decidim/has_workflows.rb +42 -0
  511. data/lib/decidim/icon_registry.rb +4 -4
  512. data/lib/decidim/legacy_form_builder.rb +17 -2
  513. data/lib/decidim/likeable.rb +24 -0
  514. data/lib/decidim/manifest_registry.rb +1 -1
  515. data/lib/decidim/map/provider/dynamic_map/here.rb +0 -19
  516. data/lib/decidim/map/provider/static_map/here.rb +2 -10
  517. data/lib/decidim/menu.rb +1 -1
  518. data/lib/decidim/moderation_tools.rb +1 -1
  519. data/lib/decidim/mutation_registry.rb +17 -0
  520. data/lib/decidim/newsletter_encryptor.rb +1 -1
  521. data/lib/decidim/oauth/token_generator.rb +35 -0
  522. data/lib/decidim/oauth.rb +7 -0
  523. data/lib/decidim/organization_settings.rb +2 -10
  524. data/lib/decidim/paddable.rb +1 -1
  525. data/lib/decidim/participatory_space_resourceable.rb +2 -2
  526. data/lib/decidim/participatory_space_user.rb +1 -1
  527. data/lib/decidim/pdf_signature_example.rb +108 -0
  528. data/lib/decidim/query.rb +1 -1
  529. data/lib/decidim/query_extensions.rb +0 -33
  530. data/lib/decidim/reportable.rb +1 -1
  531. data/lib/decidim/searchable.rb +4 -2
  532. data/lib/decidim/seeds.rb +8 -0
  533. data/lib/decidim/settings_manifest.rb +3 -2
  534. data/lib/decidim/{webpacker → shakapacker}/configuration.rb +4 -4
  535. data/lib/decidim/{webpacker → shakapacker}/runner.rb +3 -3
  536. data/lib/decidim/shakapacker/shakapacker.rb +8 -0
  537. data/lib/decidim/{webpacker → shakapacker}/shakapacker.yml +3 -1
  538. data/lib/decidim/{webpacker → shakapacker}/webpack/custom.js +1 -1
  539. data/lib/decidim/shakapacker.rb +34 -0
  540. data/lib/decidim/social_share_service_manifest.rb +7 -12
  541. data/lib/decidim/stats_registry.rb +15 -3
  542. data/{app/helpers → lib}/decidim/tooltip_helper.rb +3 -3
  543. data/lib/decidim/url_option_resolver.rb +1 -1
  544. data/lib/decidim/view_model.rb +0 -3
  545. data/lib/decidim/webpacker.rb +11 -20
  546. data/lib/decidim/workflow_registry.rb +61 -0
  547. data/lib/tasks/decidim_participants_tasks.rake +22 -0
  548. data/lib/tasks/{decidim_webpacker_tasks.rake → decidim_shakapacker_tasks.rake} +35 -33
  549. data/lib/tasks/decidim_tasks.rake +4 -1
  550. data/lib/tasks/decidim_taxonomies.rake +0 -34
  551. data/lib/tasks/upgrade/clean.rake +1 -1
  552. data/lib/tasks/upgrade/decidim_action_log_valuation_assignment.rake +13 -0
  553. data/lib/tasks/upgrade/decidim_change_valuator_tasks.rake +12 -0
  554. data/lib/tasks/upgrade/{decidim_deduplicate_endorsements.rake → decidim_deduplicate_likes.rake} +10 -10
  555. data/lib/tasks/upgrade/decidim_migrate_wysiwyg_content.rake +2 -2
  556. data/lib/tasks/upgrade/decidim_paper_trail_valuation_assignment.rake +13 -0
  557. data/lib/tasks/upgrade/user_groups_migration.rake +155 -0
  558. metadata +204 -256
  559. data/app/cells/decidim/author/endorsements.erb +0 -4
  560. data/app/cells/decidim/author/profile_minicard.erb +0 -30
  561. data/app/cells/decidim/content_blocks/organization_metrics_cell.rb +0 -21
  562. data/app/cells/decidim/content_blocks/participatory_space_metrics/content.erb +0 -18
  563. data/app/cells/decidim/content_blocks/participatory_space_metrics_cell.rb +0 -43
  564. data/app/cells/decidim/endorsement_block/show.erb +0 -3
  565. data/app/cells/decidim/endorsement_buttons/button_content.erb +0 -2
  566. data/app/cells/decidim/endorsement_buttons/select_identity_button.erb +0 -7
  567. data/app/cells/decidim/endorsement_buttons/show.erb +0 -17
  568. data/app/cells/decidim/endorsement_buttons_cell.rb +0 -87
  569. data/app/cells/decidim/endorsers_list/empty.erb +0 -3
  570. data/app/cells/decidim/endorsers_list/show.erb +0 -20
  571. data/app/cells/decidim/endorsers_list_cell.rb +0 -64
  572. data/app/cells/decidim/group_admins/show.erb +0 -34
  573. data/app/cells/decidim/group_admins_cell.rb +0 -8
  574. data/app/cells/decidim/group_members/show.erb +0 -46
  575. data/app/cells/decidim/group_members_cell.rb +0 -8
  576. data/app/cells/decidim/groups/show.erb +0 -14
  577. data/app/cells/decidim/groups_cell.rb +0 -22
  578. data/app/cells/decidim/members/show.erb +0 -12
  579. data/app/cells/decidim/members_cell.rb +0 -34
  580. data/app/cells/decidim/profile_actions/dropdown_actions.erb +0 -21
  581. data/app/cells/decidim/represent_user_group/show.erb +0 -11
  582. data/app/cells/decidim/represent_user_group_cell.rb +0 -46
  583. data/app/cells/decidim/user_conversation/conversation_header.erb +0 -14
  584. data/app/cells/decidim/user_conversation/messages.erb +0 -1
  585. data/app/cells/decidim/user_conversation/new.erb +0 -6
  586. data/app/cells/decidim/user_conversation/reply.erb +0 -9
  587. data/app/cells/decidim/user_conversation/show.erb +0 -19
  588. data/app/cells/decidim/user_conversation/start.erb +0 -12
  589. data/app/cells/decidim/user_conversation_cell.rb +0 -62
  590. data/app/cells/decidim/user_conversations/new_conversation_button.erb +0 -20
  591. data/app/cells/decidim/user_conversations/show.erb +0 -13
  592. data/app/cells/decidim/user_conversations_cell.rb +0 -28
  593. data/app/cells/decidim/user_group_pending_invitations_list/show.erb +0 -28
  594. data/app/cells/decidim/user_group_pending_invitations_list_cell.rb +0 -26
  595. data/app/cells/decidim/user_group_pending_requests_list/show.erb +0 -27
  596. data/app/cells/decidim/user_group_pending_requests_list_cell.rb +0 -26
  597. data/app/commands/decidim/accept_group_invitation.rb +0 -43
  598. data/app/commands/decidim/accept_user_group_join_request.rb +0 -53
  599. data/app/commands/decidim/create_user_group.rb +0 -73
  600. data/app/commands/decidim/demote_membership.rb +0 -57
  601. data/app/commands/decidim/endorse_resource.rb +0 -66
  602. data/app/commands/decidim/invite_user_to_group.rb +0 -63
  603. data/app/commands/decidim/join_user_group.rb +0 -57
  604. data/app/commands/decidim/leave_user_group.rb +0 -47
  605. data/app/commands/decidim/promote_membership.rb +0 -55
  606. data/app/commands/decidim/reject_group_invitation.rb +0 -42
  607. data/app/commands/decidim/reject_user_group_join_request.rb +0 -53
  608. data/app/commands/decidim/remove_user_from_group.rb +0 -53
  609. data/app/commands/decidim/unendorse_resource.rb +0 -39
  610. data/app/commands/decidim/update_user_group.rb +0 -72
  611. data/app/controllers/concerns/decidim/user_groups.rb +0 -23
  612. data/app/controllers/decidim/endorsements_controller.rb +0 -71
  613. data/app/controllers/decidim/group_email_confirmations_controller.rb +0 -32
  614. data/app/controllers/decidim/group_invites_controller.rb +0 -104
  615. data/app/controllers/decidim/group_members_controller.rb +0 -75
  616. data/app/controllers/decidim/groups_controller.rb +0 -99
  617. data/app/controllers/decidim/own_user_groups_controller.rb +0 -15
  618. data/app/controllers/decidim/user_conversations_controller.rb +0 -133
  619. data/app/controllers/decidim/user_group_join_requests_controller.rb +0 -72
  620. data/app/events/decidim/demoted_membership_event.rb +0 -28
  621. data/app/events/decidim/invited_to_group_event.rb +0 -62
  622. data/app/events/decidim/join_request_accepted_event.rb +0 -28
  623. data/app/events/decidim/join_request_created_event.rb +0 -28
  624. data/app/events/decidim/join_request_rejected_event.rb +0 -28
  625. data/app/events/decidim/promoted_to_admin_event.rb +0 -28
  626. data/app/events/decidim/removed_from_group_event.rb +0 -28
  627. data/app/events/decidim/resource_endorsed_event.rb +0 -36
  628. data/app/events/decidim/user_group_admin_event.rb +0 -37
  629. data/app/events/decidim/user_group_created_event.rb +0 -6
  630. data/app/events/decidim/user_group_updated_event.rb +0 -6
  631. data/app/forms/decidim/invite_user_to_group_form.rb +0 -29
  632. data/app/forms/decidim/user_group_form.rb +0 -85
  633. data/app/helpers/decidim/cta_button_helper.rb +0 -31
  634. data/app/helpers/decidim/endorsable_helper.rb +0 -84
  635. data/app/helpers/decidim/twitter_search_helper.rb +0 -14
  636. data/app/helpers/decidim/user_group_helper.rb +0 -22
  637. data/app/jobs/decidim/metric_job.rb +0 -15
  638. data/app/models/decidim/metric.rb +0 -25
  639. data/app/models/decidim/user_group.rb +0 -217
  640. data/app/models/decidim/user_group_membership.rb +0 -17
  641. data/app/packs/entrypoints/decidim_widget.js +0 -1
  642. data/app/packs/src/decidim/abide_form_validator_fixer.js +0 -44
  643. data/app/packs/src/decidim/account_form.js +0 -96
  644. data/app/packs/src/decidim/append_elements.js +0 -6
  645. data/app/packs/src/decidim/back_to_list.js +0 -26
  646. data/app/packs/src/decidim/change_report_form_behavior.js +0 -45
  647. data/app/packs/src/decidim/clipboard.js +0 -128
  648. data/app/packs/src/decidim/editor/extensions/hashtag/index.js +0 -66
  649. data/app/packs/src/decidim/editor/extensions/heading/index.js +0 -33
  650. data/app/packs/src/decidim/editor/test/extensions/hashtag.test.js +0 -105
  651. data/app/packs/src/decidim/form_filter.component_for_testing.js +0 -7
  652. data/app/packs/src/decidim/form_validator.js +0 -56
  653. data/app/packs/src/decidim/gallery.js +0 -5
  654. data/app/packs/src/decidim/impersonation.js +0 -23
  655. data/app/packs/src/decidim/input_autojump.js +0 -38
  656. data/app/packs/src/decidim/input_hashtags.js +0 -91
  657. data/app/packs/src/decidim/input_mentions.js +0 -143
  658. data/app/packs/src/decidim/input_multiple_mentions.js +0 -115
  659. data/app/packs/src/decidim/input_tags.js +0 -16
  660. data/app/packs/src/decidim/notifications_actions.js +0 -40
  661. data/app/packs/src/decidim/password_toggler.js +0 -104
  662. data/app/packs/src/decidim/remote_tooltips.js +0 -38
  663. data/app/packs/src/decidim/responsive_horizontal_tabs.js +0 -12
  664. data/app/packs/src/decidim/scroll_to_last_child.js +0 -14
  665. data/app/packs/src/decidim/slug_form.js +0 -9
  666. data/app/packs/src/decidim/sticky_footer.js +0 -48
  667. data/app/packs/src/decidim/sticky_header.js +0 -62
  668. data/app/packs/src/decidim/toggle.js +0 -37
  669. data/app/packs/src/decidim/tooltips.js +0 -152
  670. data/app/packs/src/decidim/user_registrations.js +0 -65
  671. data/app/packs/src/decidim/vizzs/areachart.js +0 -251
  672. data/app/packs/src/decidim/vizzs/index.js +0 -82
  673. data/app/packs/src/decidim/widget.js +0 -14
  674. data/app/packs/stylesheets/decidim/_hashtags.scss +0 -5
  675. data/app/packs/stylesheets/decidim/_metrics.scss +0 -70
  676. data/app/packs/stylesheets/decidim/_modal_identities.scss +0 -23
  677. data/app/presenters/decidim/admin_log/user_group_presenter.rb +0 -31
  678. data/app/presenters/decidim/hashtag_presenter.rb +0 -37
  679. data/app/presenters/decidim/metric_charts_presenter.rb +0 -92
  680. data/app/presenters/decidim/metric_object_presenter.rb +0 -32
  681. data/app/presenters/decidim/user_group_presenter.rb +0 -38
  682. data/app/queries/decidim/metric_manage.rb +0 -81
  683. data/app/queries/decidim/metric_measure.rb +0 -36
  684. data/app/queries/decidim/metrics/blocked_users_metric_manage.rb +0 -26
  685. data/app/queries/decidim/metrics/followers_metric_manage.rb +0 -65
  686. data/app/queries/decidim/metrics/participants_metric_manage.rb +0 -79
  687. data/app/queries/decidim/metrics/reported_users_metric_manage.rb +0 -26
  688. data/app/queries/decidim/metrics/user_reports_metric_manage.rb +0 -26
  689. data/app/queries/decidim/metrics/users_metric_manage.rb +0 -26
  690. data/app/queries/decidim/user_groups/accepted_memberships.rb +0 -36
  691. data/app/queries/decidim/user_groups/accepted_user_groups.rb +0 -38
  692. data/app/queries/decidim/user_groups/accepted_users.rb +0 -36
  693. data/app/queries/decidim/user_groups/admin_memberships.rb +0 -37
  694. data/app/queries/decidim/user_groups/invited_memberships.rb +0 -36
  695. data/app/queries/decidim/user_groups/manageable_user_groups.rb +0 -39
  696. data/app/queries/decidim/user_groups/member_memberships.rb +0 -37
  697. data/app/resolvers/decidim/core/metric_resolver.rb +0 -71
  698. data/app/resolvers/decidim/hashtags_resolver.rb +0 -15
  699. data/app/serializers/decidim/exporters/open_data_metric_serializer.rb +0 -22
  700. data/app/serializers/decidim/exporters/open_data_user_group_serializer.rb +0 -38
  701. data/app/views/decidim/endorsements/_identity.html.erb +0 -4
  702. data/app/views/decidim/endorsements/identities.html.erb +0 -18
  703. data/app/views/decidim/endorsements/update_buttons_and_counters.js.erb +0 -25
  704. data/app/views/decidim/group_invites/index.html.erb +0 -26
  705. data/app/views/decidim/groups/_form.html.erb +0 -17
  706. data/app/views/decidim/groups/edit.html.erb +0 -19
  707. data/app/views/decidim/groups/new.html.erb +0 -23
  708. data/app/views/decidim/messaging/conversation_mailer/comanagers_new_conversation.html.erb +0 -17
  709. data/app/views/decidim/messaging/conversation_mailer/comanagers_new_message.html.erb +0 -17
  710. data/app/views/decidim/messaging/conversation_mailer/new_group_conversation.html.erb +0 -17
  711. data/app/views/decidim/messaging/conversation_mailer/new_group_message.html.erb +0 -17
  712. data/app/views/decidim/own_user_groups/index.html.erb +0 -10
  713. data/app/views/decidim/shared/_extended_navigation_bar.html.erb +0 -50
  714. data/app/views/decidim/user_conversations/index.html.erb +0 -4
  715. data/app/views/decidim/user_conversations/show.html.erb +0 -4
  716. data/app/views/decidim/user_conversations/update.js.erb +0 -8
  717. data/config/initializers/new_framework_defaults_7_0.rb +0 -145
  718. data/lib/decidim/api/input_filters/has_hastaggable_input_filter.rb +0 -15
  719. data/lib/decidim/api/input_sorts/has_endorsable_input_sort.rb +0 -15
  720. data/lib/decidim/api/interfaces/endorsable_interface.rb +0 -19
  721. data/lib/decidim/api/types/hashtag_type.rb +0 -13
  722. data/lib/decidim/api/types/metric_history_type.rb +0 -20
  723. data/lib/decidim/api/types/metric_type.rb +0 -13
  724. data/lib/decidim/api/types/user_group_type.rb +0 -55
  725. data/lib/decidim/content_parsers/hashtag_parser.rb +0 -66
  726. data/lib/decidim/content_parsers/user_group_parser.rb +0 -33
  727. data/lib/decidim/content_renderers/hashtag_renderer.rb +0 -78
  728. data/lib/decidim/content_renderers/user_group_renderer.rb +0 -31
  729. data/lib/decidim/core/test/shared_examples/amendable_interface_examples.rb +0 -14
  730. data/lib/decidim/core/test/shared_examples/amendable_proposals_interface_examples.rb +0 -50
  731. data/lib/decidim/core/test/shared_examples/assembly_announcements_examples.rb +0 -38
  732. data/lib/decidim/core/test/shared_examples/attachable_interface_examples.rb +0 -16
  733. data/lib/decidim/core/test/shared_examples/authorable_interface_examples.rb +0 -59
  734. data/lib/decidim/core/test/shared_examples/categories_container_examples.rb +0 -22
  735. data/lib/decidim/core/test/shared_examples/categorizable_interface_examples.rb +0 -27
  736. data/lib/decidim/core/test/shared_examples/coauthorable_interface_examples.rb +0 -91
  737. data/lib/decidim/core/test/shared_examples/endorsable.rb +0 -69
  738. data/lib/decidim/core/test/shared_examples/endorsable_interface_examples.rb +0 -22
  739. data/lib/decidim/core/test/shared_examples/fingerprintable_interface_examples.rb +0 -17
  740. data/lib/decidim/core/test/shared_examples/input_filter_examples.rb +0 -118
  741. data/lib/decidim/core/test/shared_examples/input_sort_examples.rb +0 -126
  742. data/lib/decidim/core/test/shared_examples/metric_manage_shared_context.rb +0 -9
  743. data/lib/decidim/core/test/shared_examples/participatory_space_resourcable_interface_examples.rb +0 -43
  744. data/lib/decidim/core/test/shared_examples/process_announcements_examples.rb +0 -37
  745. data/lib/decidim/core/test/shared_examples/scopable_interface_examples.rb +0 -19
  746. data/lib/decidim/core/test/shared_examples/system_endorse_resource_examples.rb +0 -298
  747. data/lib/decidim/core/test/shared_examples/taxonomizable_interface_examples.rb +0 -20
  748. data/lib/decidim/core/test/shared_examples/timestamps_interface_examples.rb +0 -21
  749. data/lib/decidim/core/test/shared_examples/traceable_interface_examples.rb +0 -47
  750. data/lib/decidim/download_your_data_serializers/download_your_data_user_group_serializer.rb +0 -21
  751. data/lib/decidim/endorsable.rb +0 -29
  752. data/lib/decidim/events/user_group_event.rb +0 -43
  753. data/lib/decidim/hashtag.rb +0 -13
  754. data/lib/decidim/metric_manifest.rb +0 -35
  755. data/lib/decidim/metric_operation.rb +0 -58
  756. data/lib/decidim/metric_operation_manifest.rb +0 -21
  757. data/lib/decidim/metric_registry.rb +0 -109
  758. data/lib/gem_overrides/shakapacker/runner.rb +0 -9
  759. data/lib/tasks/decidim_metrics_tasks.rake +0 -89
  760. /data/app/cells/decidim/{endorsement_buttons/disabled_endorsements.erb → like_buttons/disabled_likes.erb} +0 -0
  761. /data/app/packs/src/decidim/{configuration.js → refactor/implementation/configuration.js} +0 -0
  762. /data/app/packs/src/decidim/{external_domain_warning.js → refactor/implementation/external_domain_warning.js} +0 -0
  763. /data/app/packs/src/decidim/{autocomplete.js → refactor/moved/autocomplete.js} +0 -0
  764. /data/app/packs/src/decidim/{delayed.js → refactor/moved/delayed.js} +0 -0
  765. /data/app/packs/src/decidim/{focus_guard.js → refactor/moved/focus_guard.js} +0 -0
  766. /data/app/packs/src/decidim/{history.js → refactor/moved/history.js} +0 -0
  767. /data/app/packs/src/decidim/{i18n.js → refactor/moved/i18n.js} +0 -0
  768. /data/lib/decidim/core/test/shared_examples/{endorsements_controller_shared_context.rb → likes_controller_shared_context.rb} +0 -0
  769. /data/{app/helpers → lib}/decidim/resource_helper.rb +0 -0
  770. /data/lib/decidim/{webpacker → shakapacker}/esbuild.config.js +0 -0
  771. /data/lib/decidim/{webpacker → shakapacker}/postcss.config.js +0 -0
  772. /data/lib/decidim/{webpacker → shakapacker}/tsconfig.json +0 -0
  773. /data/lib/decidim/{webpacker → shakapacker}/webpack/.modernizrrc +0 -0
  774. /data/lib/decidim/{webpacker → shakapacker}/webpack/webpack.config.js +0 -0
@@ -31,8 +31,6 @@ zh-TW:
31
31
  personal_url: 個人 URL
32
32
  remove_avatar: 刪除頭像
33
33
  tos_agreement: 同意服務條款
34
- user_group:
35
- avatar: 頭像
36
34
  models:
37
35
  decidim/attachment_created_event: 附件
38
36
  decidim/component_published_event: 啟用組件
@@ -46,9 +44,7 @@ zh-TW:
46
44
  decidim/promote_to_admin: 晉升為群組管理員
47
45
  decidim/promoted_to_admin_event: 晉升為群組管理員
48
46
  decidim/removed_from_group: 從群組中移除
49
- decidim/resource_endorsed_event: 資源已獲得連署
50
47
  decidim/resource_hidden_event: 資源已隱藏
51
- decidim/user_group_created_event: 用戶群組已建立
52
48
  decidim/welcome_notification_event: 歡迎訊息
53
49
  activerecord:
54
50
  attributes:
@@ -64,12 +60,8 @@ zh-TW:
64
60
  models:
65
61
  decidim/amendment:
66
62
  other: 修正案
67
- decidim/endorsement:
68
- other: 連署
69
63
  decidim/user:
70
64
  other: 參與者
71
- decidim/user_group:
72
- other: 群組
73
65
  booleans:
74
66
  'false': '否'
75
67
  'true': '是'
@@ -277,7 +269,6 @@ zh-TW:
277
269
  withdrawn: |-
278
270
  對於 %{amendable_type} %{proposal_link} 的修正案已被作者撤回。
279
271
  new:
280
- amendment_author: 修正案作者
281
272
  send: 建立
282
273
  title: 創建修正案草稿
283
274
  preview_draft:
@@ -320,8 +311,6 @@ zh-TW:
320
311
  avatar: '頭像: %{name}'
321
312
  comments:
322
313
  other: 評論
323
- endorsements:
324
- other: "one\n連署\nOther\n連署"
325
314
  official_author: 官方
326
315
  authorization_handlers:
327
316
  another_dummy_authorization_handler:
@@ -465,10 +454,6 @@ zh-TW:
465
454
  name: 最後活動
466
455
  title: 最後活動
467
456
  view_all: 檢視全部
468
- metrics:
469
- name: 組織指標
470
- participatory_space_metrics:
471
- name: 指標
472
457
  static_page:
473
458
  section:
474
459
  name: 節
@@ -546,10 +531,6 @@ zh-TW:
546
531
  error: 上傳圖片時發生錯誤.
547
532
  success: 圖片上傳成功.
548
533
  drag_and_drop_help: 通過拖放或粘貼方式添加圖片。
549
- endorsements:
550
- identities:
551
- done: 已完成
552
- select_identity: 選擇身份
553
534
  errors:
554
535
  internal_server_error:
555
536
  copied: 文字已複製!
@@ -641,52 +622,6 @@ zh-TW:
641
622
  email_outro: 您收到此通知是因為您在我們的網站上進行了相關活動。
642
623
  email_subject: 你已經達到了 %{badge_name} 徽章的 %{current_level} 等級!
643
624
  notification_title: 恭喜!您已經達到了 <a href="%{resource_path}">%{badge_name} 徽章</a>的 %{current_level} 級!
644
- groups:
645
- demoted_membership:
646
- email_intro: <a href="%{resource_url}">%{user_group_name}</a> 群組的管理員已將您的管理權限從該群組中移除。
647
- email_outro: 您收到此通知是因為您是該群組的成員。
648
- email_subject: 您不再是 %{user_group_name} 群組的管理員!
649
- notification_title: 您不再是 <a href="%{resource_path}">%{user_group_name}</a> 群組的管理員。
650
- invited_to_group:
651
- email_intro: 一位<a href="%{resource_url}">%{user_group_name}</a> 群組的管理員邀請您加入該群組。
652
- email_outro: 您收到此通知是因為您已獲邀請加入一個群組。請在個人檔案的「群組」選項中檢查並核准該邀請。
653
- email_subject: 您已獲邀請加入 %{user_group_name} 群組!
654
- notification_title: 您已獲邀請加入 <a href="%{resource_path}">%{user_group_name}</a> 群組。請檢查您個人檔案中的<a href="%{groups_profile_tab_path}">群組頁面</a>以進行批准!
655
- join_request_accepted:
656
- email_intro: 恭喜!<a href="%{resource_url}">%{user_group_name}</a> 群組的管理員已經接受您加入的請求。
657
- email_outro: 您收到此通知是因為您的加入請求已經有了更新。
658
- email_subject: 您已被接受加入 %{user_group_name} 群組!
659
- notification_title: 您已被接受加入 <a href="%{resource_path}">%{user_group_name}</a> 群組。
660
- join_request_created:
661
- email_intro: 有人申請加入 %{user_group_name} 群組。您可以從<a href="%{resource_url}">群組成員頁面</a>接受或拒絕。
662
- email_outro: 您收到此通知是因為您可以管理 %{user_group_name} 群組。
663
- email_subject: 有人申請加入 %{user_group_name} 群組!
664
- notification_title: 有人申請加入 %{user_group_name} 群組。您可以從<a href="%{resource_path}">群組成員頁面</a>接受或拒絕。
665
- join_request_rejected:
666
- email_intro: 一位 <a href="%{resource_url}">%{user_group_name}</a> 群組的管理員已拒絕了你加入的請求。
667
- email_outro: 您收到此通知是因為您的加入請求已經有了更新。
668
- email_subject: 你的加入 %{user_group_name} 群組的請求已被拒絕!
669
- notification_title: 你加入 <a href="%{resource_path}">%{user_group_name}</a> 群組的請求已被拒絕。
670
- promoted_to_admin:
671
- email_intro: <a href="%{resource_url}">%{user_group_name}</a> 群組的管理員已經給予你該群組的管理權限。
672
- email_outro: 您收到此通知是因為您是該群組的成員。
673
- email_subject: 你現在是 %{user_group_name} 群組的管理員了!
674
- notification_title: 你現在是 <a href="%{resource_path}">%{user_group_name}</a> 群組的管理員了!
675
- removed_from_group:
676
- email_intro: <a href="%{resource_url}">%{user_group_name}</a> 群組的管理員已將你從該群組中移除。
677
- email_outro: 你收到這個通知是因為你曾經是該群組的成員。
678
- email_subject: 你已從 %{user_group_name} 群組中移除!
679
- notification_title: 您已被從<a href="%{resource_path}">%{user_group_name}</a> 群組中移除。
680
- user_group_created:
681
- email_intro: 一個名為 %{user_group_name} 的新用戶組已被創建。您現在可以在<a href="%{groups_admin_url}">管理員面板</a>中進行驗證。
682
- email_outro: 你收到了這個通知是因為你是該平台的管理員。
683
- email_subject: 已建立新的使用者群組
684
- notification_title: 已建立 %{user_group_name} 使用者群組。您現在可以在<a href="%{groups_admin_path}">管理面板</a>中進行驗證。
685
- user_group_updated:
686
- email_intro: 名為 %{user_group_name} 的使用者群組已更新其個人檔案,尚未完成驗證。您現在可以在<a href="%{groups_admin_url}">管理面板</a>中進行驗證
687
- email_outro: 你收到了這個通知是因為你是該平台的管理員。
688
- email_subject: 一個使用者群組已更新其個人檔案。
689
- notification_title: '%{user_group_name} 使用者群組已更新其個人資料,讓它未經驗證。您現在可以在<a href="%{groups_admin_path}">管理面板</a>中進行驗證。'
690
625
  reports:
691
626
  resource_hidden:
692
627
  email_intro: 一位管理員因為您的%{resource_type} 已被檢舉為%{report_reasons} 而將其移除。
@@ -694,11 +629,6 @@ zh-TW:
694
629
  email_subject: 您的%{resource_type} 已被移除。
695
630
  notification_title: |-
696
631
  一位管理員因為 %{report_reasons} 的舉報,移除了您的%{resource_type}。</br> <i>%{resource_content}</i>
697
- resource_endorsed:
698
- email_intro: '%{endorser_name} %{endorser_nickname},您正在關注的用戶,剛剛為"%{resource_title}"進行了連署,我們認為這可能對您很有興趣。請查看並做出貢獻:'
699
- email_outro: 您收到此通知是因為您正在關注 %{endorser_nickname}。您可以點擊上方的連結停止接收通知。
700
- email_subject: "%{endorser_nickname} 進行了一個新的連署。"
701
- notification_title: <a href="%{resource_path}">%{resource_title}</a> 的 %{resource_type} 已被 <a href="%{endorser_path}">%{endorser_name} %{endorser_nickname}</a> 連署。
702
632
  users:
703
633
  profile_updated:
704
634
  email_intro: 你正在追蹤的 %{name}(%{nickname}) 的<a href="%{resource_path}">個人資料頁面</a>已被更新。
@@ -812,89 +742,11 @@ zh-TW:
812
742
  level: 等級 %{level}
813
743
  reached_top: 您已經達到此徽章的最高等級。
814
744
  title: 徽章是什麼?
815
- group_admins:
816
- actions:
817
- demote_admin: 移除管理員
818
- demote:
819
- error: 刪除此參與者的管理員名單時發生問題。
820
- success: 成功從管理員列表中刪除參與者.
821
- index:
822
- current_admins: '目前的管理員:'
823
- manage_admins: 管理管理員
824
- group_invites:
825
- accept:
826
- error: 這個邀請接受時發生問題。
827
- success: 邀請已成功接受.
828
- accept_invitation: 接受
829
- accept_or_reject_group_invitations: '以下群組已邀請您加入。請接受或拒絕他們的邀請:'
830
- index:
831
- invite: 邀請
832
- invite_user: 邀請一位參與者
833
- invite:
834
- error: 邀請參與者加入時發生問題.
835
- success: 成功邀請參與者.
836
- reject:
837
- error: 拒絕邀請時出現問題.
838
- success: 邀請已成功拒絕.
839
- reject_invitation: 拒絕
840
- group_members:
841
- accept:
842
- error: 加入請求接受時發生問題.
843
- success: 加入申請已成功接受.
844
- actions:
845
- promote_to_admin: 設為管理員
846
- remove_from_group: 刪除該參與者
847
- index:
848
- current_members_without_admins: '當前成員 (不包括管理員):'
849
- manage_members: 管理成員
850
- promote:
851
- error: 提升這位參與者的權限時發生問題.
852
- success: 成功提升參與者權限.
853
- reject:
854
- error: 拒絕此加入請求時發生問題.
855
- success: 加入申請已被拒絕.
856
- remove:
857
- error: 將此參與者從群組中移除時發生問題.
858
- success: 已成功將參與者從群組中移除.
859
745
  groups:
860
- actions:
861
- are_you_sure: 您確定嗎?
862
- create:
863
- error: 在建立這個群組時發生問題.
864
- success: 分組已成功創建.
865
- edit:
866
- edit_user_group: 編輯群組
867
- update_user_group: 更新群組
868
- form:
869
- document_number_help: 不要使用破折号或空格.
870
- email_help: 組織、協會、集體、群組等的電子郵件地址。
871
- fill_in_for_verification: '如果您希望您的群組進行驗證,請填寫以下字段:'
872
- name_help: 您的組織、協會、集體、群組等的名稱。
873
- nickname_help: 您的組織、協會、集體、群組等的暱稱。請勿使用空格或重音符號。
874
- phone_help: 不要使用破折号或空格.
875
- join:
876
- error: 加入這個群組時發生問題.
877
- success: 加入請求已成功建立。管理員將在接受您加入該組之前審查您的請求。
878
- leave:
879
- error: 離開這個群組時發生問題.
880
- last_admin: 你無法從這個群組中移除自己,因為你是唯一的管理員。請先讓另一位成員成為管理員,然後才能離開該群組。
881
- success: 成功退出群組。
882
- members:
883
- accept_or_reject_join_requests: '以下使用者申請加入該群組。請接受或拒絕他們的申請:'
884
- accept_request: 接受
885
- reject_request: 拒絕
886
- new:
887
- create_user_group: 建立群組
888
- new_user_group: 新群組
889
- subtitle: 建立一個群組並邀請其他使用者加入,以便在集體層面上參與。
890
- no_user_groups: 尚未加入任何群組。
891
746
  roles:
892
747
  admin: 管理員
893
748
  creator: 管理員
894
749
  member: 成員
895
- update:
896
- error: 更新群組時,發生錯誤。
897
- success: 成功更新群組.
898
750
  help:
899
751
  main_topic:
900
752
  default_page:
@@ -944,37 +796,15 @@ zh-TW:
944
796
  static:
945
797
  latlng_text: '緯度:%{latitude},經度:%{longitude}'
946
798
  map_service_brand: 開放街圖
947
- members:
948
- no_members: 這個群組還沒有任何成員。
949
799
  menu:
950
800
  help: 幫助
951
801
  home: 首頁
952
802
  messaging:
953
803
  conversation_mailer:
954
- comanagers_new_conversation:
955
- admin_in_group: 您收到此通知是因為您是 %{group} 的管理員。
956
- greeting: 嗨, %{recipient}!
957
- intro: "%{manager} 以%{group} 的名義開始了一個新對話。點擊這裡查看:"
958
- subject: "%{manager} 以%{group} 的身份開始了一個新對話。"
959
- comanagers_new_message:
960
- admin_in_group: 您收到此通知是因為您是 %{group} 的管理員。
961
- greeting: 嗨, %{recipient}!
962
- intro: "%{manager} 以%{group} 的名義在一個對話中發佈了新訊息。點擊這裡查看它們:"
963
- subject: "%{manager} 以%{group} 的身份發送了新的訊息。點擊這裡查看它們:"
964
804
  new_conversation:
965
805
  greeting: 嗨, %{recipient}!
966
806
  intro: "%{sender} 與您開始了一個新的對話。點擊這裡查看它:"
967
807
  subject: "%{sender} 已與您開始對話"
968
- new_group_conversation:
969
- admin_in_group: 您收到此通知是因為您是 %{group} 的管理員。
970
- greeting: 嗨, %{recipient}!
971
- intro: "%{sender} 已與群組%{group} 開始了一個新的對話。點擊這裡查看:"
972
- subject: "%{sender} 已與%{group} 開始了一個對話"
973
- new_group_message:
974
- admin_in_group: 您收到此通知是因為您是 %{group} 的管理員。
975
- greeting: 嗨, %{recipient}!
976
- intro: "%{sender} 在與 %{group} 的對話中發表了新訊息。點擊這裡查看:"
977
- subject: "%{group} 收到了 %{sender} 的新訊息。"
978
808
  new_message:
979
809
  greeting: 嗨, %{recipient}!
980
810
  intro: "%{sender} 在您的對話中發布了新訊息。點擊這裡查看:"
@@ -1012,21 +842,6 @@ zh-TW:
1012
842
  send: 發送
1013
843
  update:
1014
844
  error: 由於錯誤,訊息未能傳送.
1015
- metrics:
1016
- download:
1017
- csv: 下載資料(CSV)
1018
- followers:
1019
- description: 追蹤此參與空間的參與者數量
1020
- object: 追隨者
1021
- title: 追隨者
1022
- participants:
1023
- description: 組織中活躍參與者的數量
1024
- object: 參與者
1025
- title: 參與者
1026
- users:
1027
- description: 組織中參與者的數量
1028
- object: 參與者
1029
- title: 參與者
1030
845
  newsletter_mailer:
1031
846
  newsletter:
1032
847
  no_reply_notice: 此封郵件是由無法接收傳入郵件的通知郵件地址發送的。請不要回覆此訊息。
@@ -1143,8 +958,6 @@ zh-TW:
1143
958
  participate: 參與
1144
959
  participate_title: 參與平台的流程
1145
960
  welcome: 歡迎來到 %{organization}!
1146
- statistics:
1147
- headline: '%{organization} 的目前狀態'
1148
961
  sub_hero:
1149
962
  register: 註冊
1150
963
  index:
@@ -1152,10 +965,6 @@ zh-TW:
1152
965
  subheading: 瀏覽 %{name} 的幫助頁面
1153
966
  title: 幫助
1154
967
  topics: 主題
1155
- participatory_space:
1156
- metrics:
1157
- headline: 指標
1158
- link: 顯示所有指標
1159
968
  terms_of_service:
1160
969
  accept:
1161
970
  error: 接受服務條款時出現問題。
@@ -1181,7 +990,6 @@ zh-TW:
1181
990
  deleted: 已刪除的參與者
1182
991
  inaccessible_message: 由於違反服務條款,此個人資料無法存取!
1183
992
  profiles:
1184
- default_officialization_text_for_user_groups: 這個社群已公開驗證,其名稱已經被證實符合其真實名稱。
1185
993
  default_officialization_text_for_users: 這個參與者已經公開驗證,其名稱或角色已被證實與其真實名稱或角色相符。
1186
994
  show:
1187
995
  activity: 啟動
@@ -1189,26 +997,13 @@ zh-TW:
1189
997
  conversations: 對話
1190
998
  followers: 追隨者
1191
999
  following: 關注
1192
- group_admins: 管理管理員
1193
- group_members: 管理成員
1194
- groups: 群組
1195
- members: 成員
1196
1000
  officialized: 正式認證參與者
1197
1001
  send_private_message: 發送私人訊息
1198
1002
  user:
1199
1003
  actions:
1200
- create_user_group: 建立群組
1201
1004
  edit_profile: 編輯個人資料
1202
- edit_user_group: 編輯群組資料
1203
- invite_user: 邀請參與者
1204
- join_user_group: 申請加入群組
1205
- leave_user_group: 退出群組
1206
- manage_user_group_admins: 管理管理員
1207
- manage_user_group_users: 管理成員
1208
1005
  message: 訊息
1209
1006
  resend_email_confirmation_instructions: 重新發送電子郵件確認指示
1210
- confirmation_instructions_sent: 電子郵件確認指示已發送.
1211
- fill_in_email_to_confirm_it: 請填寫您的群組電子郵件以進行確認.
1212
1007
  reported_mailer:
1213
1008
  report:
1214
1009
  authors: 作者
@@ -1226,15 +1021,11 @@ zh-TW:
1226
1021
  reports:
1227
1022
  create:
1228
1023
  success: 報告已成功建立,將由管理員進行審查。
1229
- resource_endorsements:
1230
- create:
1231
- error: 在連署操作過程中出現問題。
1232
1024
  scopes:
1233
1025
  global: 全域範圍
1234
1026
  prompt: 選擇一個範圍
1235
1027
  search:
1236
1028
  results: 搜尋結果
1237
- results_found_for_term: '搜尋結果:%{term}(共找到 %{count} 個結果)'
1238
1029
  term_input_placeholder: 搜尋
1239
1030
  searches:
1240
1031
  filters:
@@ -1259,9 +1050,6 @@ zh-TW:
1259
1050
  close_modal: 關閉視窗
1260
1051
  ok: 好的
1261
1052
  title: 確認
1262
- extended_navigation_bar:
1263
- more: 更多
1264
- unfold: 展開
1265
1053
  filter_form_help:
1266
1054
  help: 下方的表單會在搜尋條件變更時動態篩選搜尋結果。
1267
1055
  skip: 跳到結果
@@ -1293,9 +1081,6 @@ zh-TW:
1293
1081
  public_participation: 公開展示我的出席情況。
1294
1082
  reference:
1295
1083
  reference: '參考資料: %{reference}'
1296
- represent_user_group:
1297
- represent_user_group: 我代表一個群組。
1298
- select_user_group: 選擇一個群組
1299
1084
  results_per_page:
1300
1085
  label: '每頁顯示的結果:'
1301
1086
  title: 選擇每頁的結果數量
@@ -1309,7 +1094,6 @@ zh-TW:
1309
1094
  share_to: 分享至 %{service}
1310
1095
  statistics:
1311
1096
  comments_count: 評論
1312
- endorsements_count: 連署
1313
1097
  followers_count: 追隨者
1314
1098
  headline: 統計資料
1315
1099
  no_stats: 目前還沒有統計資料。
@@ -1325,19 +1109,8 @@ zh-TW:
1325
1109
  no_activities_warning: 這個參與者還沒有任何活動。
1326
1110
  user_contact_disabled: 該參與者不接受直接訊息。
1327
1111
  user_conversations:
1328
- create:
1329
- error: 訊息無法建立。請稍後再試。
1330
- existing_error: 無法建立訊息。該對話已存在,請現在重試。
1331
- success: 對話成功開始!
1332
1112
  index:
1333
- conversations_info: 對話是私密的,沒有其他人可以看到。可以與平台上註冊的任何參與者或群組開始對話。
1334
- no_conversations_warning: 目前還沒有任何對話。
1335
1113
  time_ago: "%{time} 之前"
1336
- reply:
1337
- placeholder: 您的回覆...
1338
- send: 發送
1339
- update:
1340
- error: 訊息未送出,請稍後再試。
1341
1114
  user_report_mailer:
1342
1115
  notify:
1343
1116
  body_1: 使用者 %{user} 已被 %{token} 舉報。
@@ -1596,7 +1369,6 @@ zh-TW:
1596
1369
  impersonation_warning:
1597
1370
  close_session: 關閉階段
1598
1371
  description_html: 您正在管理參與者 <b>%{user_name}</b>。
1599
- expire_time_html: 您的會話將在 <b><span class="minutes">%{minutes}</span> 分鐘內過期</b>。
1600
1372
  language_chooser:
1601
1373
  choose_language: 選擇語言
1602
1374
  notifications_dashboard:
@@ -1628,7 +1400,6 @@ zh-TW:
1628
1400
  my_data: 我的資料
1629
1401
  notifications_settings: 通知設定
1630
1402
  title: 參與者設定
1631
- user_groups: 群組
1632
1403
  locale:
1633
1404
  name: 英文
1634
1405
  name_with_error: 英文 (錯誤!)
data/config/routes.rb CHANGED
@@ -39,14 +39,6 @@ Decidim::Core::Engine.routes.draw do
39
39
  get :cancel
40
40
  end
41
41
 
42
- devise_for :user_groups,
43
- class_name: "Decidim::UserGroup",
44
- module: :devise,
45
- router_name: :decidim,
46
- controllers: {
47
- confirmations: "decidim/devise/confirmations"
48
- }
49
-
50
42
  devise_scope :user do
51
43
  post "omniauth_registrations" => "devise/omniauth_registrations#create"
52
44
  end
@@ -82,7 +74,6 @@ Decidim::Core::Engine.routes.draw do
82
74
  end
83
75
  end
84
76
  resource :notifications_settings, only: [:show, :update], controller: "notifications_settings"
85
- resources :own_user_groups, only: [:index]
86
77
 
87
78
  get "/newsletters_opt_in/:token", to: "newsletters_opt_in#update", as: :newsletters_opt_in
88
79
 
@@ -101,24 +92,6 @@ Decidim::Core::Engine.routes.draw do
101
92
  to: "free_resource_authorization_modals#show",
102
93
  as: :free_resource_authorization_modal
103
94
  )
104
-
105
- resources :groups, except: [:destroy, :index, :show] do
106
- resources :join_requests, only: [:create, :update, :destroy], controller: "user_group_join_requests"
107
- resources :invites, only: [:index, :create, :update, :destroy], controller: "group_invites"
108
- resources :users, only: [:destroy], controller: "group_members", as: "manage_users" do
109
- member do
110
- post :promote
111
- end
112
- member do
113
- post :demote
114
- end
115
- end
116
- resource :email_confirmation, only: [:create], controller: "group_email_confirmations"
117
-
118
- member do
119
- delete :leave
120
- end
121
- end
122
95
  end
123
96
 
124
97
  resources :profiles, only: [:show], param: :nickname, constraints: { nickname: %r{[^/]+} }, format: false
@@ -126,13 +99,7 @@ Decidim::Core::Engine.routes.draw do
126
99
  get "following", to: "profiles#following", as: "profile_following"
127
100
  get "followers", to: "profiles#followers", as: "profile_followers"
128
101
  get "badges", to: "profiles#badges", as: "profile_badges"
129
- get "groups", to: "profiles#groups", as: "profile_groups"
130
- get "members", to: "profiles#members", as: "profile_members"
131
- get "group_members", to: "profiles#group_members", as: "profile_group_members"
132
- get "group_admins", to: "profiles#group_admins", as: "profile_group_admins"
133
102
  get "activity", to: "user_activities#index", as: "profile_activity"
134
- get "tooltip", to: "profiles#tooltip", as: "profile_tooltip"
135
- resources :conversations, except: [:destroy], controller: "user_conversations", as: "profile_conversations"
136
103
  end
137
104
 
138
105
  scope :timeouts do
@@ -143,8 +110,10 @@ Decidim::Core::Engine.routes.draw do
143
110
  resources :pages, only: [:index, :show], format: false
144
111
 
145
112
  get "/search", to: "searches#index", as: :search
113
+ get "/resource_autocomplete", to: "resource_autocomplete#index", as: :resource_autocomplete
146
114
 
147
115
  get "/link", to: "links#new", as: :link
116
+ get "/qr-code", to: "qr#show", as: :qr
148
117
 
149
118
  get "/static_map", to: "static_map#show", as: :static_map
150
119
  put "/pages/terms-of-service/accept", to: "tos#accept_tos", as: :accept_tos
@@ -159,9 +128,7 @@ Decidim::Core::Engine.routes.draw do
159
128
  resource :follow, only: [:create, :destroy]
160
129
  resource :report, only: [:create]
161
130
  resource :report_user, only: [:create]
162
- resources :endorsements, only: [:create, :destroy] do
163
- get :identities, on: :member
164
- end
131
+ resources :likes, only: [:create, :destroy]
165
132
  resources :amends, only: [:new, :reject, :accept], controller: :amendments do
166
133
  collection do
167
134
  post :create
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ConvertUserGroupsIntoUsers < ActiveRecord::Migration[7.0]
4
+ class User < ApplicationRecord
5
+ self.table_name = "decidim_users"
6
+ self.inheritance_column = nil
7
+
8
+ scope :new_group, -> { where("extended_data @> ?", Arel.sql({ group: true }.to_json)) }
9
+ scope :old_group, -> { where(type: "Decidim::UserGroup") }
10
+
11
+ def verified_at
12
+ extended_data["verified_at"]
13
+ end
14
+ end
15
+
16
+ class UserGroup < ApplicationRecord
17
+ self.table_name = "decidim_users"
18
+ self.inheritance_column = nil
19
+ end
20
+
21
+ # rubocop:disable Rails/SkipsModelValidations
22
+ def up
23
+ User.old_group.find_each do |group|
24
+ group.update_attribute(:extended_data, (group.extended_data || {}).merge("group" => true))
25
+ group.update_attribute(:type, "Decidim::User")
26
+ group.update_attribute(:officialized_at, group.verified_at) if group.verified_at.present?
27
+ end
28
+ end
29
+
30
+ def down
31
+ User.new_group.find_each do |group|
32
+ group.update_attribute(:officialized_at, nil)
33
+ group.update_attribute(:type, "Decidim::UserGroup")
34
+ group.update_attribute(:extended_data, (group.extended_data || {}).except("group"))
35
+ end
36
+ end
37
+ # rubocop:enable Rails/SkipsModelValidations
38
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddUserTypeToActionLogs < ActiveRecord::Migration[7.0]
4
+ def change
5
+ add_column :decidim_action_logs, :user_type, :string, default: "Decidim::User", null: false
6
+
7
+ rename_column :decidim_action_logs, :decidim_user_id, :user_id
8
+ add_index :decidim_action_logs,
9
+ [:user_id, :user_type],
10
+ name: "index_decidim_action_log_on_users"
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateDecidimApiJwtDenylist < ActiveRecord::Migration[7.0]
4
+ def change
5
+ create_table :decidim_api_jwt_denylists do |t|
6
+ t.string :jti, null: false
7
+ t.datetime :exp, null: false
8
+ end
9
+ add_index :decidim_api_jwt_denylists, :jti
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddApiKeyToDecidimApiUser < ActiveRecord::Migration[7.0]
4
+ def change
5
+ add_column :decidim_users, :api_key, :string
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RemoveMetricsContentBlocks < ActiveRecord::Migration[7.0]
4
+ def up
5
+ Decidim::ContentBlock.where(manifest_name: "metrics").destroy_all
6
+ end
7
+
8
+ def down; end
9
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ class EnablePkce < ActiveRecord::Migration[7.0]
4
+ def change
5
+ add_column :oauth_access_grants, :code_challenge, :string, null: true
6
+ add_column :oauth_access_grants, :code_challenge_method, :string, null: true
7
+ end
8
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RenameDoorkeeperScopes < ActiveRecord::Migration[7.0]
4
+ def up
5
+ tables.each { |table| update_scopes(table, "profile", "public") }
6
+ end
7
+
8
+ def down
9
+ tables.each { |table| update_scopes(table, "public", "profile") }
10
+ end
11
+
12
+ private
13
+
14
+ def update_scopes(table, new_value, old_value)
15
+ tbl = Arel::Table.new(table)
16
+ um = Arel::UpdateManager.new(tbl)
17
+ um.set([[tbl[:scopes], new_value]])
18
+ um.where(tbl[:scopes].eq(old_value))
19
+ execute um.to_sql
20
+ end
21
+
22
+ def tables
23
+ [:oauth_applications, :oauth_access_grants, :oauth_access_tokens]
24
+ end
25
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RenameEndorsementsToLikes < ActiveRecord::Migration[7.0]
4
+ disable_ddl_transaction!
5
+
6
+ def up
7
+ rename_table :decidim_endorsements, :decidim_likes
8
+
9
+ rename_index :decidim_likes, "idx_endorsements_authors", "idx_likes_authors"
10
+
11
+ rename_index_if_exists(
12
+ "index_decidim_endorsements_on_resource_type_and_resource_id",
13
+ "index_decidim_likes_on_resource_type_and_resource_id"
14
+ )
15
+
16
+ rename_index_if_exists(
17
+ "idx_endorsements_rsrcs_and_authors",
18
+ "idx_likes_rsrcs_and_authors"
19
+ )
20
+
21
+ rename_index_if_exists(
22
+ "index_decidim_endorsements_on_decidim_user_group_id",
23
+ "index_decidim_likes_on_decidim_user_group_id"
24
+ )
25
+ end
26
+
27
+ def down
28
+ rename_table :decidim_likes, :decidim_endorsements
29
+
30
+ rename_index :decidim_endorsements, "idx_likes_authors", "idx_endorsements_authors"
31
+
32
+ rename_index_if_exists(
33
+ "index_decidim_likes_on_resource_type_and_resource_id",
34
+ "index_decidim_endorsements_on_resource_type_and_resource_id"
35
+ )
36
+
37
+ rename_index_if_exists(
38
+ "idx_likes_rsrcs_and_authors",
39
+ "idx_endorsements_rsrcs_and_authors"
40
+ )
41
+
42
+ rename_index_if_exists(
43
+ "index_decidim_likes_on_decidim_user_group_id",
44
+ "index_decidim_endorsements_on_decidim_user_group_id"
45
+ )
46
+ end
47
+
48
+ private
49
+
50
+ def rename_index_if_exists(old_name, new_name)
51
+ return unless index_exists_by_name?(old_name)
52
+
53
+ execute "ALTER INDEX #{old_name} RENAME TO #{new_name};"
54
+ end
55
+
56
+ def index_exists_by_name?(index_name)
57
+ index = select_value <<~SQL.squish
58
+ SELECT to_regclass('#{index_name}')
59
+ SQL
60
+ index.present?
61
+ end
62
+ end