decidim-core 0.30.3 → 0.31.0.rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (777) 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/avatar.erb +1 -7
  8. data/app/cells/decidim/author/likes.erb +4 -0
  9. data/app/cells/decidim/author/name.erb +1 -5
  10. data/app/cells/decidim/author/show.erb +45 -19
  11. data/app/cells/decidim/author_cell.rb +5 -28
  12. data/app/cells/decidim/badge_cell.rb +1 -7
  13. data/app/cells/decidim/card_cell.rb +2 -12
  14. data/app/cells/decidim/card_metadata_cell.rb +4 -4
  15. data/app/cells/decidim/coauthorships_cell.rb +1 -1
  16. data/app/cells/decidim/collapsible_authors/show.erb +1 -1
  17. data/app/cells/decidim/content_blocks/hero_cell.rb +23 -4
  18. data/app/cells/decidim/content_blocks/hero_settings_form/show.erb +16 -2
  19. data/app/cells/decidim/content_blocks/highlighted_content_banner/show.erb +6 -6
  20. data/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb +28 -1
  21. data/app/cells/decidim/content_blocks/highlighted_content_banner_settings_form/show.erb +27 -0
  22. data/app/cells/decidim/content_blocks/highlighted_content_banner_settings_form_cell.rb +13 -0
  23. data/app/cells/decidim/content_blocks/highlighted_elements_for_component_settings_form/show.erb +9 -2
  24. data/app/cells/decidim/content_blocks/html_settings_form/show.erb +3 -1
  25. data/app/cells/decidim/content_blocks/last_activity_cell.rb +1 -1
  26. data/app/cells/decidim/content_blocks/last_activity_settings_form/show.erb +3 -1
  27. data/app/cells/decidim/content_blocks/menu_breadcrumb_last_activity_cell.rb +1 -1
  28. data/app/cells/decidim/content_blocks/participatory_space_extra_data/recent_users.erb +1 -1
  29. data/app/cells/decidim/content_blocks/participatory_space_hero/show.erb +0 -5
  30. data/app/cells/decidim/content_blocks/participatory_space_hero_cell.rb +1 -13
  31. data/app/cells/decidim/content_blocks/participatory_space_hero_settings_form/show.erb +10 -3
  32. data/app/cells/decidim/content_blocks/participatory_space_last_activity/content.erb +1 -1
  33. data/app/cells/decidim/content_blocks/participatory_space_last_activity/recent_avatars.erb +1 -1
  34. data/app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb +3 -3
  35. data/app/cells/decidim/content_blocks/participatory_space_main_data/title.erb +17 -5
  36. data/app/cells/decidim/content_blocks/participatory_space_main_data_cell.rb +4 -0
  37. data/app/cells/decidim/content_blocks/stats/show.erb +2 -3
  38. data/app/cells/decidim/data_consent/modal.erb +1 -1
  39. data/app/cells/decidim/like_block/show.erb +3 -0
  40. data/app/cells/decidim/{endorsement_block_cell.rb → like_block_cell.rb} +2 -2
  41. data/app/cells/decidim/like_buttons/button_content.erb +2 -0
  42. data/app/cells/decidim/like_buttons/show.erb +17 -0
  43. data/app/cells/decidim/{endorsement_buttons → like_buttons}/verification_modal.erb +3 -3
  44. data/app/cells/decidim/like_buttons_cell.rb +77 -0
  45. data/app/cells/decidim/likers_list/empty.erb +3 -0
  46. data/app/cells/decidim/{endorsers_list → likers_list}/full.erb +3 -3
  47. data/app/cells/decidim/likers_list/show.erb +20 -0
  48. data/app/cells/decidim/likers_list_cell.rb +64 -0
  49. data/app/cells/decidim/nav_links/show.erb +1 -1
  50. data/app/cells/decidim/notification_actions/buttons_cell.rb +1 -1
  51. data/app/cells/decidim/onboarding_action_message_cell.rb +1 -1
  52. data/app/cells/decidim/participatory_space_dropdown_metadata/metadata.erb +0 -8
  53. data/app/cells/decidim/participatory_space_dropdown_metadata_cell.rb +0 -8
  54. data/app/cells/decidim/profile/details.erb +1 -1
  55. data/app/cells/decidim/profile/tabs.erb +1 -1
  56. data/app/cells/decidim/profile_actions/show.erb +0 -1
  57. data/app/cells/decidim/profile_actions_cell.rb +5 -91
  58. data/app/cells/decidim/profile_cell.rb +4 -39
  59. data/app/cells/decidim/report_button/content.erb +2 -0
  60. data/app/cells/decidim/report_button/flag_modal.erb +1 -1
  61. data/app/cells/decidim/report_button_cell.rb +1 -1
  62. data/app/cells/decidim/report_user_button/flag_modal.erb +1 -1
  63. data/app/cells/decidim/resource_history_cell.rb +2 -1
  64. data/app/cells/decidim/resource_types_filter/show.erb +1 -1
  65. data/app/cells/decidim/share_button_cell.rb +1 -1
  66. data/app/cells/decidim/share_text_widget/modal.erb +16 -0
  67. data/app/cells/decidim/share_text_widget/show.erb +2 -0
  68. data/app/cells/decidim/share_text_widget_cell.rb +27 -0
  69. data/app/cells/decidim/share_widget/modal.erb +19 -8
  70. data/app/cells/decidim/share_widget/qr_code_modal.erb +26 -0
  71. data/app/cells/decidim/share_widget/show.erb +1 -0
  72. data/app/cells/decidim/share_widget_cell.rb +10 -6
  73. data/app/cells/decidim/statistic/show.erb +23 -5
  74. data/app/cells/decidim/statistic_cell.rb +28 -3
  75. data/app/cells/decidim/tab_panels/show.erb +1 -1
  76. data/app/cells/decidim/user_profile/show.erb +1 -1
  77. data/app/cells/decidim/user_profile_cell.rb +1 -9
  78. data/app/cells/decidim/version_author_cell.rb +0 -7
  79. data/app/commands/decidim/amendable/accept.rb +1 -3
  80. data/app/commands/decidim/amendable/create_draft.rb +2 -3
  81. data/app/commands/decidim/amendable/update_draft.rb +2 -3
  82. data/app/commands/decidim/create_ephemeral_user.rb +7 -1
  83. data/app/commands/decidim/create_omniauth_registration.rb +8 -7
  84. data/app/commands/decidim/create_report.rb +9 -1
  85. data/app/commands/decidim/destroy_account.rb +0 -5
  86. data/app/commands/decidim/like_resource.rb +52 -0
  87. data/app/commands/decidim/messaging/reply_to_conversation.rb +2 -21
  88. data/app/commands/decidim/messaging/start_conversation.rb +2 -21
  89. data/app/commands/decidim/unlike_resource.rb +34 -0
  90. data/app/commands/decidim/update_account.rb +1 -1
  91. data/app/controllers/concerns/decidim/ephemeral_session_checker.rb +6 -2
  92. data/app/controllers/concerns/decidim/user_profile.rb +0 -1
  93. data/app/controllers/decidim/account_controller.rb +1 -1
  94. data/app/controllers/decidim/amendments_controller.rb +4 -5
  95. data/app/controllers/decidim/application_controller.rb +2 -1
  96. data/app/controllers/decidim/devise/confirmations_controller.rb +0 -5
  97. data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +1 -1
  98. data/app/controllers/decidim/devise/passwords_controller.rb +1 -1
  99. data/app/controllers/decidim/devise/registrations_controller.rb +1 -1
  100. data/app/controllers/decidim/doorkeeper/authorizations_controller.rb +19 -1
  101. data/app/controllers/decidim/download_your_data_controller.rb +2 -2
  102. data/app/controllers/decidim/likes_controller.rb +57 -0
  103. data/app/controllers/decidim/links_controller.rb +1 -0
  104. data/app/controllers/decidim/messaging/conversations_controller.rb +1 -8
  105. data/app/controllers/decidim/newsletters_controller.rb +1 -1
  106. data/app/controllers/decidim/notifications_settings_controller.rb +2 -2
  107. data/app/controllers/decidim/pages_controller.rb +0 -1
  108. data/app/controllers/decidim/profiles_controller.rb +2 -57
  109. data/app/controllers/decidim/qr_controller.rb +73 -0
  110. data/app/controllers/decidim/resource_autocomplete_controller.rb +56 -0
  111. data/app/controllers/decidim/user_activities_controller.rb +0 -1
  112. data/app/events/decidim/resource_liked_event.rb +36 -0
  113. data/app/forms/decidim/amendable/create_form.rb +0 -1
  114. data/app/forms/decidim/amendable/edit_form.rb +0 -1
  115. data/app/forms/decidim/amendable/form.rb +4 -4
  116. data/app/forms/decidim/ephemeral_user_form.rb +1 -0
  117. data/app/forms/decidim/notifications_settings_form.rb +1 -1
  118. data/app/forms/decidim/omniauth_registration_form.rb +1 -1
  119. data/app/forms/decidim/upload_validation_form.rb +9 -1
  120. data/app/helpers/decidim/amendments_helper.rb +1 -2
  121. data/app/helpers/decidim/animations_helper.rb +14 -0
  122. data/app/helpers/decidim/decidim_form_helper.rb +17 -6
  123. data/app/helpers/decidim/layout_helper.rb +1 -15
  124. data/app/helpers/decidim/likeable_helper.rb +46 -0
  125. data/app/helpers/decidim/messaging/conversation_helper.rb +1 -1
  126. data/app/helpers/decidim/omniauth_helper.rb +1 -1
  127. data/app/helpers/decidim/qr_code_helper.rb +37 -0
  128. data/app/helpers/decidim/rich_text_editor_helper.rb +0 -1
  129. data/app/helpers/decidim/sanitize_helper.rb +5 -5
  130. data/app/helpers/decidim/social_share_button_helper.rb +11 -10
  131. data/app/jobs/decidim/delete_inactive_participants_job.rb +41 -0
  132. data/app/jobs/decidim/process_inactive_participant_job.rb +48 -0
  133. data/app/mailers/decidim/participants_account_mailer.rb +38 -0
  134. data/app/mailers/decidim/user_group_mailer.rb +49 -0
  135. data/app/models/decidim/action_log.rb +3 -5
  136. data/app/models/decidim/amendment.rb +1 -1
  137. data/app/models/decidim/attachment_collection.rb +2 -0
  138. data/app/models/decidim/authorization_transfer.rb +0 -1
  139. data/app/models/decidim/coauthorship.rb +1 -1
  140. data/app/models/decidim/component.rb +4 -1
  141. data/app/models/decidim/{endorsement.rb → like.rb} +4 -4
  142. data/app/models/decidim/messaging/conversation.rb +3 -5
  143. data/app/models/decidim/messaging/message.rb +3 -15
  144. data/app/models/decidim/omniauth_provider.rb +1 -1
  145. data/app/models/decidim/organization.rb +3 -8
  146. data/app/models/decidim/participatory_space_role_config/{valuator.rb → evaluator.rb} +1 -1
  147. data/app/models/decidim/reminder_record.rb +1 -1
  148. data/app/models/decidim/searchable_resource.rb +16 -0
  149. data/app/models/decidim/taxonomy.rb +6 -1
  150. data/app/models/decidim/user.rb +32 -15
  151. data/app/models/decidim/user_base_entity.rb +2 -2
  152. data/app/packs/entrypoints/decidim_conference_diploma.scss +2 -2
  153. data/app/packs/entrypoints/decidim_core.scss +2 -2
  154. data/app/packs/entrypoints/decidim_editor.js +0 -4
  155. data/app/packs/entrypoints/decidim_map.scss +2 -2
  156. data/app/packs/entrypoints/decidim_overrides.scss +1 -1
  157. data/app/packs/entrypoints/decidim_qr.js +1 -0
  158. data/app/packs/images/decidim/remixicon.symbol.svg +3 -3
  159. data/app/packs/src/decidim/a11y.js +1 -120
  160. data/app/packs/src/decidim/append_redirect_url_to_modals.js +1 -1
  161. data/app/packs/src/decidim/attachments/file_or_link_tabs.js +1 -1
  162. data/app/packs/src/decidim/confirm.js +27 -20
  163. data/app/packs/src/decidim/controllers/.keep +0 -0
  164. data/app/packs/src/decidim/controllers/accordion/controller.js +100 -0
  165. data/app/packs/src/decidim/controllers/account_form/account_form.test.js +423 -0
  166. data/app/packs/src/decidim/controllers/account_form/controller.js +69 -0
  167. data/app/packs/src/decidim/{input_character_counter.js → controllers/character_counter/controller.js} +90 -106
  168. data/app/packs/src/decidim/controllers/clipboard_copy/clipboard_copy.test.js +305 -0
  169. data/app/packs/src/decidim/controllers/clipboard_copy/controller.js +403 -0
  170. data/app/packs/src/decidim/controllers/date_picker/controller.js +12 -0
  171. data/app/packs/src/decidim/controllers/delete_account_form/controller.js +45 -0
  172. data/app/packs/src/decidim/controllers/delete_account_form/delete_account_form.test.js +216 -0
  173. data/app/packs/src/decidim/controllers/dropdown/controller.js +125 -0
  174. data/app/packs/src/decidim/controllers/editor/controller.js +11 -0
  175. data/app/packs/src/decidim/controllers/emoji/controller.js +26 -0
  176. data/app/packs/src/decidim/{input_emoji.js → controllers/emoji/emoji.js} +1 -15
  177. data/app/packs/src/decidim/{form_filter.js → controllers/form_filter/controller.js} +68 -51
  178. data/app/packs/src/decidim/controllers/form_filter/form_filter.test.js +648 -0
  179. data/app/packs/src/decidim/controllers/form_validator/controller.js +23 -0
  180. data/app/packs/src/decidim/controllers/form_validator/form_validator.js +789 -0
  181. data/app/packs/src/decidim/controllers/form_validator/form_validator.test.js +685 -0
  182. data/app/packs/src/decidim/controllers/impersonation_warning/controller.js +137 -0
  183. data/app/packs/src/decidim/controllers/impersonation_warning/impersonation.test.js +382 -0
  184. data/app/packs/src/decidim/controllers/input_tags/controller.js +28 -0
  185. data/app/packs/src/decidim/controllers/mention/controller.js +243 -0
  186. data/app/packs/src/decidim/controllers/mention/input_mentions.test.js +562 -0
  187. data/app/packs/src/decidim/controllers/multiple_mentions/controller.js +215 -0
  188. data/app/packs/src/decidim/controllers/multiple_mentions/input_multiple_mentions.test.js +645 -0
  189. data/app/packs/src/decidim/controllers/notification_action/controller.js +210 -0
  190. data/app/packs/src/decidim/controllers/notification_action/notification_action.test.js +388 -0
  191. data/app/packs/src/decidim/controllers/password_toggler/controller.js +232 -0
  192. data/app/packs/src/decidim/controllers/password_toggler/password_toggler.test.js +229 -0
  193. data/app/packs/src/decidim/controllers/report_form/controller.js +184 -0
  194. data/app/packs/src/decidim/controllers/report_form/report_form_manager.test.js +511 -0
  195. data/app/packs/src/decidim/controllers/scroll_to_last/controller.js +9 -0
  196. data/app/packs/src/decidim/controllers/scroll_to_last/scroll_to_last_child.test.js +225 -0
  197. data/app/packs/src/decidim/controllers/sticky_buttons/controller.js +55 -0
  198. data/app/packs/src/decidim/controllers/sticky_buttons/sticky_buttons.test.js +334 -0
  199. data/app/packs/src/decidim/controllers/sticky_header/controller.js +116 -0
  200. data/app/packs/src/decidim/controllers/sticky_header/sticky_header.test.js +320 -0
  201. data/app/packs/src/decidim/controllers/toggle/controller.js +111 -0
  202. data/app/packs/src/decidim/controllers/toggle/toggle.test.js +260 -0
  203. data/app/packs/src/decidim/controllers/tooltip/controller.js +287 -0
  204. data/app/packs/src/decidim/controllers/tooltip/tooltip.test.js +380 -0
  205. data/app/packs/src/decidim/controllers/user_registration_form/controller.js +160 -0
  206. data/app/packs/src/decidim/controllers/user_registration_form/omniauth_registration_form.test.js +441 -0
  207. data/app/packs/src/decidim/controllers/user_registration_form/user_registration_form.test.js +386 -0
  208. data/app/packs/src/decidim/data_consent/index.js +1 -1
  209. data/app/packs/src/decidim/datalist_select.js +1 -1
  210. data/app/packs/src/decidim/datepicker/form_datepicker.js +1 -1
  211. data/app/packs/src/decidim/datepicker/generate_datepicker.js +2 -2
  212. data/app/packs/src/decidim/datepicker/generate_timepicker.js +2 -2
  213. data/app/packs/src/decidim/direct_uploads/upload_field.js +3 -5
  214. data/app/packs/src/decidim/direct_uploads/upload_modal.js +1 -1
  215. data/app/packs/src/decidim/dropdown_menu.js +1 -1
  216. data/app/packs/src/decidim/editor/common/input_dialog.js +1 -1
  217. data/app/packs/src/decidim/editor/common/suggestion.js +10 -2
  218. data/app/packs/src/decidim/editor/common/upload_dialog.js +1 -1
  219. data/app/packs/src/decidim/editor/extensions/decidim_kit/index.js +7 -7
  220. data/app/packs/src/decidim/editor/extensions/emoji/index.js +2 -3
  221. data/app/packs/src/decidim/editor/extensions/image/index.js +1 -1
  222. data/app/packs/src/decidim/editor/extensions/image/node_view.js +1 -1
  223. data/app/packs/src/decidim/editor/extensions/link/bubble_menu.js +1 -1
  224. data/app/packs/src/decidim/editor/extensions/link/index.js +1 -1
  225. data/app/packs/src/decidim/editor/extensions/mention/index.js +1 -2
  226. data/app/packs/src/decidim/editor/extensions/mention_resource/index.js +69 -0
  227. data/app/packs/src/decidim/editor/extensions/video_embed/index.js +1 -1
  228. data/app/packs/src/decidim/editor/index.js +6 -5
  229. data/app/packs/src/decidim/editor/test/extensions/decidim_kit.test.js +1 -2
  230. data/app/packs/src/decidim/editor/test/extensions/emoji.test.js +17 -0
  231. data/app/packs/src/decidim/editor/test/extensions/heading.test.js +2 -2
  232. data/app/packs/src/decidim/editor/toolbar.js +1 -1
  233. data/app/packs/src/decidim/form_attachments.js +1 -1
  234. data/app/packs/src/decidim/geocoding/attach_input.js +3 -0
  235. data/app/packs/src/decidim/geocoding/provider/here.js +1 -1
  236. data/app/packs/src/decidim/geocoding/provider/photon.js +1 -1
  237. data/app/packs/src/decidim/geocoding/reverse_geocoding.js +2 -2
  238. data/app/packs/src/decidim/geocoding.js +2 -2
  239. data/app/packs/src/decidim/index.js +127 -95
  240. data/app/packs/src/decidim/map/integration/forms.js +1 -1
  241. data/app/packs/src/decidim/map/legacy.js +1 -1
  242. data/app/packs/src/decidim/map/provider/default.js +1 -1
  243. data/app/packs/src/decidim/map/provider/here.js +1 -1
  244. data/app/packs/src/decidim/map.js +1 -1
  245. data/app/packs/src/decidim/{external_link.js → refactor/implementation/external_link.js} +1 -1
  246. data/app/packs/src/decidim/{onboarding_pending_action.js → refactor/integration/onboarding_pending_action.js} +4 -4
  247. data/app/packs/src/decidim/{check_boxes_tree.js → refactor/moved/check_boxes_tree.js} +25 -9
  248. data/app/packs/src/decidim/{i18n.test.js → refactor/moved/i18n.test.js} +1 -1
  249. data/app/packs/src/decidim/{icon.js → refactor/moved/icon.js} +2 -0
  250. data/app/packs/src/decidim/refactor/support/stimulus.js +39 -0
  251. data/app/packs/src/decidim/refactor/test/configuration.test.js +360 -0
  252. data/app/packs/src/decidim/{external_domain_warning.test.js → refactor/test/external_domain_warning.test.js} +1 -1
  253. data/app/packs/src/decidim/{external_link.test.js → refactor/test/external_link.test.js} +1 -1
  254. data/app/packs/src/decidim/results_listing.js +2 -2
  255. data/app/packs/src/decidim/security/selfxss_warning.js +1 -1
  256. data/app/packs/src/decidim/session_timeouter.js +1 -1
  257. data/app/packs/src/decidim/sw/push-permissions.js +1 -1
  258. data/app/packs/src/decidim/utilities/dom.js +1 -1
  259. data/app/packs/stylesheets/decidim/_accordion.scss +37 -3
  260. data/app/packs/stylesheets/decidim/_author.scss +7 -22
  261. data/app/packs/stylesheets/decidim/_buttons.scss +4 -0
  262. data/app/packs/stylesheets/decidim/_callout.scss +1 -1
  263. data/app/packs/stylesheets/decidim/_cards.scss +1 -1
  264. data/app/packs/stylesheets/decidim/_content_blocks.scss +1 -1
  265. data/app/packs/stylesheets/decidim/_cookies.scss +1 -1
  266. data/app/packs/stylesheets/decidim/_datepicker.scss +0 -4
  267. data/app/packs/stylesheets/decidim/_dropdown.scss +56 -19
  268. data/app/packs/stylesheets/decidim/_forms.scss +6 -6
  269. data/app/packs/stylesheets/decidim/_header.scss +17 -1
  270. data/app/packs/stylesheets/decidim/_labels.scss +1 -1
  271. data/app/packs/stylesheets/decidim/_layout.scss +12 -2
  272. data/app/packs/stylesheets/decidim/{_endorsers_list.scss → _likes_list.scss} +1 -1
  273. data/app/packs/stylesheets/decidim/_modal.scss +5 -1
  274. data/app/packs/stylesheets/decidim/_modal_share.scss +83 -9
  275. data/app/packs/stylesheets/decidim/_modal_update.scss +1 -5
  276. data/app/packs/stylesheets/decidim/_participatory_spaces.scss +1 -1
  277. data/app/packs/stylesheets/decidim/_rich_text.scss +13 -0
  278. data/app/packs/stylesheets/decidim/_statistics.scss +35 -3
  279. data/app/packs/stylesheets/decidim/_tooltip.scss +1 -1
  280. data/app/packs/stylesheets/decidim/_typography.scss +6 -0
  281. data/app/packs/stylesheets/decidim/_wizard_steps.scss +1 -1
  282. data/app/packs/stylesheets/decidim/application.scss +76 -76
  283. data/app/packs/stylesheets/decidim/editor.scss +11 -12
  284. data/app/packs/stylesheets/decidim/legacy/email.scss +6 -5
  285. data/app/packs/stylesheets/decidim/map.scss +5 -3
  286. data/app/packs/stylesheets/decidim/qr.scss +65 -0
  287. data/app/permissions/decidim/default_permissions.rb +16 -0
  288. data/app/permissions/decidim/permissions.rb +5 -26
  289. data/app/presenters/decidim/admin_log/base_user_presenter.rb +2 -2
  290. data/app/presenters/decidim/admin_log/organization_presenter.rb +0 -15
  291. data/app/presenters/decidim/home_stats_presenter.rb +4 -54
  292. data/app/presenters/decidim/log/base_presenter.rb +1 -1
  293. data/app/presenters/decidim/menu_item_presenter.rb +10 -3
  294. data/app/presenters/decidim/official_author_presenter.rb +0 -4
  295. data/app/presenters/decidim/participatory_space_private_user_presenter.rb +0 -4
  296. data/app/presenters/decidim/resource_locator_presenter.rb +15 -4
  297. data/app/presenters/decidim/resource_presenter.rb +8 -8
  298. data/app/presenters/decidim/stats_presenter.rb +39 -60
  299. data/app/presenters/decidim/taxonomy_presenter.rb +5 -1
  300. data/app/presenters/decidim/user_presenter.rb +0 -6
  301. data/app/queries/decidim/authorized_users.rb +26 -0
  302. data/app/queries/decidim/inactive_users_query.rb +31 -0
  303. data/app/queries/decidim/public_activities.rb +2 -2
  304. data/app/queries/decidim/stats_followers_count.rb +43 -0
  305. data/app/queries/decidim/stats_participants_count.rb +102 -0
  306. data/app/serializers/decidim/exporters/open_data_user_serializer.rb +1 -5
  307. data/app/serializers/decidim/exporters/participatory_space_serializer.rb +0 -1
  308. data/app/services/decidim/action_logger.rb +2 -1
  309. data/app/services/decidim/base_diff_renderer.rb +0 -17
  310. data/app/services/decidim/onboarding_manager.rb +4 -0
  311. data/app/services/decidim/open_data_exporter.rb +19 -11
  312. data/app/services/decidim/send_push_notification.rb +4 -3
  313. data/app/services/decidim/traceability.rb +1 -1
  314. data/app/validators/etiquette_validator.rb +7 -0
  315. data/app/validators/translated_etiquette_validator.rb +1 -0
  316. data/app/views/decidim/account/_old_password_field.html.erb +1 -1
  317. data/app/views/decidim/account/_password_fields.html.erb +1 -1
  318. data/app/views/decidim/account/delete.html.erb +1 -1
  319. data/app/views/decidim/account/show.html.erb +3 -3
  320. data/app/views/decidim/amendments/edit_draft.html.erb +0 -4
  321. data/app/views/decidim/amendments/new.html.erb +0 -4
  322. data/app/views/decidim/amendments/preview_draft.html.erb +1 -1
  323. data/app/views/decidim/application/_accordion_section.html.erb +1 -1
  324. data/app/views/decidim/application/_collection.html.erb +1 -1
  325. data/app/views/decidim/application/_radio_accordion.html.erb +30 -0
  326. data/app/views/decidim/devise/omniauth_registrations/new.html.erb +1 -1
  327. data/app/views/decidim/devise/omniauth_registrations/new_tos_fields.html.erb +1 -1
  328. data/app/views/decidim/devise/registrations/new.html.erb +1 -1
  329. data/app/views/decidim/devise/shared/_links.html.erb +1 -1
  330. data/app/views/decidim/doorkeeper/authorizations/new.html.erb +39 -8
  331. data/app/views/decidim/errors/internal_server_error.html.erb +1 -0
  332. data/app/views/decidim/likes/update_buttons_and_counters.js.erb +21 -0
  333. data/app/views/decidim/messaging/conversations/_add_conversation_users.html.erb +2 -2
  334. data/app/views/decidim/messaging/conversations/_reply_form.html.erb +1 -1
  335. data/app/views/decidim/messaging/conversations/_start.html.erb +1 -1
  336. data/app/views/decidim/messaging/conversations/create.js.erb +0 -1
  337. data/app/views/decidim/messaging/conversations/new.html.erb +1 -1
  338. data/app/views/decidim/messaging/conversations/show.html.erb +1 -1
  339. data/app/views/decidim/notifications_settings/show.html.erb +3 -3
  340. data/app/views/decidim/pages/_tabbed.html.erb +1 -1
  341. data/app/views/decidim/pages/index.html.erb +1 -1
  342. data/app/views/decidim/participants_account_mailer/inactivity_notification.html.erb +13 -0
  343. data/app/views/decidim/participants_account_mailer/removal_notification.html.erb +11 -0
  344. data/app/views/decidim/profiles/show.html.erb +1 -1
  345. data/app/views/decidim/qr/show.html.erb +28 -0
  346. data/app/views/decidim/searches/_filters.html.erb +18 -2
  347. data/app/views/decidim/searches/index.html.erb +5 -2
  348. data/app/views/decidim/shared/_confirm_modal.html.erb +5 -3
  349. data/app/views/decidim/shared/_filters.html.erb +2 -2
  350. data/app/views/decidim/shared/_orders.html.erb +1 -1
  351. data/app/views/decidim/shared/_resource_actions.html.erb +8 -5
  352. data/app/views/decidim/user_activities/index.html.erb +1 -1
  353. data/app/views/decidim/user_group_mailer/notify_deprecation_to_member.html.erb +18 -0
  354. data/app/views/decidim/user_group_mailer/notify_deprecation_to_owner.html.erb +19 -0
  355. data/app/views/decidim/user_group_mailer/notify_user_group_patched.html.erb +21 -0
  356. data/app/views/layouts/decidim/_head.html.erb +15 -12
  357. data/app/views/layouts/decidim/_impersonation_warning.html.erb +1 -1
  358. data/app/views/layouts/decidim/_js_configuration.html.erb +17 -19
  359. data/app/views/layouts/decidim/_meta_tags_context.html.erb +3 -0
  360. data/app/views/layouts/decidim/_offline_banner.html.erb +1 -1
  361. data/app/views/layouts/decidim/_wrapper.html.erb +8 -6
  362. data/app/views/layouts/decidim/footer/_focus_mode_main.html.erb +7 -0
  363. data/app/views/layouts/decidim/footer/_main_language_chooser.html.erb +1 -1
  364. data/app/views/layouts/decidim/header/_close_ephemeral_session.html.erb +12 -2
  365. data/app/views/layouts/decidim/header/_focus_mode_back_button.html.erb +24 -0
  366. data/app/views/layouts/decidim/header/_main.html.erb +28 -22
  367. data/app/views/layouts/decidim/header/_main_links_desktop.html.erb +1 -1
  368. data/app/views/layouts/decidim/header/_main_links_dropdown.html.erb +18 -18
  369. data/app/views/layouts/decidim/header/_main_links_mobile_item_account.html.erb +1 -1
  370. data/app/views/layouts/decidim/header/_main_menu_mobile.html.erb +1 -1
  371. data/app/views/layouts/decidim/header/_menu_breadcrumb_desktop.html.erb +1 -1
  372. data/app/views/layouts/decidim/header/_menu_breadcrumb_items.html.erb +1 -1
  373. data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +1 -1
  374. data/app/views/layouts/decidim/header/_mobile_language_choose.html.erb +1 -1
  375. data/app/views/layouts/decidim/mailer.html.erb +2 -2
  376. data/app/views/layouts/decidim/newsletter_base.html.erb +2 -2
  377. data/app/views/layouts/decidim/shared/_layout_two_col.html.erb +3 -1
  378. data/app/views/layouts/decidim/shared/_layout_user_profile.html.erb +7 -3
  379. data/config/assets.rb +3 -3
  380. data/config/initializers/devise.rb +8 -0
  381. data/config/initializers/omniauth.rb +1 -1
  382. data/config/locales/ar.yml +0 -209
  383. data/config/locales/bg.yml +0 -238
  384. data/config/locales/bs-BA.yml +0 -30
  385. data/config/locales/ca-IT.yml +122 -286
  386. data/config/locales/ca.yml +122 -286
  387. data/config/locales/cs.yml +84 -284
  388. data/config/locales/de.yml +102 -285
  389. data/config/locales/el.yml +0 -224
  390. data/config/locales/en.yml +122 -286
  391. data/config/locales/eo.yml +0 -2
  392. data/config/locales/es-MX.yml +122 -286
  393. data/config/locales/es-PY.yml +122 -286
  394. data/config/locales/es.yml +122 -286
  395. data/config/locales/eu.yml +114 -287
  396. data/config/locales/fi-plain.yml +112 -286
  397. data/config/locales/fi.yml +112 -286
  398. data/config/locales/fr-CA.yml +85 -275
  399. data/config/locales/fr.yml +85 -275
  400. data/config/locales/ga-IE.yml +0 -28
  401. data/config/locales/gl.yml +0 -140
  402. data/config/locales/hu.yml +0 -237
  403. data/config/locales/id-ID.yml +0 -136
  404. data/config/locales/is-IS.yml +0 -14
  405. data/config/locales/it.yml +1 -234
  406. data/config/locales/ja.yml +97 -282
  407. data/config/locales/lb.yml +0 -189
  408. data/config/locales/lt.yml +0 -240
  409. data/config/locales/lv.yml +0 -186
  410. data/config/locales/nl.yml +0 -189
  411. data/config/locales/no.yml +0 -189
  412. data/config/locales/pl.yml +0 -244
  413. data/config/locales/pt-BR.yml +0 -213
  414. data/config/locales/pt.yml +0 -189
  415. data/config/locales/ro-RO.yml +54 -218
  416. data/config/locales/ru.yml +0 -62
  417. data/config/locales/sk.yml +0 -164
  418. data/config/locales/sr-CS.yml +0 -31
  419. data/config/locales/sv.yml +80 -263
  420. data/config/locales/tr-TR.yml +0 -189
  421. data/config/locales/uk.yml +0 -23
  422. data/config/locales/zh-CN.yml +0 -180
  423. data/config/locales/zh-TW.yml +0 -229
  424. data/config/routes.rb +3 -36
  425. data/db/migrate/20250217192438_convert_user_groups_into_users.rb +56 -0
  426. data/db/migrate/20250221085317_add_user_type_to_action_logs.rb +12 -0
  427. data/db/migrate/20250221090905_create_decidim_api_jwt_denylist.rb +11 -0
  428. data/db/migrate/20250221091348_add_api_key_to_decidim_api_user.rb +7 -0
  429. data/db/migrate/20250327143657_remove_metrics_content_blocks.rb +9 -0
  430. data/db/migrate/20250401153444_enable_pkce.rb +8 -0
  431. data/db/migrate/20250416130426_rename_doorkeeper_scopes.rb +25 -0
  432. data/db/migrate/20250515105231_rename_endorsements_to_likes.rb +62 -0
  433. data/db/migrate/20250523104311_move_cta_to_hero_content_block.rb +34 -0
  434. data/db/migrate/20250527122040_move_highlighted_content_banner_settings_to_content_block.rb +69 -0
  435. data/db/migrate/20250603103953_add_refresh_tokens_enabled_to_doorkeeper_applications.rb +7 -0
  436. data/db/migrate/20250609073104_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb +10 -0
  437. data/db/migrate/20250613122148_remove_hashtag_table_from_core.rb +7 -0
  438. data/decidim-core.gemspec +4 -4
  439. data/{app/helpers → lib}/decidim/action_authorization_helper.rb +5 -4
  440. data/lib/decidim/amendable.rb +4 -4
  441. data/lib/decidim/api/functions/user_entity_finder.rb +1 -1
  442. data/lib/decidim/api/input_filters/component_input_filter.rb +3 -3
  443. data/lib/decidim/api/input_filters/user_entity_input_filter.rb +0 -21
  444. data/lib/decidim/api/input_sorts/has_likeable_input_sort.rb +15 -0
  445. data/lib/decidim/api/interfaces/attachable_collection_interface.rb +13 -0
  446. data/lib/decidim/api/interfaces/author_interface.rb +1 -2
  447. data/lib/decidim/api/interfaces/authorable_interface.rb +2 -2
  448. data/lib/decidim/api/interfaces/coauthorable_interface.rb +1 -1
  449. data/lib/decidim/api/interfaces/component_interface.rb +6 -0
  450. data/lib/decidim/api/interfaces/followable_interface.rb +13 -0
  451. data/lib/decidim/api/interfaces/likeable_interface.rb +19 -0
  452. data/lib/decidim/api/interfaces/localizable_interface.rb +18 -0
  453. data/lib/decidim/api/interfaces/participatory_space_interface.rb +6 -8
  454. data/lib/decidim/api/interfaces/referable_interface.rb +13 -0
  455. data/lib/decidim/api/interfaces/timestamps_interface.rb +0 -1
  456. data/lib/decidim/api/interfaces/traceable_interface.rb +1 -1
  457. data/lib/decidim/api/types/attachment_collection_type.rb +14 -0
  458. data/lib/decidim/api/types/organization_type.rb +3 -1
  459. data/lib/decidim/api/types/session_type.rb +0 -5
  460. data/lib/decidim/api/types/statistic_type.rb +29 -3
  461. data/lib/decidim/api/types/trace_version_type.rb +1 -1
  462. data/lib/decidim/api/types/user_type.rb +1 -2
  463. data/lib/decidim/api_response_helper.rb +12 -0
  464. data/lib/decidim/asset_router/storage.rb +2 -4
  465. data/lib/decidim/assets/tailwind/instance.rb +1 -1
  466. data/lib/decidim/assets/tailwind/tailwind.config.js.erb +4 -3
  467. data/lib/decidim/attribute_encryptor.rb +1 -1
  468. data/lib/decidim/attributes/time_with_zone.rb +1 -1
  469. data/lib/decidim/authorable.rb +5 -34
  470. data/lib/decidim/coauthorable.rb +13 -31
  471. data/lib/decidim/content_parsers/blob_parser.rb +1 -1
  472. data/lib/decidim/content_parsers/mention_resource_parser.rb +23 -0
  473. data/lib/decidim/content_parsers/tag_parser.rb +2 -2
  474. data/lib/decidim/content_parsers/user_parser.rb +2 -2
  475. data/lib/decidim/content_parsers.rb +14 -2
  476. data/lib/decidim/content_processor.rb +1 -1
  477. data/lib/decidim/content_renderers/mention_resource_renderer.rb +77 -0
  478. data/lib/decidim/content_renderers.rb +1 -2
  479. data/lib/decidim/core/api.rb +7 -8
  480. data/lib/decidim/core/content_blocks/registry_manager.rb +19 -5
  481. data/lib/decidim/core/engine.rb +72 -104
  482. data/lib/decidim/core/menu.rb +0 -7
  483. data/lib/decidim/core/seeds.rb +11 -39
  484. data/lib/decidim/core/test/factories.rb +22 -121
  485. data/lib/decidim/core/test/shared_examples/authorable.rb +0 -17
  486. data/lib/decidim/core/test/shared_examples/coauthorable.rb +5 -48
  487. data/lib/decidim/core/test/shared_examples/comments_examples.rb +7 -56
  488. data/lib/decidim/core/test/shared_examples/likeable.rb +22 -0
  489. data/lib/decidim/core/test/shared_examples/manage_share_tokens_examples.rb +16 -3
  490. data/lib/decidim/core/test/shared_examples/map_examples.rb +1 -1
  491. data/lib/decidim/core/test/shared_examples/oauth_application_examples.rb +137 -0
  492. data/lib/decidim/core/test/shared_examples/participatory_space_dropdown_metadata_cell_examples.rb +0 -18
  493. data/lib/decidim/core/test/shared_examples/permissions.rb +0 -46
  494. data/lib/decidim/core/test/shared_examples/reports_examples.rb +2 -2
  495. data/lib/decidim/core/test/shared_examples/{resource_endorsed_event_examples.rb → resource_liked_event_examples.rb} +7 -7
  496. data/lib/decidim/core/test/shared_examples/resource_search_examples.rb +0 -14
  497. data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +8 -34
  498. data/lib/decidim/core/test/shared_examples/social_share_examples.rb +79 -0
  499. data/lib/decidim/core/test/shared_examples/system_like_resource_examples.rb +192 -0
  500. data/lib/decidim/core/test/shared_examples/uncommentable_component_examples.rb +2 -2
  501. data/lib/decidim/core/test/shared_examples/{with_endorsable_permissions_examples.rb → with_likeable_permissions_examples.rb} +22 -22
  502. data/lib/decidim/core/test.rb +6 -9
  503. data/lib/decidim/core/version.rb +1 -1
  504. data/lib/decidim/core.rb +237 -88
  505. data/lib/decidim/deprecations.rb +1 -1
  506. data/lib/decidim/download_your_data_serializers.rb +6 -3
  507. data/lib/decidim/env.rb +3 -1
  508. data/lib/decidim/events.rb +0 -1
  509. data/lib/decidim/form_builder.rb +26 -43
  510. data/lib/decidim/gamification/badge_scorer.rb +0 -2
  511. data/lib/decidim/gamification.rb +1 -1
  512. data/lib/decidim/has_conversations.rb +0 -44
  513. data/lib/decidim/has_workflows.rb +42 -0
  514. data/lib/decidim/icon_registry.rb +4 -4
  515. data/lib/decidim/legacy_form_builder.rb +17 -2
  516. data/lib/decidim/likeable.rb +24 -0
  517. data/lib/decidim/manifest_registry.rb +1 -1
  518. data/lib/decidim/map/provider/dynamic_map/here.rb +0 -19
  519. data/lib/decidim/map/provider/static_map/here.rb +2 -10
  520. data/lib/decidim/menu.rb +1 -1
  521. data/lib/decidim/moderation_tools.rb +1 -1
  522. data/lib/decidim/mutation_registry.rb +17 -0
  523. data/lib/decidim/newsletter_encryptor.rb +1 -1
  524. data/lib/decidim/oauth/token_generator.rb +35 -0
  525. data/lib/decidim/oauth.rb +7 -0
  526. data/lib/decidim/organization_settings.rb +2 -10
  527. data/lib/decidim/paddable.rb +1 -1
  528. data/lib/decidim/participatory_space_resourceable.rb +2 -2
  529. data/lib/decidim/participatory_space_user.rb +1 -1
  530. data/lib/decidim/pdf_signature_example.rb +108 -0
  531. data/lib/decidim/query.rb +1 -1
  532. data/lib/decidim/query_extensions.rb +0 -33
  533. data/lib/decidim/reportable.rb +1 -1
  534. data/lib/decidim/searchable.rb +4 -2
  535. data/lib/decidim/seeds.rb +8 -0
  536. data/lib/decidim/settings_manifest.rb +3 -2
  537. data/lib/decidim/{webpacker → shakapacker}/configuration.rb +4 -4
  538. data/lib/decidim/{webpacker → shakapacker}/runner.rb +3 -3
  539. data/lib/decidim/shakapacker/shakapacker.rb +8 -0
  540. data/lib/decidim/{webpacker → shakapacker}/shakapacker.yml +3 -1
  541. data/lib/decidim/{webpacker → shakapacker}/webpack/custom.js +1 -1
  542. data/lib/decidim/shakapacker.rb +34 -0
  543. data/lib/decidim/social_share_service_manifest.rb +7 -12
  544. data/lib/decidim/stats_registry.rb +15 -3
  545. data/{app/helpers → lib}/decidim/tooltip_helper.rb +3 -3
  546. data/lib/decidim/url_option_resolver.rb +1 -1
  547. data/lib/decidim/view_model.rb +0 -3
  548. data/lib/decidim/webpacker.rb +11 -20
  549. data/lib/decidim/workflow_registry.rb +61 -0
  550. data/lib/tasks/decidim_participants_tasks.rake +22 -0
  551. data/lib/tasks/{decidim_webpacker_tasks.rake → decidim_shakapacker_tasks.rake} +35 -33
  552. data/lib/tasks/decidim_tasks.rake +4 -1
  553. data/lib/tasks/decidim_taxonomies.rake +0 -34
  554. data/lib/tasks/upgrade/clean.rake +1 -1
  555. data/lib/tasks/upgrade/decidim_action_log_valuation_assignment.rake +13 -0
  556. data/lib/tasks/upgrade/decidim_change_valuator_tasks.rake +12 -0
  557. data/lib/tasks/upgrade/{decidim_deduplicate_endorsements.rake → decidim_deduplicate_likes.rake} +10 -10
  558. data/lib/tasks/upgrade/decidim_migrate_wysiwyg_content.rake +2 -2
  559. data/lib/tasks/upgrade/decidim_paper_trail_valuation_assignment.rake +13 -0
  560. data/lib/tasks/upgrade/user_groups_migration.rake +188 -0
  561. metadata +204 -255
  562. data/app/cells/decidim/author/endorsements.erb +0 -4
  563. data/app/cells/decidim/author/profile_minicard.erb +0 -30
  564. data/app/cells/decidim/content_blocks/organization_metrics_cell.rb +0 -21
  565. data/app/cells/decidim/content_blocks/participatory_space_metrics/content.erb +0 -18
  566. data/app/cells/decidim/content_blocks/participatory_space_metrics_cell.rb +0 -43
  567. data/app/cells/decidim/endorsement_block/show.erb +0 -3
  568. data/app/cells/decidim/endorsement_buttons/button_content.erb +0 -2
  569. data/app/cells/decidim/endorsement_buttons/select_identity_button.erb +0 -7
  570. data/app/cells/decidim/endorsement_buttons/show.erb +0 -17
  571. data/app/cells/decidim/endorsement_buttons_cell.rb +0 -87
  572. data/app/cells/decidim/endorsers_list/empty.erb +0 -3
  573. data/app/cells/decidim/endorsers_list/show.erb +0 -20
  574. data/app/cells/decidim/endorsers_list_cell.rb +0 -64
  575. data/app/cells/decidim/group_admins/show.erb +0 -34
  576. data/app/cells/decidim/group_admins_cell.rb +0 -8
  577. data/app/cells/decidim/group_members/show.erb +0 -46
  578. data/app/cells/decidim/group_members_cell.rb +0 -8
  579. data/app/cells/decidim/groups/show.erb +0 -14
  580. data/app/cells/decidim/groups_cell.rb +0 -22
  581. data/app/cells/decidim/members/show.erb +0 -12
  582. data/app/cells/decidim/members_cell.rb +0 -34
  583. data/app/cells/decidim/profile_actions/dropdown_actions.erb +0 -21
  584. data/app/cells/decidim/represent_user_group/show.erb +0 -11
  585. data/app/cells/decidim/represent_user_group_cell.rb +0 -46
  586. data/app/cells/decidim/user_conversation/conversation_header.erb +0 -14
  587. data/app/cells/decidim/user_conversation/messages.erb +0 -1
  588. data/app/cells/decidim/user_conversation/new.erb +0 -6
  589. data/app/cells/decidim/user_conversation/reply.erb +0 -9
  590. data/app/cells/decidim/user_conversation/show.erb +0 -19
  591. data/app/cells/decidim/user_conversation/start.erb +0 -12
  592. data/app/cells/decidim/user_conversation_cell.rb +0 -62
  593. data/app/cells/decidim/user_conversations/new_conversation_button.erb +0 -20
  594. data/app/cells/decidim/user_conversations/show.erb +0 -13
  595. data/app/cells/decidim/user_conversations_cell.rb +0 -28
  596. data/app/cells/decidim/user_group_pending_invitations_list/show.erb +0 -28
  597. data/app/cells/decidim/user_group_pending_invitations_list_cell.rb +0 -26
  598. data/app/cells/decidim/user_group_pending_requests_list/show.erb +0 -27
  599. data/app/cells/decidim/user_group_pending_requests_list_cell.rb +0 -26
  600. data/app/commands/decidim/accept_group_invitation.rb +0 -43
  601. data/app/commands/decidim/accept_user_group_join_request.rb +0 -53
  602. data/app/commands/decidim/create_user_group.rb +0 -73
  603. data/app/commands/decidim/demote_membership.rb +0 -57
  604. data/app/commands/decidim/endorse_resource.rb +0 -66
  605. data/app/commands/decidim/invite_user_to_group.rb +0 -63
  606. data/app/commands/decidim/join_user_group.rb +0 -57
  607. data/app/commands/decidim/leave_user_group.rb +0 -47
  608. data/app/commands/decidim/promote_membership.rb +0 -55
  609. data/app/commands/decidim/reject_group_invitation.rb +0 -42
  610. data/app/commands/decidim/reject_user_group_join_request.rb +0 -53
  611. data/app/commands/decidim/remove_user_from_group.rb +0 -53
  612. data/app/commands/decidim/unendorse_resource.rb +0 -39
  613. data/app/commands/decidim/update_user_group.rb +0 -72
  614. data/app/controllers/concerns/decidim/user_groups.rb +0 -23
  615. data/app/controllers/decidim/endorsements_controller.rb +0 -71
  616. data/app/controllers/decidim/group_email_confirmations_controller.rb +0 -32
  617. data/app/controllers/decidim/group_invites_controller.rb +0 -104
  618. data/app/controllers/decidim/group_members_controller.rb +0 -75
  619. data/app/controllers/decidim/groups_controller.rb +0 -99
  620. data/app/controllers/decidim/own_user_groups_controller.rb +0 -15
  621. data/app/controllers/decidim/user_conversations_controller.rb +0 -133
  622. data/app/controllers/decidim/user_group_join_requests_controller.rb +0 -72
  623. data/app/events/decidim/demoted_membership_event.rb +0 -28
  624. data/app/events/decidim/invited_to_group_event.rb +0 -62
  625. data/app/events/decidim/join_request_accepted_event.rb +0 -28
  626. data/app/events/decidim/join_request_created_event.rb +0 -28
  627. data/app/events/decidim/join_request_rejected_event.rb +0 -28
  628. data/app/events/decidim/promoted_to_admin_event.rb +0 -28
  629. data/app/events/decidim/removed_from_group_event.rb +0 -28
  630. data/app/events/decidim/resource_endorsed_event.rb +0 -36
  631. data/app/events/decidim/user_group_admin_event.rb +0 -37
  632. data/app/events/decidim/user_group_created_event.rb +0 -6
  633. data/app/events/decidim/user_group_updated_event.rb +0 -6
  634. data/app/forms/decidim/invite_user_to_group_form.rb +0 -29
  635. data/app/forms/decidim/user_group_form.rb +0 -87
  636. data/app/helpers/decidim/cta_button_helper.rb +0 -31
  637. data/app/helpers/decidim/endorsable_helper.rb +0 -84
  638. data/app/helpers/decidim/twitter_search_helper.rb +0 -14
  639. data/app/helpers/decidim/user_group_helper.rb +0 -22
  640. data/app/jobs/decidim/metric_job.rb +0 -15
  641. data/app/models/decidim/metric.rb +0 -25
  642. data/app/models/decidim/user_group.rb +0 -217
  643. data/app/models/decidim/user_group_membership.rb +0 -17
  644. data/app/packs/entrypoints/decidim_widget.js +0 -1
  645. data/app/packs/src/decidim/abide_form_validator_fixer.js +0 -44
  646. data/app/packs/src/decidim/account_form.js +0 -96
  647. data/app/packs/src/decidim/append_elements.js +0 -6
  648. data/app/packs/src/decidim/back_to_list.js +0 -26
  649. data/app/packs/src/decidim/change_report_form_behavior.js +0 -45
  650. data/app/packs/src/decidim/clipboard.js +0 -128
  651. data/app/packs/src/decidim/editor/extensions/hashtag/index.js +0 -66
  652. data/app/packs/src/decidim/editor/extensions/heading/index.js +0 -33
  653. data/app/packs/src/decidim/editor/test/extensions/hashtag.test.js +0 -105
  654. data/app/packs/src/decidim/form_filter.component_for_testing.js +0 -7
  655. data/app/packs/src/decidim/form_validator.js +0 -56
  656. data/app/packs/src/decidim/gallery.js +0 -5
  657. data/app/packs/src/decidim/impersonation.js +0 -23
  658. data/app/packs/src/decidim/input_autojump.js +0 -38
  659. data/app/packs/src/decidim/input_hashtags.js +0 -91
  660. data/app/packs/src/decidim/input_mentions.js +0 -143
  661. data/app/packs/src/decidim/input_multiple_mentions.js +0 -115
  662. data/app/packs/src/decidim/input_tags.js +0 -16
  663. data/app/packs/src/decidim/notifications_actions.js +0 -40
  664. data/app/packs/src/decidim/password_toggler.js +0 -104
  665. data/app/packs/src/decidim/remote_tooltips.js +0 -38
  666. data/app/packs/src/decidim/responsive_horizontal_tabs.js +0 -12
  667. data/app/packs/src/decidim/scroll_to_last_child.js +0 -14
  668. data/app/packs/src/decidim/slug_form.js +0 -9
  669. data/app/packs/src/decidim/sticky_footer.js +0 -48
  670. data/app/packs/src/decidim/sticky_header.js +0 -62
  671. data/app/packs/src/decidim/toggle.js +0 -37
  672. data/app/packs/src/decidim/tooltips.js +0 -152
  673. data/app/packs/src/decidim/user_registrations.js +0 -65
  674. data/app/packs/src/decidim/vizzs/areachart.js +0 -251
  675. data/app/packs/src/decidim/vizzs/index.js +0 -82
  676. data/app/packs/src/decidim/widget.js +0 -14
  677. data/app/packs/stylesheets/decidim/_hashtags.scss +0 -5
  678. data/app/packs/stylesheets/decidim/_metrics.scss +0 -70
  679. data/app/packs/stylesheets/decidim/_modal_identities.scss +0 -23
  680. data/app/presenters/decidim/admin_log/user_group_presenter.rb +0 -31
  681. data/app/presenters/decidim/hashtag_presenter.rb +0 -37
  682. data/app/presenters/decidim/metric_charts_presenter.rb +0 -92
  683. data/app/presenters/decidim/metric_object_presenter.rb +0 -32
  684. data/app/presenters/decidim/user_group_presenter.rb +0 -38
  685. data/app/queries/decidim/metric_manage.rb +0 -81
  686. data/app/queries/decidim/metric_measure.rb +0 -36
  687. data/app/queries/decidim/metrics/blocked_users_metric_manage.rb +0 -26
  688. data/app/queries/decidim/metrics/followers_metric_manage.rb +0 -65
  689. data/app/queries/decidim/metrics/participants_metric_manage.rb +0 -79
  690. data/app/queries/decidim/metrics/reported_users_metric_manage.rb +0 -26
  691. data/app/queries/decidim/metrics/user_reports_metric_manage.rb +0 -26
  692. data/app/queries/decidim/metrics/users_metric_manage.rb +0 -26
  693. data/app/queries/decidim/user_groups/accepted_memberships.rb +0 -36
  694. data/app/queries/decidim/user_groups/accepted_user_groups.rb +0 -38
  695. data/app/queries/decidim/user_groups/accepted_users.rb +0 -36
  696. data/app/queries/decidim/user_groups/admin_memberships.rb +0 -37
  697. data/app/queries/decidim/user_groups/invited_memberships.rb +0 -36
  698. data/app/queries/decidim/user_groups/manageable_user_groups.rb +0 -39
  699. data/app/queries/decidim/user_groups/member_memberships.rb +0 -37
  700. data/app/resolvers/decidim/core/metric_resolver.rb +0 -71
  701. data/app/resolvers/decidim/hashtags_resolver.rb +0 -15
  702. data/app/serializers/decidim/exporters/open_data_metric_serializer.rb +0 -22
  703. data/app/serializers/decidim/exporters/open_data_user_group_serializer.rb +0 -38
  704. data/app/views/decidim/endorsements/_identity.html.erb +0 -4
  705. data/app/views/decidim/endorsements/identities.html.erb +0 -18
  706. data/app/views/decidim/endorsements/update_buttons_and_counters.js.erb +0 -25
  707. data/app/views/decidim/group_invites/index.html.erb +0 -26
  708. data/app/views/decidim/groups/_form.html.erb +0 -17
  709. data/app/views/decidim/groups/edit.html.erb +0 -19
  710. data/app/views/decidim/groups/new.html.erb +0 -23
  711. data/app/views/decidim/messaging/conversation_mailer/comanagers_new_conversation.html.erb +0 -17
  712. data/app/views/decidim/messaging/conversation_mailer/comanagers_new_message.html.erb +0 -17
  713. data/app/views/decidim/messaging/conversation_mailer/new_group_conversation.html.erb +0 -17
  714. data/app/views/decidim/messaging/conversation_mailer/new_group_message.html.erb +0 -17
  715. data/app/views/decidim/own_user_groups/index.html.erb +0 -10
  716. data/app/views/decidim/shared/_extended_navigation_bar.html.erb +0 -50
  717. data/app/views/decidim/user_conversations/index.html.erb +0 -4
  718. data/app/views/decidim/user_conversations/show.html.erb +0 -4
  719. data/app/views/decidim/user_conversations/update.js.erb +0 -8
  720. data/config/initializers/new_framework_defaults_7_0.rb +0 -145
  721. data/lib/decidim/api/input_filters/has_hastaggable_input_filter.rb +0 -15
  722. data/lib/decidim/api/input_sorts/has_endorsable_input_sort.rb +0 -15
  723. data/lib/decidim/api/interfaces/endorsable_interface.rb +0 -19
  724. data/lib/decidim/api/types/hashtag_type.rb +0 -13
  725. data/lib/decidim/api/types/metric_history_type.rb +0 -20
  726. data/lib/decidim/api/types/metric_type.rb +0 -13
  727. data/lib/decidim/api/types/user_group_type.rb +0 -55
  728. data/lib/decidim/content_parsers/hashtag_parser.rb +0 -66
  729. data/lib/decidim/content_parsers/user_group_parser.rb +0 -33
  730. data/lib/decidim/content_renderers/hashtag_renderer.rb +0 -78
  731. data/lib/decidim/content_renderers/user_group_renderer.rb +0 -31
  732. data/lib/decidim/core/test/shared_examples/amendable_interface_examples.rb +0 -14
  733. data/lib/decidim/core/test/shared_examples/amendable_proposals_interface_examples.rb +0 -50
  734. data/lib/decidim/core/test/shared_examples/assembly_announcements_examples.rb +0 -38
  735. data/lib/decidim/core/test/shared_examples/attachable_interface_examples.rb +0 -16
  736. data/lib/decidim/core/test/shared_examples/authorable_interface_examples.rb +0 -59
  737. data/lib/decidim/core/test/shared_examples/categories_container_examples.rb +0 -22
  738. data/lib/decidim/core/test/shared_examples/categorizable_interface_examples.rb +0 -27
  739. data/lib/decidim/core/test/shared_examples/coauthorable_interface_examples.rb +0 -91
  740. data/lib/decidim/core/test/shared_examples/endorsable.rb +0 -69
  741. data/lib/decidim/core/test/shared_examples/endorsable_interface_examples.rb +0 -22
  742. data/lib/decidim/core/test/shared_examples/fingerprintable_interface_examples.rb +0 -17
  743. data/lib/decidim/core/test/shared_examples/input_filter_examples.rb +0 -118
  744. data/lib/decidim/core/test/shared_examples/input_sort_examples.rb +0 -126
  745. data/lib/decidim/core/test/shared_examples/metric_manage_shared_context.rb +0 -9
  746. data/lib/decidim/core/test/shared_examples/participatory_space_resourcable_interface_examples.rb +0 -43
  747. data/lib/decidim/core/test/shared_examples/process_announcements_examples.rb +0 -37
  748. data/lib/decidim/core/test/shared_examples/scopable_interface_examples.rb +0 -19
  749. data/lib/decidim/core/test/shared_examples/system_endorse_resource_examples.rb +0 -298
  750. data/lib/decidim/core/test/shared_examples/taxonomizable_interface_examples.rb +0 -20
  751. data/lib/decidim/core/test/shared_examples/timestamps_interface_examples.rb +0 -21
  752. data/lib/decidim/core/test/shared_examples/traceable_interface_examples.rb +0 -47
  753. data/lib/decidim/download_your_data_serializers/download_your_data_user_group_serializer.rb +0 -21
  754. data/lib/decidim/endorsable.rb +0 -29
  755. data/lib/decidim/events/user_group_event.rb +0 -43
  756. data/lib/decidim/hashtag.rb +0 -13
  757. data/lib/decidim/metric_manifest.rb +0 -35
  758. data/lib/decidim/metric_operation.rb +0 -58
  759. data/lib/decidim/metric_operation_manifest.rb +0 -21
  760. data/lib/decidim/metric_registry.rb +0 -109
  761. data/lib/gem_overrides/shakapacker/runner.rb +0 -9
  762. data/lib/tasks/decidim_metrics_tasks.rake +0 -89
  763. /data/app/cells/decidim/{endorsement_buttons/disabled_endorsements.erb → like_buttons/disabled_likes.erb} +0 -0
  764. /data/app/packs/src/decidim/{configuration.js → refactor/implementation/configuration.js} +0 -0
  765. /data/app/packs/src/decidim/{external_domain_warning.js → refactor/implementation/external_domain_warning.js} +0 -0
  766. /data/app/packs/src/decidim/{autocomplete.js → refactor/moved/autocomplete.js} +0 -0
  767. /data/app/packs/src/decidim/{delayed.js → refactor/moved/delayed.js} +0 -0
  768. /data/app/packs/src/decidim/{focus_guard.js → refactor/moved/focus_guard.js} +0 -0
  769. /data/app/packs/src/decidim/{history.js → refactor/moved/history.js} +0 -0
  770. /data/app/packs/src/decidim/{i18n.js → refactor/moved/i18n.js} +0 -0
  771. /data/lib/decidim/core/test/shared_examples/{endorsements_controller_shared_context.rb → likes_controller_shared_context.rb} +0 -0
  772. /data/{app/helpers → lib}/decidim/resource_helper.rb +0 -0
  773. /data/lib/decidim/{webpacker → shakapacker}/esbuild.config.js +0 -0
  774. /data/lib/decidim/{webpacker → shakapacker}/postcss.config.js +0 -0
  775. /data/lib/decidim/{webpacker → shakapacker}/tsconfig.json +0 -0
  776. /data/lib/decidim/{webpacker → shakapacker}/webpack/.modernizrrc +0 -0
  777. /data/lib/decidim/{webpacker → shakapacker}/webpack/webpack.config.js +0 -0
@@ -64,11 +64,11 @@ module Decidim
64
64
  # Initiates a conversation between a user and a set of interlocutors with
65
65
  # an initial message.
66
66
  #
67
- # @param originator [Decidim::UserBaseEntity] The user or group starting the conversation
67
+ # @param originator [Decidim::UserBaseEntity] The user starting the conversation
68
68
  # @param interlocutors [Array<Decidim::User>] The set of interlocutors in
69
69
  # the conversation (not including the originator).
70
70
  # @param body [String] The content of the initial message
71
- # @param user [Decidim::User] The user starting the conversation in case originator is a group
71
+ # @param user [Decidim::User] The user starting the conversation
72
72
  #
73
73
  # @return [Decidim::Messaging::Conversation] The newly created conversation
74
74
  #
@@ -97,7 +97,7 @@ module Decidim
97
97
  #
98
98
  # @param sender [Decidim::UserBaseEntity] The sender of the message
99
99
  # @param body [String] The content of the message
100
- # @param user [Decidim::User] The user sending the message in case sender is a group
100
+ # @param user [Decidim::User] The user sending the message
101
101
  #
102
102
  # @return [Decidim::Messaging::Message] The newly created message
103
103
  #
@@ -126,7 +126,6 @@ module Decidim
126
126
  # @return Boolean
127
127
  #
128
128
  def accept_user?(user)
129
- # if user is a group, members are accepted
130
129
  blocked = interlocutors(user).detect { |participant| !participant.accepts_conversation?(user) }
131
130
  blocked.blank?
132
131
  end
@@ -142,7 +141,6 @@ module Decidim
142
141
 
143
142
  #
144
143
  # Given a user, returns if the user is participating in the conversation
145
- # for groups being part of a conversation all their admin member are accepted
146
144
  #
147
145
  # @return Boolean
148
146
  #
@@ -37,11 +37,8 @@ module Decidim
37
37
  # including also a receipt for the remittant (sender) of the message.
38
38
  # Receipts are unread by default, except for the sender's receipt.
39
39
  #
40
- # If the sender is a UserGroup then receipts will be created for its managers
41
- # a "from" user can be specified to avoid create a receipt for the real user sending the message
42
- #
43
- # @param recipients [Array<Decidim::UserBaseEntity>] Users or groups receiving the message
44
- # @param from [Array<Decidim::User>] the user sending the message in case sender is a group
40
+ # @param recipients [Array<Decidim::UserBaseEntity>] Users receiving the message
41
+ # @param from [Array<Decidim::User>] the user sending the message
45
42
  #
46
43
  def envelope_for(recipients:, from: nil)
47
44
  @from = sender.is_a?(User) ? sender : from
@@ -49,7 +46,7 @@ module Decidim
49
46
 
50
47
  receipts.build(recipient: @from, read_at: Time.current) if @from.is_a?(User)
51
48
 
52
- all_recipients(recipients).each do |recipient|
49
+ recipients.each do |recipient|
53
50
  next if @already_notified.include?(recipient)
54
51
 
55
52
  receipts.build(recipient:)
@@ -64,15 +61,6 @@ module Decidim
64
61
 
65
62
  private
66
63
 
67
- # returns all possible recipients from a list of users or groups
68
- def all_recipients(recipients)
69
- users = recipients.flat_map do |recipient|
70
- recipient.is_a?(UserGroup) ? recipient.managers : recipient
71
- end
72
- users += sender.managers if sender.is_a?(UserGroup)
73
- users
74
- end
75
-
76
64
  def sender_is_participant
77
65
  errors.add(:sender, :invalid) unless conversation.participants.include?(sender)
78
66
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  class OmniauthProvider
5
5
  def self.available
6
- Rails.application.secrets[:omniauth] || {}
6
+ Decidim.omniauth_providers
7
7
  end
8
8
 
9
9
  def self.enabled
@@ -15,9 +15,8 @@ module Decidim
15
15
  SOCIAL_HANDLERS = [:twitter, :facebook, :instagram, :youtube, :github].freeze
16
16
  AVAILABLE_MACHINE_TRANSLATION_DISPLAY_PRIORITIES = %w(original translation).freeze
17
17
 
18
- translatable_fields :name, :description, :cta_button_text, :omnipresent_banner_title, :omnipresent_banner_short_description,
19
- :highlighted_content_banner_title, :highlighted_content_banner_short_description, :highlighted_content_banner_action_title,
20
- :highlighted_content_banner_action_subtitle, :welcome_notification_subject, :welcome_notification_body, :id_documents_explanation_text,
18
+ translatable_fields :name, :description, :omnipresent_banner_title, :omnipresent_banner_short_description,
19
+ :welcome_notification_subject, :welcome_notification_body, :id_documents_explanation_text,
21
20
  :admin_terms_of_service_body
22
21
 
23
22
  has_many :static_pages, foreign_key: "decidim_organization_id", class_name: "Decidim::StaticPage", inverse_of: :organization, dependent: :destroy
@@ -31,7 +30,6 @@ module Decidim
31
30
  has_many :users, foreign_key: "decidim_organization_id", class_name: "Decidim::User", dependent: :destroy
32
31
  has_many :user_entities, foreign_key: "decidim_organization_id", class_name: "Decidim::UserBaseEntity", dependent: :destroy
33
32
  has_many :oauth_applications, foreign_key: "decidim_organization_id", class_name: "Decidim::OAuthApplication", inverse_of: :organization, dependent: :destroy
34
- has_many :hashtags, foreign_key: "decidim_organization_id", class_name: "Decidim::Hashtag", dependent: :destroy
35
33
 
36
34
  has_many :templates, foreign_key: "decidim_organization_id", class_name: "Decidim::Templates::Template", dependent: :destroy if defined? Decidim::Templates
37
35
 
@@ -41,7 +39,7 @@ module Decidim
41
39
  # enabled: Users registration and sign in are enabled (default value).
42
40
  # existing: Users cannot be registered in the system. Only existing users can sign in.
43
41
  # disable: Users cannot register or sign in.
44
- enum users_registration_mode: [:enabled, :existing, :disabled], _prefix: true
42
+ enum :users_registration_mode, [:enabled, :existing, :disabled], prefix: true
45
43
 
46
44
  validates :host, uniqueness: true
47
45
  validates :reference_prefix, presence: true
@@ -57,9 +55,6 @@ module Decidim
57
55
  has_one_attached :favicon
58
56
  validates_upload :favicon, uploader: Decidim::OrganizationFaviconUploader
59
57
 
60
- has_one_attached :highlighted_content_banner_image
61
- validates_upload :highlighted_content_banner_image, uploader: Decidim::ImageUploader
62
-
63
58
  has_many_attached :open_data_files
64
59
 
65
60
  validate :unique_name
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module ParticipatorySpaceRoleConfig
5
- class Valuator < Base
5
+ class Evaluator < Base
6
6
  def accepted_components
7
7
  [:proposals]
8
8
  end
@@ -7,6 +7,6 @@ module Decidim
7
7
  belongs_to :reminder, foreign_key: "decidim_reminder_id", class_name: "Decidim::Reminder"
8
8
  belongs_to :remindable, foreign_type: "remindable_type", polymorphic: true, optional: true
9
9
 
10
- enum state: STATES
10
+ enum :state, STATES
11
11
  end
12
12
  end
@@ -36,5 +36,21 @@ module Decidim
36
36
  tsearch: { prefix: true }
37
37
  },
38
38
  order_within_rank: "datetime DESC"
39
+
40
+ pg_search_scope :autocomplete_search,
41
+ against: :content_a,
42
+ using: {
43
+ tsearch: { prefix: true }
44
+ },
45
+ order_within_rank: "datetime DESC"
46
+
47
+ # Returns the global ID of the resource.
48
+ def resource_global_id
49
+ URI::GID.build(
50
+ app: GlobalID.app,
51
+ model_name: resource_type,
52
+ model_id: resource_id
53
+ ).to_s
54
+ end
39
55
  end
40
56
  end
@@ -53,7 +53,7 @@ module Decidim
53
53
  }
54
54
 
55
55
  scope :part_of, lambda { |id|
56
- where("part_of @> ARRAY[?]", id.to_i)
56
+ where("part_of @> ARRAY[?]::integer[]", id.to_i)
57
57
  }
58
58
 
59
59
  def self.log_presenter_class_for(_log)
@@ -99,6 +99,10 @@ module Decidim
99
99
  Taxonomy.reset_counters(id, :children_count, :taxonomizations_count, :taxonomy_filters_count, :taxonomy_filter_items_count)
100
100
  end
101
101
 
102
+ def presenter
103
+ Decidim::TaxonomyPresenter.new(self)
104
+ end
105
+
102
106
  private
103
107
 
104
108
  def set_default_weight
@@ -109,6 +113,7 @@ module Decidim
109
113
 
110
114
  def forbid_cycles
111
115
  return unless parent_id
116
+ return if parent.part_of.compact_blank.empty?
112
117
 
113
118
  errors.add(:parent_id, :invalid) if parent.part_of.include?(id)
114
119
  end
@@ -21,15 +21,13 @@ module Decidim
21
21
 
22
22
  devise :invitable, :database_authenticatable, :registerable, :confirmable, :timeoutable,
23
23
  :recoverable, :trackable, :lockable,
24
- :decidim_validatable, :decidim_newsletterable,
25
- :omniauthable, omniauth_providers: Decidim::OmniauthProvider.available.keys,
24
+ :decidim_validatable, :decidim_newsletterable, :jwt_authenticatable,
25
+ :omniauthable, omniauth_providers: Decidim::OmniauthProvider.available.keys, jwt_revocation_strategy: Decidim::Api::JwtDenylist,
26
26
  request_keys: [:env], reset_password_keys: [:decidim_organization_id, :email],
27
27
  confirmation_keys: [:decidim_organization_id, :email]
28
28
  devise :rememberable if Decidim.enable_remember_me
29
29
 
30
30
  has_many :identities, foreign_key: "decidim_user_id", class_name: "Decidim::Identity", dependent: :destroy
31
- has_many :memberships, class_name: "Decidim::UserGroupMembership", foreign_key: :decidim_user_id, dependent: :destroy
32
- has_many :user_groups, through: :memberships, class_name: "Decidim::UserGroup", foreign_key: :decidim_user_group_id
33
31
  has_many :access_grants, class_name: "Doorkeeper::AccessGrant", foreign_key: :resource_owner_id, dependent: :destroy
34
32
  has_many :access_tokens, class_name: "Doorkeeper::AccessToken", foreign_key: :resource_owner_id, dependent: :destroy
35
33
  has_many :reminders, foreign_key: "decidim_user_id", class_name: "Decidim::Reminder", dependent: :destroy
@@ -59,7 +57,17 @@ module Decidim
59
57
 
60
58
  scope :org_admins_except_me, ->(user) { where(organization: user.organization, admin: true).where.not(id: user.id) }
61
59
 
62
- scope :ephemeral, -> { where("extended_data @> ?", Arel.sql({ ephemeral: true }.to_json)) }
60
+ scope :ephemeral, -> { where("extended_data @> ?", { ephemeral: true }.to_json) }
61
+
62
+ scope :with_inactivity_notification, lambda {
63
+ where("extended_data ? 'inactivity_notification'")
64
+ }
65
+
66
+ scope :active_after_notification, lambda {
67
+ where("current_sign_in_at > (extended_data->'inactivity_notification'->>'sent_at')::timestamp")
68
+ }
69
+ scope :user_group, -> { where("#{arel_table.name}.extended_data @> ?", { group: true }.to_json) }
70
+ scope :not_user_group, -> { where.not("#{arel_table.name}.extended_data @> ?", { group: true }.to_json) }
63
71
 
64
72
  attr_accessor :newsletter_notifications
65
73
 
@@ -95,6 +103,21 @@ module Decidim
95
103
  invitation_not_accepted.find_by(decidim_organization_id: organization_id, email:)
96
104
  end
97
105
 
106
+ # Returns users eligible for receiving the first inactivity warning email.
107
+ def self.first_warning_inactive_users
108
+ InactiveUsersQuery.new(self).for_first_warning(Decidim.first_warning_inactive_users_after_days.days.ago)
109
+ end
110
+
111
+ # Returns users eligible for receiving the final inactivity warning email.
112
+ def self.last_warning_inactive_users
113
+ InactiveUsersQuery.new(self).for_last_warning(Decidim.last_warning_inactive_users_after_days.days.ago)
114
+ end
115
+
116
+ # Returns users eligible for account removal due to prolonged inactivity.
117
+ def self.removable_users
118
+ InactiveUsersQuery.new(self).for_removal(Decidim.delete_inactive_users_last_warning_days_before.days.ago)
119
+ end
120
+
98
121
  # Returns the presenter for this author, to be used in the views.
99
122
  # Required by ActsAsAuthor.
100
123
  def presenter
@@ -135,6 +158,10 @@ module Decidim
135
158
  !officialized_at.nil?
136
159
  end
137
160
 
161
+ def group?
162
+ extended_data["group"]
163
+ end
164
+
138
165
  def follows?(followable)
139
166
  Decidim::Follow.where(user: self, followable:).any?
140
167
  end
@@ -207,16 +234,6 @@ module Decidim
207
234
  extended_data["user_name"] || name
208
235
  end
209
236
 
210
- # return the groups where this user has been accepted
211
- def accepted_user_groups
212
- UserGroups::AcceptedUserGroups.for(self)
213
- end
214
-
215
- # return the groups where this user has admin permissions
216
- def manageable_user_groups
217
- UserGroups::ManageableUserGroups.for(self)
218
- end
219
-
220
237
  def authenticatable_salt
221
238
  "#{super}#{session_token}"
222
239
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Decidim
4
- # This class serves as a base class for `Decidim::User` and `Decidim::UserGroup`
4
+ # This class serves as a base class for `Decidim::User`
5
5
  # so that we can set some shared logic.
6
6
  # This class is not supposed to be used directly.
7
7
  class UserBaseEntity < ApplicationRecord
@@ -56,7 +56,7 @@ module Decidim
56
56
  end
57
57
 
58
58
  def public_users_followings
59
- # To include users and groups self.class is not valid because for a user
59
+ # To include any base entity self.class is not valid because for a user
60
60
  # self.class.joins(:follows)... only return users
61
61
  @public_users_followings ||= users_followings.not_blocked
62
62
  end
@@ -1,3 +1,3 @@
1
- // Since the following resource contains url() stuff, webpacker does not resolve as it should the inner paths
1
+ // Since the following resource contains url() stuff, shakapacker does not resolve as it should the inner paths
2
2
  // (it misses "file-loader" webpack plugin). Therefore, we need to keep this file separate from the JS entrypoint
3
- @import "stylesheets/decidim/legacy/conference-diploma.scss";
3
+ @use "stylesheets/decidim/legacy/conference-diploma";
@@ -1,3 +1,3 @@
1
- // Since the following resource contains url() stuff, webpacker does not resolve as it should the inner paths
1
+ // Since the following resource contains url() stuff, shakapacker does not resolve as it should the inner paths
2
2
  // (it misses "file-loader" webpack plugin). Therefore, we need to keep this file separate from the JS entrypoint
3
- @import "stylesheets/decidim/application.scss";
3
+ @use "stylesheets/decidim/application";
@@ -1,7 +1,3 @@
1
- import createEditor from "src/decidim/editor";
2
-
3
1
  // CSS
4
2
  import "stylesheets/decidim/editor.scss"
5
3
 
6
- // Global exports
7
- window.createEditor = createEditor;
@@ -1,3 +1,3 @@
1
- // Since the following resource contains url() stuff, webpacker does not resolve as it should the inner paths
1
+ // Since the following resource contains url() stuff, shakapacker does not resolve as it should the inner paths
2
2
  // (it misses "file-loader" webpack plugin). Therefore, we need to keep this file separate from the JS entrypoint
3
- @import "stylesheets/decidim/map.scss";
3
+ @use "stylesheets/decidim/map";
@@ -1,2 +1,2 @@
1
1
  // Application specific styles: https://docs.decidim.org/en/customize/styles/
2
- @import "stylesheets/decidim/decidim_application";
2
+ @use "stylesheets/decidim/decidim_application";
@@ -0,0 +1 @@
1
+ import "stylesheets/decidim/qr.scss"