decidim-core 0.30.7 → 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 (836) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -4
  3. data/app/cells/decidim/activity_cell.rb +0 -9
  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/announcement_cell.rb +2 -10
  8. data/app/cells/decidim/attachments_file_tab/show.erb +1 -1
  9. data/app/cells/decidim/author/likes.erb +4 -0
  10. data/app/cells/decidim/author/show.erb +2 -8
  11. data/app/cells/decidim/author_cell.rb +5 -38
  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_g/show.erb +1 -1
  15. data/app/cells/decidim/card_metadata_cell.rb +4 -4
  16. data/app/cells/decidim/coauthorships_cell.rb +1 -1
  17. data/app/cells/decidim/collapsible_authors/show.erb +1 -1
  18. data/app/cells/decidim/content_blocks/hero_cell.rb +23 -4
  19. data/app/cells/decidim/content_blocks/hero_settings_form/show.erb +16 -2
  20. data/app/cells/decidim/content_blocks/highlighted_content_banner/show.erb +6 -6
  21. data/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb +28 -1
  22. data/app/cells/decidim/content_blocks/highlighted_content_banner_settings_form/show.erb +27 -0
  23. data/app/cells/decidim/content_blocks/highlighted_content_banner_settings_form_cell.rb +13 -0
  24. data/app/cells/decidim/content_blocks/highlighted_elements_for_component_settings_form/show.erb +9 -2
  25. data/app/cells/decidim/content_blocks/highlighted_elements_with_cell_for_list_cell.rb +1 -5
  26. data/app/cells/decidim/content_blocks/html_settings_form/show.erb +3 -1
  27. data/app/cells/decidim/content_blocks/last_activity_cell.rb +1 -1
  28. data/app/cells/decidim/content_blocks/last_activity_settings_form/show.erb +3 -1
  29. data/app/cells/decidim/content_blocks/menu_breadcrumb_last_activity_cell.rb +1 -1
  30. data/app/cells/decidim/content_blocks/participatory_space_extra_data/recent_users.erb +1 -1
  31. data/app/cells/decidim/content_blocks/participatory_space_hero/show.erb +0 -5
  32. data/app/cells/decidim/content_blocks/participatory_space_hero_cell.rb +1 -13
  33. data/app/cells/decidim/content_blocks/participatory_space_hero_settings_form/show.erb +10 -3
  34. data/app/cells/decidim/content_blocks/participatory_space_last_activity/content.erb +1 -1
  35. data/app/cells/decidim/content_blocks/participatory_space_last_activity/recent_avatars.erb +1 -1
  36. data/app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb +3 -3
  37. data/app/cells/decidim/content_blocks/participatory_space_main_data/title.erb +17 -5
  38. data/app/cells/decidim/content_blocks/participatory_space_main_data_cell.rb +4 -0
  39. data/app/cells/decidim/content_blocks/participatory_space_metadata/content.erb +2 -2
  40. data/app/cells/decidim/content_blocks/stats/show.erb +2 -3
  41. data/app/cells/decidim/data_consent/modal.erb +1 -1
  42. data/app/cells/decidim/like_block/show.erb +3 -0
  43. data/app/cells/decidim/{endorsement_block_cell.rb → like_block_cell.rb} +2 -2
  44. data/app/cells/decidim/like_buttons/button_content.erb +2 -0
  45. data/app/cells/decidim/like_buttons/show.erb +17 -0
  46. data/app/cells/decidim/{endorsement_buttons → like_buttons}/verification_modal.erb +3 -3
  47. data/app/cells/decidim/like_buttons_cell.rb +77 -0
  48. data/app/cells/decidim/likers_list/empty.erb +3 -0
  49. data/app/cells/decidim/{endorsers_list → likers_list}/full.erb +3 -3
  50. data/app/cells/decidim/likers_list/show.erb +20 -0
  51. data/app/cells/decidim/likers_list_cell.rb +64 -0
  52. data/app/cells/decidim/nav_links/show.erb +3 -3
  53. data/app/cells/decidim/notification_actions/buttons_cell.rb +1 -1
  54. data/app/cells/decidim/notification_cell.rb +1 -5
  55. data/app/cells/decidim/onboarding_action_message_cell.rb +1 -1
  56. data/app/cells/decidim/participatory_space_dropdown_metadata/metadata.erb +0 -8
  57. data/app/cells/decidim/participatory_space_dropdown_metadata_cell.rb +0 -8
  58. data/app/cells/decidim/profile/avatar.erb +2 -0
  59. data/app/cells/decidim/profile/badge.erb +3 -3
  60. data/app/cells/decidim/profile/details.erb +2 -3
  61. data/app/cells/decidim/profile/tabs.erb +1 -1
  62. data/app/cells/decidim/profile_actions/show.erb +0 -1
  63. data/app/cells/decidim/profile_actions_cell.rb +5 -91
  64. data/app/cells/decidim/profile_cell.rb +4 -39
  65. data/app/cells/decidim/report_button/already_reported_modal.erb +1 -1
  66. data/app/cells/decidim/report_button/content.erb +2 -0
  67. data/app/cells/decidim/report_button/flag_modal.erb +2 -2
  68. data/app/cells/decidim/report_button_cell.rb +1 -1
  69. data/app/cells/decidim/report_user_button/already_reported_modal.erb +1 -1
  70. data/app/cells/decidim/report_user_button/flag_modal.erb +2 -2
  71. data/app/cells/decidim/resource_history_cell.rb +2 -1
  72. data/app/cells/decidim/resource_types_filter/show.erb +1 -1
  73. data/app/cells/decidim/share_button_cell.rb +1 -1
  74. data/app/cells/decidim/share_text_widget/modal.erb +16 -0
  75. data/app/cells/decidim/share_text_widget/show.erb +2 -0
  76. data/app/cells/decidim/share_text_widget_cell.rb +27 -0
  77. data/app/cells/decidim/share_widget/modal.erb +18 -8
  78. data/app/cells/decidim/share_widget/qr_code_modal.erb +26 -0
  79. data/app/cells/decidim/share_widget/show.erb +1 -0
  80. data/app/cells/decidim/share_widget_cell.rb +10 -6
  81. data/app/cells/decidim/statistic/show.erb +23 -5
  82. data/app/cells/decidim/statistic_cell.rb +28 -3
  83. data/app/cells/decidim/tab_panels/show.erb +1 -1
  84. data/app/cells/decidim/upload_modal/files.erb +8 -16
  85. data/app/cells/decidim/upload_modal_cell.rb +5 -21
  86. data/app/cells/decidim/user_activity_cell.rb +1 -6
  87. data/app/cells/decidim/user_profile/show.erb +1 -1
  88. data/app/cells/decidim/user_profile_cell.rb +1 -9
  89. data/app/cells/decidim/version_author_cell.rb +0 -7
  90. data/app/commands/decidim/amendable/accept.rb +1 -3
  91. data/app/commands/decidim/amendable/create_draft.rb +2 -3
  92. data/app/commands/decidim/amendable/update_draft.rb +2 -3
  93. data/app/commands/decidim/create_ephemeral_user.rb +7 -1
  94. data/app/commands/decidim/create_omniauth_registration.rb +8 -7
  95. data/app/commands/decidim/create_report.rb +9 -1
  96. data/app/commands/decidim/destroy_account.rb +4 -54
  97. data/app/commands/decidim/like_resource.rb +52 -0
  98. data/app/commands/decidim/messaging/reply_to_conversation.rb +2 -21
  99. data/app/commands/decidim/messaging/start_conversation.rb +2 -21
  100. data/app/commands/decidim/multiple_attachments_methods.rb +3 -20
  101. data/app/commands/decidim/unlike_resource.rb +34 -0
  102. data/app/commands/decidim/update_account.rb +1 -1
  103. data/app/controllers/concerns/decidim/direct_upload.rb +12 -2
  104. data/app/controllers/concerns/decidim/ephemeral_session_checker.rb +6 -2
  105. data/app/controllers/concerns/decidim/user_profile.rb +0 -1
  106. data/app/controllers/decidim/account_controller.rb +1 -1
  107. data/app/controllers/decidim/amendments_controller.rb +4 -5
  108. data/app/controllers/decidim/application_controller.rb +2 -1
  109. data/app/controllers/decidim/devise/confirmations_controller.rb +0 -5
  110. data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +1 -1
  111. data/app/controllers/decidim/devise/passwords_controller.rb +1 -1
  112. data/app/controllers/decidim/devise/registrations_controller.rb +1 -1
  113. data/app/controllers/decidim/devise/sessions_controller.rb +0 -7
  114. data/app/controllers/decidim/doorkeeper/authorizations_controller.rb +19 -1
  115. data/app/controllers/decidim/download_your_data_controller.rb +4 -7
  116. data/app/controllers/decidim/likes_controller.rb +57 -0
  117. data/app/controllers/decidim/links_controller.rb +1 -0
  118. data/app/controllers/decidim/messaging/conversations_controller.rb +1 -8
  119. data/app/controllers/decidim/newsletters_controller.rb +1 -1
  120. data/app/controllers/decidim/notifications_settings_controller.rb +2 -2
  121. data/app/controllers/decidim/pages_controller.rb +0 -1
  122. data/app/controllers/decidim/profiles_controller.rb +2 -57
  123. data/app/controllers/decidim/qr_controller.rb +73 -0
  124. data/app/controllers/decidim/resource_autocomplete_controller.rb +56 -0
  125. data/app/controllers/decidim/user_activities_controller.rb +0 -1
  126. data/app/events/decidim/resource_liked_event.rb +36 -0
  127. data/app/events/decidim/welcome_notification_event.rb +1 -1
  128. data/app/forms/decidim/amendable/create_form.rb +0 -1
  129. data/app/forms/decidim/amendable/edit_form.rb +0 -1
  130. data/app/forms/decidim/amendable/form.rb +4 -4
  131. data/app/forms/decidim/ephemeral_user_form.rb +1 -0
  132. data/app/forms/decidim/notifications_settings_form.rb +1 -1
  133. data/app/forms/decidim/omniauth_registration_form.rb +1 -1
  134. data/app/forms/decidim/upload_validation_form.rb +9 -1
  135. data/app/helpers/concerns/decidim/flash_helper_extensions.rb +2 -2
  136. data/app/helpers/decidim/amendments_helper.rb +1 -2
  137. data/app/helpers/decidim/animations_helper.rb +14 -0
  138. data/app/helpers/decidim/decidim_form_helper.rb +17 -6
  139. data/app/helpers/decidim/layout_helper.rb +1 -15
  140. data/app/helpers/decidim/likeable_helper.rb +46 -0
  141. data/app/helpers/decidim/map_helper.rb +1 -1
  142. data/app/helpers/decidim/menu_helper.rb +2 -8
  143. data/app/helpers/decidim/messaging/conversation_helper.rb +1 -1
  144. data/app/helpers/decidim/omniauth_helper.rb +1 -1
  145. data/app/helpers/decidim/qr_code_helper.rb +37 -0
  146. data/app/helpers/decidim/rich_text_editor_helper.rb +0 -1
  147. data/app/helpers/decidim/sanitize_helper.rb +5 -5
  148. data/app/helpers/decidim/social_share_button_helper.rb +11 -10
  149. data/app/jobs/decidim/delete_inactive_participants_job.rb +41 -0
  150. data/app/jobs/decidim/export_participatory_space_job.rb +1 -1
  151. data/app/jobs/decidim/find_and_update_descendants_job.rb +2 -8
  152. data/app/jobs/decidim/process_inactive_participant_job.rb +48 -0
  153. data/app/jobs/decidim/update_search_indexes_job.rb +2 -2
  154. data/app/mailers/decidim/notifications_digest_mailer.rb +1 -18
  155. data/app/mailers/decidim/participants_account_mailer.rb +38 -0
  156. data/app/mailers/decidim/user_group_mailer.rb +28 -0
  157. data/app/models/decidim/action_log.rb +3 -5
  158. data/app/models/decidim/amendment.rb +1 -1
  159. data/app/models/decidim/attachment.rb +1 -22
  160. data/app/models/decidim/attachment_collection.rb +2 -0
  161. data/app/models/decidim/authorization_transfer.rb +0 -1
  162. data/app/models/decidim/coauthorship.rb +1 -1
  163. data/app/models/decidim/component.rb +4 -4
  164. data/app/models/decidim/{endorsement.rb → like.rb} +4 -4
  165. data/app/models/decidim/messaging/conversation.rb +3 -5
  166. data/app/models/decidim/messaging/message.rb +3 -15
  167. data/app/models/decidim/notification.rb +0 -10
  168. data/app/models/decidim/omniauth_provider.rb +1 -1
  169. data/app/models/decidim/organization.rb +3 -8
  170. data/app/models/decidim/participatory_space_role_config/{valuator.rb → evaluator.rb} +1 -1
  171. data/app/models/decidim/private_export.rb +0 -4
  172. data/app/models/decidim/reminder_record.rb +1 -1
  173. data/app/models/decidim/searchable_resource.rb +16 -0
  174. data/app/models/decidim/taxonomy.rb +6 -1
  175. data/app/models/decidim/user.rb +32 -19
  176. data/app/models/decidim/user_base_entity.rb +3 -3
  177. data/app/packs/entrypoints/decidim_conference_diploma.scss +2 -2
  178. data/app/packs/entrypoints/decidim_core.scss +2 -2
  179. data/app/packs/entrypoints/decidim_editor.js +0 -4
  180. data/app/packs/entrypoints/decidim_map.scss +2 -2
  181. data/app/packs/entrypoints/decidim_overrides.scss +1 -1
  182. data/app/packs/entrypoints/decidim_qr.js +1 -0
  183. data/app/packs/images/decidim/remixicon.symbol.svg +3 -3
  184. data/app/packs/src/decidim/a11y.js +1 -149
  185. data/app/packs/src/decidim/append_redirect_url_to_modals.js +1 -1
  186. data/app/packs/src/decidim/attachments/file_or_link_tabs.js +1 -1
  187. data/app/packs/src/decidim/confirm.js +28 -28
  188. data/app/packs/src/decidim/controllers/.keep +0 -0
  189. data/app/packs/src/decidim/controllers/accordion/controller.js +100 -0
  190. data/app/packs/src/decidim/controllers/account_form/account_form.test.js +423 -0
  191. data/app/packs/src/decidim/controllers/account_form/controller.js +69 -0
  192. data/app/packs/src/decidim/{input_character_counter.js → controllers/character_counter/controller.js} +90 -106
  193. data/app/packs/src/decidim/controllers/clipboard_copy/clipboard_copy.test.js +305 -0
  194. data/app/packs/src/decidim/controllers/clipboard_copy/controller.js +403 -0
  195. data/app/packs/src/decidim/controllers/date_picker/controller.js +12 -0
  196. data/app/packs/src/decidim/controllers/delete_account_form/controller.js +45 -0
  197. data/app/packs/src/decidim/controllers/delete_account_form/delete_account_form.test.js +216 -0
  198. data/app/packs/src/decidim/controllers/dropdown/controller.js +125 -0
  199. data/app/packs/src/decidim/controllers/editor/controller.js +8 -0
  200. data/app/packs/src/decidim/controllers/emoji/controller.js +26 -0
  201. data/app/packs/src/decidim/{input_emoji.js → controllers/emoji/emoji.js} +1 -15
  202. data/app/packs/src/decidim/{form_filter.js → controllers/form_filter/controller.js} +68 -57
  203. data/app/packs/src/decidim/controllers/form_filter/form_filter.test.js +648 -0
  204. data/app/packs/src/decidim/controllers/form_validator/controller.js +23 -0
  205. data/app/packs/src/decidim/controllers/form_validator/form_validator.js +789 -0
  206. data/app/packs/src/decidim/controllers/form_validator/form_validator.test.js +685 -0
  207. data/app/packs/src/decidim/controllers/impersonation_warning/controller.js +137 -0
  208. data/app/packs/src/decidim/controllers/impersonation_warning/impersonation.test.js +382 -0
  209. data/app/packs/src/decidim/controllers/input_tags/controller.js +28 -0
  210. data/app/packs/src/decidim/controllers/mention/controller.js +243 -0
  211. data/app/packs/src/decidim/controllers/mention/input_mentions.test.js +562 -0
  212. data/app/packs/src/decidim/controllers/multiple_mentions/controller.js +215 -0
  213. data/app/packs/src/decidim/controllers/multiple_mentions/input_multiple_mentions.test.js +645 -0
  214. data/app/packs/src/decidim/controllers/notification_action/controller.js +210 -0
  215. data/app/packs/src/decidim/controllers/notification_action/notification_action.test.js +388 -0
  216. data/app/packs/src/decidim/controllers/password_toggler/controller.js +232 -0
  217. data/app/packs/src/decidim/controllers/password_toggler/password_toggler.test.js +229 -0
  218. data/app/packs/src/decidim/controllers/report_form/controller.js +184 -0
  219. data/app/packs/src/decidim/controllers/report_form/report_form_manager.test.js +511 -0
  220. data/app/packs/src/decidim/controllers/scroll_to_last/controller.js +9 -0
  221. data/app/packs/src/decidim/controllers/scroll_to_last/scroll_to_last_child.test.js +225 -0
  222. data/app/packs/src/decidim/controllers/sticky_buttons/controller.js +55 -0
  223. data/app/packs/src/decidim/controllers/sticky_buttons/sticky_buttons.test.js +334 -0
  224. data/app/packs/src/decidim/controllers/sticky_header/controller.js +116 -0
  225. data/app/packs/src/decidim/controllers/sticky_header/sticky_header.test.js +320 -0
  226. data/app/packs/src/decidim/controllers/toggle/controller.js +111 -0
  227. data/app/packs/src/decidim/controllers/toggle/toggle.test.js +260 -0
  228. data/app/packs/src/decidim/controllers/tooltip/controller.js +287 -0
  229. data/app/packs/src/decidim/controllers/tooltip/tooltip.test.js +380 -0
  230. data/app/packs/src/decidim/controllers/user_registration_form/controller.js +160 -0
  231. data/app/packs/src/decidim/controllers/user_registration_form/omniauth_registration_form.test.js +441 -0
  232. data/app/packs/src/decidim/controllers/user_registration_form/user_registration_form.test.js +386 -0
  233. data/app/packs/src/decidim/data_consent/index.js +1 -1
  234. data/app/packs/src/decidim/datalist_select.js +1 -1
  235. data/app/packs/src/decidim/datepicker/form_datepicker.js +1 -1
  236. data/app/packs/src/decidim/datepicker/generate_datepicker.js +2 -2
  237. data/app/packs/src/decidim/datepicker/generate_timepicker.js +2 -2
  238. data/app/packs/src/decidim/direct_uploads/upload_field.js +4 -6
  239. data/app/packs/src/decidim/direct_uploads/upload_modal.js +1 -1
  240. data/app/packs/src/decidim/dropdown_menu.js +1 -1
  241. data/app/packs/src/decidim/editor/common/input_dialog.js +1 -1
  242. data/app/packs/src/decidim/editor/common/suggestion.js +10 -2
  243. data/app/packs/src/decidim/editor/common/upload_dialog.js +1 -1
  244. data/app/packs/src/decidim/editor/extensions/decidim_kit/index.js +7 -7
  245. data/app/packs/src/decidim/editor/extensions/emoji/index.js +2 -3
  246. data/app/packs/src/decidim/editor/extensions/image/index.js +1 -1
  247. data/app/packs/src/decidim/editor/extensions/image/node_view.js +1 -1
  248. data/app/packs/src/decidim/editor/extensions/link/bubble_menu.js +1 -1
  249. data/app/packs/src/decidim/editor/extensions/link/index.js +2 -1
  250. data/app/packs/src/decidim/editor/extensions/mention/index.js +1 -2
  251. data/app/packs/src/decidim/editor/extensions/mention_resource/index.js +69 -0
  252. data/app/packs/src/decidim/editor/extensions/video_embed/index.js +1 -1
  253. data/app/packs/src/decidim/editor/index.js +7 -10
  254. data/app/packs/src/decidim/editor/test/extensions/decidim_kit.test.js +1 -2
  255. data/app/packs/src/decidim/editor/test/extensions/emoji.test.js +17 -0
  256. data/app/packs/src/decidim/editor/test/extensions/heading.test.js +2 -2
  257. data/app/packs/src/decidim/editor/test/extensions/link.test.js +2 -2
  258. data/app/packs/src/decidim/editor/test/toolbar/shared/behaves_like_basic_link.js +1 -1
  259. data/app/packs/src/decidim/editor/toolbar.js +1 -1
  260. data/app/packs/src/decidim/form_attachments.js +1 -1
  261. data/app/packs/src/decidim/geocoding/attach_input.js +3 -0
  262. data/app/packs/src/decidim/geocoding/provider/here.js +1 -1
  263. data/app/packs/src/decidim/geocoding/provider/photon.js +1 -1
  264. data/app/packs/src/decidim/geocoding/reverse_geocoding.js +2 -2
  265. data/app/packs/src/decidim/geocoding.js +2 -2
  266. data/app/packs/src/decidim/index.js +127 -95
  267. data/app/packs/src/decidim/map/controller/markers.js +1 -3
  268. data/app/packs/src/decidim/map/integration/forms.js +1 -1
  269. data/app/packs/src/decidim/map/legacy.js +1 -1
  270. data/app/packs/src/decidim/map/provider/default.js +1 -1
  271. data/app/packs/src/decidim/map/provider/here.js +1 -1
  272. data/app/packs/src/decidim/map.js +1 -1
  273. data/app/packs/src/decidim/{external_link.js → refactor/implementation/external_link.js} +1 -1
  274. data/app/packs/src/decidim/{onboarding_pending_action.js → refactor/integration/onboarding_pending_action.js} +4 -4
  275. data/app/packs/src/decidim/{check_boxes_tree.js → refactor/moved/check_boxes_tree.js} +24 -9
  276. data/app/packs/src/decidim/{focus_guard.js → refactor/moved/focus_guard.js} +4 -4
  277. data/app/packs/src/decidim/{i18n.test.js → refactor/moved/i18n.test.js} +1 -1
  278. data/app/packs/src/decidim/{icon.js → refactor/moved/icon.js} +2 -0
  279. data/app/packs/src/decidim/refactor/support/stimulus.js +39 -0
  280. data/app/packs/src/decidim/refactor/test/configuration.test.js +360 -0
  281. data/app/packs/src/decidim/{external_domain_warning.test.js → refactor/test/external_domain_warning.test.js} +1 -1
  282. data/app/packs/src/decidim/{external_link.test.js → refactor/test/external_link.test.js} +1 -1
  283. data/app/packs/src/decidim/results_listing.js +2 -2
  284. data/app/packs/src/decidim/security/selfxss_warning.js +1 -1
  285. data/app/packs/src/decidim/session_timeouter.js +1 -1
  286. data/app/packs/src/decidim/sw/push-permissions.js +1 -1
  287. data/app/packs/src/decidim/utilities/dom.js +1 -1
  288. data/app/packs/stylesheets/decidim/_accordion.scss +37 -3
  289. data/app/packs/stylesheets/decidim/_author.scss +0 -29
  290. data/app/packs/stylesheets/decidim/_buttons.scss +4 -0
  291. data/app/packs/stylesheets/decidim/_callout.scss +1 -1
  292. data/app/packs/stylesheets/decidim/_cards.scss +6 -18
  293. data/app/packs/stylesheets/decidim/_content_blocks.scss +1 -1
  294. data/app/packs/stylesheets/decidim/_cookies.scss +1 -1
  295. data/app/packs/stylesheets/decidim/_datepicker.scss +0 -4
  296. data/app/packs/stylesheets/decidim/_dropdown.scss +56 -19
  297. data/app/packs/stylesheets/decidim/_footer.scss +0 -5
  298. data/app/packs/stylesheets/decidim/_forms.scss +6 -6
  299. data/app/packs/stylesheets/decidim/_header.scss +17 -1
  300. data/app/packs/stylesheets/decidim/_labels.scss +1 -1
  301. data/app/packs/stylesheets/decidim/_layout.scss +12 -2
  302. data/app/packs/stylesheets/decidim/{_endorsers_list.scss → _likes_list.scss} +1 -1
  303. data/app/packs/stylesheets/decidim/_modal.scss +6 -6
  304. data/app/packs/stylesheets/decidim/_modal_fingerprint.scss +1 -1
  305. data/app/packs/stylesheets/decidim/_modal_share.scss +83 -9
  306. data/app/packs/stylesheets/decidim/_modal_update.scss +2 -6
  307. data/app/packs/stylesheets/decidim/_participatory_spaces.scss +2 -2
  308. data/app/packs/stylesheets/decidim/_profile.scss +6 -6
  309. data/app/packs/stylesheets/decidim/_rich_text.scss +13 -0
  310. data/app/packs/stylesheets/decidim/_statistics.scss +35 -3
  311. data/app/packs/stylesheets/decidim/_tooltip.scss +1 -1
  312. data/app/packs/stylesheets/decidim/_typography.scss +6 -0
  313. data/app/packs/stylesheets/decidim/_wizard_steps.scss +1 -1
  314. data/app/packs/stylesheets/decidim/application.scss +76 -76
  315. data/app/packs/stylesheets/decidim/editor.scss +12 -15
  316. data/app/packs/stylesheets/decidim/legacy/email.scss +6 -5
  317. data/app/packs/stylesheets/decidim/map.scss +5 -3
  318. data/app/packs/stylesheets/decidim/qr.scss +65 -0
  319. data/app/permissions/decidim/default_permissions.rb +16 -0
  320. data/app/permissions/decidim/permissions.rb +5 -26
  321. data/app/presenters/decidim/admin_log/base_user_presenter.rb +2 -2
  322. data/app/presenters/decidim/admin_log/organization_presenter.rb +0 -15
  323. data/app/presenters/decidim/home_stats_presenter.rb +4 -54
  324. data/app/presenters/decidim/log/base_presenter.rb +1 -1
  325. data/app/presenters/decidim/log/user_presenter.rb +1 -2
  326. data/app/presenters/decidim/menu_item_presenter.rb +10 -3
  327. data/app/presenters/decidim/official_author_presenter.rb +0 -4
  328. data/app/presenters/decidim/participatory_space_private_user_presenter.rb +0 -4
  329. data/app/presenters/decidim/resource_locator_presenter.rb +15 -4
  330. data/app/presenters/decidim/resource_presenter.rb +8 -8
  331. data/app/presenters/decidim/stats_presenter.rb +39 -60
  332. data/app/presenters/decidim/taxonomy_presenter.rb +5 -1
  333. data/app/presenters/decidim/user_presenter.rb +1 -12
  334. data/app/queries/decidim/authorized_users.rb +26 -0
  335. data/app/queries/decidim/inactive_users_query.rb +31 -0
  336. data/app/queries/decidim/public_activities.rb +2 -2
  337. data/app/queries/decidim/stats_followers_count.rb +43 -0
  338. data/app/queries/decidim/stats_participants_count.rb +102 -0
  339. data/app/serializers/decidim/exporters/open_data_user_serializer.rb +1 -5
  340. data/app/serializers/decidim/exporters/participatory_space_serializer.rb +0 -1
  341. data/app/services/decidim/action_logger.rb +2 -1
  342. data/app/services/decidim/base_diff_renderer.rb +0 -17
  343. data/app/services/decidim/download_your_data_exporter.rb +4 -15
  344. data/app/services/decidim/onboarding_manager.rb +4 -0
  345. data/app/services/decidim/open_data_exporter.rb +21 -14
  346. data/app/services/decidim/send_push_notification.rb +4 -3
  347. data/app/services/decidim/traceability.rb +1 -1
  348. data/app/validators/etiquette_validator.rb +9 -2
  349. data/app/validators/password_validator.rb +1 -3
  350. data/app/validators/translated_etiquette_validator.rb +1 -0
  351. data/app/views/decidim/account/_old_password_field.html.erb +1 -1
  352. data/app/views/decidim/account/_password_fields.html.erb +1 -1
  353. data/app/views/decidim/account/delete.html.erb +1 -1
  354. data/app/views/decidim/account/show.html.erb +3 -3
  355. data/app/views/decidim/amendments/edit_draft.html.erb +0 -4
  356. data/app/views/decidim/amendments/new.html.erb +0 -4
  357. data/app/views/decidim/amendments/preview_draft.html.erb +1 -1
  358. data/app/views/decidim/application/_accordion_section.html.erb +1 -1
  359. data/app/views/decidim/application/_collection.html.erb +1 -1
  360. data/app/views/decidim/application/_document.html.erb +2 -2
  361. data/app/views/decidim/application/_radio_accordion.html.erb +30 -0
  362. data/app/views/decidim/devise/invitations/edit.html.erb +3 -3
  363. data/app/views/decidim/devise/omniauth_registrations/new.html.erb +1 -1
  364. data/app/views/decidim/devise/omniauth_registrations/new_tos_fields.html.erb +1 -1
  365. data/app/views/decidim/devise/registrations/new.html.erb +1 -1
  366. data/app/views/decidim/devise/shared/_links.html.erb +1 -1
  367. data/app/views/decidim/doorkeeper/authorizations/new.html.erb +39 -8
  368. data/app/views/decidim/download_your_data/_export.html.erb +1 -1
  369. data/app/views/decidim/errors/internal_server_error.html.erb +1 -0
  370. data/app/views/decidim/export_mailer/download_your_data_export.html.erb +1 -1
  371. data/app/views/decidim/export_mailer/export.html.erb +1 -1
  372. data/app/views/decidim/likes/update_buttons_and_counters.js.erb +21 -0
  373. data/app/views/decidim/messaging/conversations/_add_conversation_users.html.erb +2 -2
  374. data/app/views/decidim/messaging/conversations/_reply_form.html.erb +1 -1
  375. data/app/views/decidim/messaging/conversations/_start.html.erb +1 -1
  376. data/app/views/decidim/messaging/conversations/create.js.erb +0 -1
  377. data/app/views/decidim/messaging/conversations/new.html.erb +1 -1
  378. data/app/views/decidim/messaging/conversations/show.html.erb +1 -1
  379. data/app/views/decidim/notifications_settings/show.html.erb +3 -3
  380. data/app/views/decidim/pages/_tabbed.html.erb +2 -2
  381. data/app/views/decidim/pages/index.html.erb +1 -1
  382. data/app/views/decidim/participants_account_mailer/inactivity_notification.html.erb +13 -0
  383. data/app/views/decidim/participants_account_mailer/removal_notification.html.erb +11 -0
  384. data/app/views/decidim/profiles/show.html.erb +1 -1
  385. data/app/views/decidim/qr/show.html.erb +28 -0
  386. data/app/views/decidim/searches/_filters.html.erb +18 -2
  387. data/app/views/decidim/searches/index.html.erb +5 -2
  388. data/app/views/decidim/shared/_confirm_modal.html.erb +5 -3
  389. data/app/views/decidim/shared/_filters.html.erb +3 -3
  390. data/app/views/decidim/shared/_orders.html.erb +2 -2
  391. data/app/views/decidim/shared/_resource_actions.html.erb +8 -5
  392. data/app/views/decidim/user_activities/index.html.erb +1 -1
  393. data/app/views/decidim/user_group_mailer/notify_deprecation_to_member.html.erb +15 -0
  394. data/app/views/decidim/user_group_mailer/notify_deprecation_to_owner.html.erb +22 -0
  395. data/app/views/layouts/decidim/_application.html.erb +1 -1
  396. data/app/views/layouts/decidim/_head.html.erb +15 -12
  397. data/app/views/layouts/decidim/_impersonation_warning.html.erb +1 -1
  398. data/app/views/layouts/decidim/_js_configuration.html.erb +17 -19
  399. data/app/views/layouts/decidim/_meta_tags_context.html.erb +3 -0
  400. data/app/views/layouts/decidim/_offline_banner.html.erb +1 -1
  401. data/app/views/layouts/decidim/_wrapper.html.erb +8 -6
  402. data/app/views/layouts/decidim/footer/_focus_mode_main.html.erb +7 -0
  403. data/app/views/layouts/decidim/footer/_main_language_chooser.html.erb +1 -1
  404. data/app/views/layouts/decidim/header/_close_ephemeral_session.html.erb +12 -2
  405. data/app/views/layouts/decidim/header/_focus_mode_back_button.html.erb +24 -0
  406. data/app/views/layouts/decidim/header/_main.html.erb +28 -22
  407. data/app/views/layouts/decidim/header/_main_links_desktop.html.erb +1 -1
  408. data/app/views/layouts/decidim/header/_main_links_dropdown.html.erb +18 -18
  409. data/app/views/layouts/decidim/header/_main_links_mobile_account.html.erb +2 -16
  410. data/app/views/layouts/decidim/header/_main_links_mobile_item_account.html.erb +1 -1
  411. data/app/views/layouts/decidim/header/_main_menu_mobile.html.erb +1 -1
  412. data/app/views/layouts/decidim/header/_menu_breadcrumb_desktop.html.erb +1 -1
  413. data/app/views/layouts/decidim/header/_menu_breadcrumb_items.html.erb +1 -1
  414. data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +1 -1
  415. data/app/views/layouts/decidim/header/_mobile_language_choose.html.erb +1 -1
  416. data/app/views/layouts/decidim/mailer.html.erb +2 -2
  417. data/app/views/layouts/decidim/newsletter_base.html.erb +2 -2
  418. data/app/views/layouts/decidim/shared/_layout_two_col.html.erb +3 -1
  419. data/app/views/layouts/decidim/shared/_layout_user_profile.html.erb +7 -3
  420. data/config/assets.rb +3 -3
  421. data/config/initializers/devise.rb +8 -6
  422. data/config/initializers/omniauth.rb +1 -1
  423. data/config/locales/ar.yml +7 -212
  424. data/config/locales/bg.yml +12 -238
  425. data/config/locales/bs-BA.yml +0 -30
  426. data/config/locales/ca-IT.yml +139 -323
  427. data/config/locales/ca.yml +137 -321
  428. data/config/locales/cs.yml +109 -313
  429. data/config/locales/de.yml +140 -294
  430. data/config/locales/el.yml +5 -225
  431. data/config/locales/en.yml +133 -317
  432. data/config/locales/eo.yml +0 -2
  433. data/config/locales/es-MX.yml +129 -313
  434. data/config/locales/es-PY.yml +129 -313
  435. data/config/locales/es.yml +130 -314
  436. data/config/locales/eu.yml +197 -377
  437. data/config/locales/fa-IR.yml +0 -3
  438. data/config/locales/fi-plain.yml +124 -303
  439. data/config/locales/fi.yml +125 -304
  440. data/config/locales/fr-CA.yml +102 -309
  441. data/config/locales/fr.yml +104 -311
  442. data/config/locales/ga-IE.yml +4 -28
  443. data/config/locales/gl.yml +5 -140
  444. data/config/locales/hu.yml +14 -241
  445. data/config/locales/id-ID.yml +5 -136
  446. data/config/locales/is-IS.yml +0 -14
  447. data/config/locales/it.yml +7 -237
  448. data/config/locales/ja.yml +137 -319
  449. data/config/locales/ko.yml +0 -3
  450. data/config/locales/lb.yml +5 -189
  451. data/config/locales/lt.yml +8 -241
  452. data/config/locales/lv.yml +5 -186
  453. data/config/locales/mt.yml +0 -3
  454. data/config/locales/nl.yml +5 -189
  455. data/config/locales/no.yml +5 -189
  456. data/config/locales/pl.yml +11 -255
  457. data/config/locales/pt-BR.yml +8 -792
  458. data/config/locales/pt.yml +5 -189
  459. data/config/locales/ro-RO.yml +177 -667
  460. data/config/locales/ru.yml +6 -62
  461. data/config/locales/sk.yml +7 -164
  462. data/config/locales/sl.yml +1 -0
  463. data/config/locales/sr-CS.yml +0 -31
  464. data/config/locales/sv.yml +110 -531
  465. data/config/locales/tr-TR.yml +10 -206
  466. data/config/locales/uk.yml +3 -23
  467. data/config/locales/vi.yml +0 -3
  468. data/config/locales/zh-CN.yml +5 -180
  469. data/config/locales/zh-TW.yml +8 -230
  470. data/config/routes.rb +3 -36
  471. data/db/migrate/20250217192438_convert_user_groups_into_users.rb +38 -0
  472. data/db/migrate/20250221085317_add_user_type_to_action_logs.rb +12 -0
  473. data/db/migrate/20250221090905_create_decidim_api_jwt_denylist.rb +11 -0
  474. data/db/migrate/20250221091348_add_api_key_to_decidim_api_user.rb +7 -0
  475. data/db/migrate/20250327143657_remove_metrics_content_blocks.rb +9 -0
  476. data/db/migrate/20250401153444_enable_pkce.rb +8 -0
  477. data/db/migrate/20250416130426_rename_doorkeeper_scopes.rb +25 -0
  478. data/db/migrate/20250515105231_rename_endorsements_to_likes.rb +62 -0
  479. data/db/migrate/20250523104311_move_cta_to_hero_content_block.rb +34 -0
  480. data/db/migrate/20250527122040_move_highlighted_content_banner_settings_to_content_block.rb +69 -0
  481. data/db/migrate/20250603103953_add_refresh_tokens_enabled_to_doorkeeper_applications.rb +7 -0
  482. data/db/migrate/20250609073104_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb +10 -0
  483. data/db/migrate/20250613122148_remove_hashtag_table_from_core.rb +7 -0
  484. data/decidim-core.gemspec +4 -5
  485. data/{app/helpers → lib}/decidim/action_authorization_helper.rb +5 -4
  486. data/lib/decidim/amendable.rb +4 -4
  487. data/lib/decidim/api/functions/user_entity_finder.rb +1 -1
  488. data/lib/decidim/api/input_filters/component_input_filter.rb +3 -3
  489. data/lib/decidim/api/input_filters/user_entity_input_filter.rb +0 -21
  490. data/lib/decidim/api/input_sorts/has_likeable_input_sort.rb +15 -0
  491. data/lib/decidim/api/interfaces/attachable_collection_interface.rb +13 -0
  492. data/lib/decidim/api/interfaces/author_interface.rb +1 -2
  493. data/lib/decidim/api/interfaces/authorable_interface.rb +2 -2
  494. data/lib/decidim/api/interfaces/coauthorable_interface.rb +1 -1
  495. data/lib/decidim/api/interfaces/component_interface.rb +6 -0
  496. data/lib/decidim/api/interfaces/followable_interface.rb +13 -0
  497. data/lib/decidim/api/interfaces/likeable_interface.rb +19 -0
  498. data/lib/decidim/api/interfaces/localizable_interface.rb +18 -0
  499. data/lib/decidim/api/interfaces/participatory_space_interface.rb +6 -8
  500. data/lib/decidim/api/interfaces/referable_interface.rb +13 -0
  501. data/lib/decidim/api/interfaces/timestamps_interface.rb +0 -1
  502. data/lib/decidim/api/interfaces/traceable_interface.rb +1 -1
  503. data/lib/decidim/api/types/attachment_collection_type.rb +14 -0
  504. data/lib/decidim/api/types/organization_type.rb +3 -1
  505. data/lib/decidim/api/types/session_type.rb +0 -5
  506. data/lib/decidim/api/types/statistic_type.rb +29 -3
  507. data/lib/decidim/api/types/trace_version_type.rb +1 -1
  508. data/lib/decidim/api/types/user_type.rb +1 -2
  509. data/lib/decidim/api_response_helper.rb +12 -0
  510. data/lib/decidim/asset_router/storage.rb +10 -12
  511. data/lib/decidim/assets/tailwind/instance.rb +1 -1
  512. data/lib/decidim/assets/tailwind/tailwind.config.js.erb +5 -4
  513. data/lib/decidim/attribute_encryptor.rb +1 -1
  514. data/lib/decidim/attributes/time_with_zone.rb +1 -1
  515. data/lib/decidim/authorable.rb +5 -34
  516. data/lib/decidim/coauthorable.rb +13 -31
  517. data/lib/decidim/content_parsers/blob_parser.rb +1 -1
  518. data/lib/decidim/content_parsers/mention_resource_parser.rb +23 -0
  519. data/lib/decidim/content_parsers/tag_parser.rb +2 -2
  520. data/lib/decidim/content_parsers/user_parser.rb +2 -2
  521. data/lib/decidim/content_parsers.rb +14 -2
  522. data/lib/decidim/content_processor.rb +1 -1
  523. data/lib/decidim/content_renderers/mention_resource_renderer.rb +77 -0
  524. data/lib/decidim/content_renderers.rb +1 -2
  525. data/lib/decidim/core/api.rb +7 -8
  526. data/lib/decidim/core/content_blocks/registry_manager.rb +19 -5
  527. data/lib/decidim/core/engine.rb +72 -105
  528. data/lib/decidim/core/menu.rb +0 -7
  529. data/lib/decidim/core/seeds.rb +13 -41
  530. data/lib/decidim/core/test/factories.rb +24 -148
  531. data/lib/decidim/core/test/shared_examples/authorable.rb +0 -17
  532. data/lib/decidim/core/test/shared_examples/coauthorable.rb +5 -48
  533. data/lib/decidim/core/test/shared_examples/comments_examples.rb +8 -111
  534. data/lib/decidim/core/test/shared_examples/fingerprint_examples.rb +0 -13
  535. data/lib/decidim/core/test/shared_examples/likeable.rb +22 -0
  536. data/lib/decidim/core/test/shared_examples/manage_share_tokens_examples.rb +16 -3
  537. data/lib/decidim/core/test/shared_examples/map_examples.rb +1 -1
  538. data/lib/decidim/core/test/shared_examples/oauth_application_examples.rb +137 -0
  539. data/lib/decidim/core/test/shared_examples/participatory_space_dropdown_metadata_cell_examples.rb +0 -18
  540. data/lib/decidim/core/test/shared_examples/permissions.rb +0 -46
  541. data/lib/decidim/core/test/shared_examples/reports_examples.rb +2 -2
  542. data/lib/decidim/core/test/shared_examples/{resource_endorsed_event_examples.rb → resource_liked_event_examples.rb} +7 -7
  543. data/lib/decidim/core/test/shared_examples/resource_search_examples.rb +0 -14
  544. data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +8 -34
  545. data/lib/decidim/core/test/shared_examples/social_share_examples.rb +79 -0
  546. data/lib/decidim/core/test/shared_examples/system_like_resource_examples.rb +192 -0
  547. data/lib/decidim/core/test/shared_examples/uncommentable_component_examples.rb +2 -2
  548. data/lib/decidim/core/test/shared_examples/{with_endorsable_permissions_examples.rb → with_likeable_permissions_examples.rb} +22 -22
  549. data/lib/decidim/core/test.rb +6 -9
  550. data/lib/decidim/core/version.rb +1 -1
  551. data/lib/decidim/core.rb +237 -88
  552. data/lib/decidim/deprecations.rb +1 -1
  553. data/lib/decidim/download_your_data_serializers.rb +6 -3
  554. data/lib/decidim/env.rb +3 -1
  555. data/lib/decidim/events/base_event.rb +0 -4
  556. data/lib/decidim/events.rb +0 -1
  557. data/lib/decidim/form_builder.rb +33 -84
  558. data/lib/decidim/gamification/badge_scorer.rb +0 -2
  559. data/lib/decidim/gamification.rb +1 -1
  560. data/lib/decidim/has_conversations.rb +0 -44
  561. data/lib/decidim/has_private_users.rb +0 -1
  562. data/lib/decidim/has_workflows.rb +42 -0
  563. data/lib/decidim/icon_registry.rb +4 -4
  564. data/lib/decidim/legacy_form_builder.rb +17 -2
  565. data/lib/decidim/likeable.rb +24 -0
  566. data/lib/decidim/maintenance/taxonomy_importer.rb +1 -1
  567. data/lib/decidim/manifest_registry.rb +1 -1
  568. data/lib/decidim/map/provider/dynamic_map/here.rb +0 -19
  569. data/lib/decidim/map/provider/static_map/here.rb +2 -10
  570. data/lib/decidim/menu.rb +1 -1
  571. data/lib/decidim/moderation_tools.rb +1 -1
  572. data/lib/decidim/mutation_registry.rb +17 -0
  573. data/lib/decidim/newsletter_encryptor.rb +1 -1
  574. data/lib/decidim/oauth/token_generator.rb +35 -0
  575. data/lib/decidim/oauth.rb +7 -0
  576. data/lib/decidim/organization_settings.rb +2 -10
  577. data/lib/decidim/paddable.rb +1 -1
  578. data/lib/decidim/participatory_space_resourceable.rb +2 -2
  579. data/lib/decidim/participatory_space_user.rb +1 -1
  580. data/lib/decidim/pdf_signature_example.rb +108 -0
  581. data/lib/decidim/query.rb +1 -1
  582. data/lib/decidim/query_extensions.rb +0 -33
  583. data/lib/decidim/reportable.rb +1 -1
  584. data/lib/decidim/searchable.rb +8 -6
  585. data/lib/decidim/seeds.rb +9 -1
  586. data/lib/decidim/settings_manifest.rb +3 -2
  587. data/lib/decidim/{webpacker → shakapacker}/configuration.rb +4 -8
  588. data/lib/decidim/{webpacker → shakapacker}/runner.rb +3 -3
  589. data/lib/decidim/shakapacker/shakapacker.rb +8 -0
  590. data/lib/decidim/{webpacker → shakapacker}/shakapacker.yml +3 -1
  591. data/lib/decidim/{webpacker → shakapacker}/webpack/custom.js +1 -1
  592. data/lib/decidim/shakapacker.rb +34 -0
  593. data/lib/decidim/social_share_service_manifest.rb +7 -12
  594. data/lib/decidim/stats_registry.rb +15 -3
  595. data/{app/helpers → lib}/decidim/tooltip_helper.rb +3 -3
  596. data/lib/decidim/url_option_resolver.rb +1 -1
  597. data/lib/decidim/view_model.rb +0 -3
  598. data/lib/decidim/webpacker.rb +11 -20
  599. data/lib/decidim/workflow_registry.rb +61 -0
  600. data/lib/tasks/decidim_participants_tasks.rake +22 -0
  601. data/lib/tasks/{decidim_webpacker_tasks.rake → decidim_shakapacker_tasks.rake} +35 -33
  602. data/lib/tasks/decidim_tasks.rake +4 -1
  603. data/lib/tasks/decidim_taxonomies.rake +0 -34
  604. data/lib/tasks/upgrade/clean.rake +1 -12
  605. data/lib/tasks/upgrade/decidim_action_log_valuation_assignment.rake +13 -0
  606. data/lib/tasks/upgrade/decidim_change_valuator_tasks.rake +12 -0
  607. data/lib/tasks/upgrade/{decidim_deduplicate_endorsements.rake → decidim_deduplicate_likes.rake} +10 -10
  608. data/lib/tasks/upgrade/decidim_migrate_wysiwyg_content.rake +2 -2
  609. data/lib/tasks/upgrade/decidim_paper_trail_valuation_assignment.rake +13 -0
  610. data/lib/tasks/upgrade/user_groups_migration.rake +155 -0
  611. metadata +204 -280
  612. data/app/cells/decidim/author/badge.erb +0 -6
  613. data/app/cells/decidim/author/endorsements.erb +0 -4
  614. data/app/cells/decidim/author/profile_minicard.erb +0 -30
  615. data/app/cells/decidim/content_blocks/organization_metrics_cell.rb +0 -21
  616. data/app/cells/decidim/content_blocks/participatory_space_metrics/content.erb +0 -18
  617. data/app/cells/decidim/content_blocks/participatory_space_metrics_cell.rb +0 -43
  618. data/app/cells/decidim/endorsement_block/show.erb +0 -3
  619. data/app/cells/decidim/endorsement_buttons/button_content.erb +0 -2
  620. data/app/cells/decidim/endorsement_buttons/select_identity_button.erb +0 -7
  621. data/app/cells/decidim/endorsement_buttons/show.erb +0 -17
  622. data/app/cells/decidim/endorsement_buttons_cell.rb +0 -87
  623. data/app/cells/decidim/endorsers_list/empty.erb +0 -3
  624. data/app/cells/decidim/endorsers_list/show.erb +0 -20
  625. data/app/cells/decidim/endorsers_list_cell.rb +0 -64
  626. data/app/cells/decidim/group_admins/show.erb +0 -34
  627. data/app/cells/decidim/group_admins_cell.rb +0 -8
  628. data/app/cells/decidim/group_members/show.erb +0 -46
  629. data/app/cells/decidim/group_members_cell.rb +0 -8
  630. data/app/cells/decidim/groups/show.erb +0 -14
  631. data/app/cells/decidim/groups_cell.rb +0 -22
  632. data/app/cells/decidim/members/show.erb +0 -12
  633. data/app/cells/decidim/members_cell.rb +0 -34
  634. data/app/cells/decidim/notification/deleted.erb +0 -12
  635. data/app/cells/decidim/notification/not_available.erb +0 -12
  636. data/app/cells/decidim/profile_actions/dropdown_actions.erb +0 -21
  637. data/app/cells/decidim/represent_user_group/show.erb +0 -11
  638. data/app/cells/decidim/represent_user_group_cell.rb +0 -46
  639. data/app/cells/decidim/user_conversation/conversation_header.erb +0 -14
  640. data/app/cells/decidim/user_conversation/messages.erb +0 -1
  641. data/app/cells/decidim/user_conversation/new.erb +0 -6
  642. data/app/cells/decidim/user_conversation/reply.erb +0 -9
  643. data/app/cells/decidim/user_conversation/show.erb +0 -19
  644. data/app/cells/decidim/user_conversation/start.erb +0 -12
  645. data/app/cells/decidim/user_conversation_cell.rb +0 -62
  646. data/app/cells/decidim/user_conversations/new_conversation_button.erb +0 -20
  647. data/app/cells/decidim/user_conversations/show.erb +0 -13
  648. data/app/cells/decidim/user_conversations_cell.rb +0 -28
  649. data/app/cells/decidim/user_group_pending_invitations_list/show.erb +0 -28
  650. data/app/cells/decidim/user_group_pending_invitations_list_cell.rb +0 -26
  651. data/app/cells/decidim/user_group_pending_requests_list/show.erb +0 -27
  652. data/app/cells/decidim/user_group_pending_requests_list_cell.rb +0 -26
  653. data/app/commands/decidim/accept_group_invitation.rb +0 -43
  654. data/app/commands/decidim/accept_user_group_join_request.rb +0 -53
  655. data/app/commands/decidim/create_user_group.rb +0 -73
  656. data/app/commands/decidim/demote_membership.rb +0 -57
  657. data/app/commands/decidim/endorse_resource.rb +0 -66
  658. data/app/commands/decidim/invite_user_to_group.rb +0 -63
  659. data/app/commands/decidim/join_user_group.rb +0 -57
  660. data/app/commands/decidim/leave_user_group.rb +0 -47
  661. data/app/commands/decidim/promote_membership.rb +0 -55
  662. data/app/commands/decidim/reject_group_invitation.rb +0 -42
  663. data/app/commands/decidim/reject_user_group_join_request.rb +0 -53
  664. data/app/commands/decidim/remove_user_from_group.rb +0 -53
  665. data/app/commands/decidim/unendorse_resource.rb +0 -39
  666. data/app/commands/decidim/update_user_group.rb +0 -72
  667. data/app/controllers/concerns/decidim/user_groups.rb +0 -23
  668. data/app/controllers/decidim/endorsements_controller.rb +0 -71
  669. data/app/controllers/decidim/group_email_confirmations_controller.rb +0 -32
  670. data/app/controllers/decidim/group_invites_controller.rb +0 -104
  671. data/app/controllers/decidim/group_members_controller.rb +0 -75
  672. data/app/controllers/decidim/groups_controller.rb +0 -99
  673. data/app/controllers/decidim/own_user_groups_controller.rb +0 -15
  674. data/app/controllers/decidim/user_conversations_controller.rb +0 -133
  675. data/app/controllers/decidim/user_group_join_requests_controller.rb +0 -72
  676. data/app/events/decidim/demoted_membership_event.rb +0 -28
  677. data/app/events/decidim/invited_to_group_event.rb +0 -62
  678. data/app/events/decidim/join_request_accepted_event.rb +0 -28
  679. data/app/events/decidim/join_request_created_event.rb +0 -28
  680. data/app/events/decidim/join_request_rejected_event.rb +0 -28
  681. data/app/events/decidim/promoted_to_admin_event.rb +0 -28
  682. data/app/events/decidim/removed_from_group_event.rb +0 -28
  683. data/app/events/decidim/resource_endorsed_event.rb +0 -36
  684. data/app/events/decidim/user_group_admin_event.rb +0 -37
  685. data/app/events/decidim/user_group_created_event.rb +0 -6
  686. data/app/events/decidim/user_group_updated_event.rb +0 -6
  687. data/app/forms/decidim/invite_user_to_group_form.rb +0 -29
  688. data/app/forms/decidim/user_group_form.rb +0 -87
  689. data/app/helpers/decidim/cta_button_helper.rb +0 -31
  690. data/app/helpers/decidim/endorsable_helper.rb +0 -84
  691. data/app/helpers/decidim/twitter_search_helper.rb +0 -14
  692. data/app/helpers/decidim/user_group_helper.rb +0 -22
  693. data/app/jobs/decidim/metric_job.rb +0 -15
  694. data/app/jobs/decidim/remove_search_indexes_job.rb +0 -18
  695. data/app/models/decidim/metric.rb +0 -25
  696. data/app/models/decidim/user_group.rb +0 -217
  697. data/app/models/decidim/user_group_membership.rb +0 -17
  698. data/app/packs/entrypoints/decidim_widget.js +0 -1
  699. data/app/packs/src/decidim/a11y.test.js +0 -81
  700. data/app/packs/src/decidim/abide_form_validator_fixer.js +0 -44
  701. data/app/packs/src/decidim/account_form.js +0 -96
  702. data/app/packs/src/decidim/append_elements.js +0 -6
  703. data/app/packs/src/decidim/back_to_list.js +0 -26
  704. data/app/packs/src/decidim/change_report_form_behavior.js +0 -45
  705. data/app/packs/src/decidim/clipboard.js +0 -128
  706. data/app/packs/src/decidim/confirm.test.js +0 -225
  707. data/app/packs/src/decidim/editor/extensions/hashtag/index.js +0 -66
  708. data/app/packs/src/decidim/editor/extensions/heading/index.js +0 -33
  709. data/app/packs/src/decidim/editor/test/extensions/hashtag.test.js +0 -105
  710. data/app/packs/src/decidim/form_filter.component_for_testing.js +0 -7
  711. data/app/packs/src/decidim/form_validator.js +0 -56
  712. data/app/packs/src/decidim/gallery.js +0 -5
  713. data/app/packs/src/decidim/impersonation.js +0 -23
  714. data/app/packs/src/decidim/input_autojump.js +0 -38
  715. data/app/packs/src/decidim/input_hashtags.js +0 -91
  716. data/app/packs/src/decidim/input_mentions.js +0 -143
  717. data/app/packs/src/decidim/input_multiple_mentions.js +0 -115
  718. data/app/packs/src/decidim/input_tags.js +0 -16
  719. data/app/packs/src/decidim/notifications_actions.js +0 -40
  720. data/app/packs/src/decidim/password_toggler.js +0 -104
  721. data/app/packs/src/decidim/remote_tooltips.js +0 -38
  722. data/app/packs/src/decidim/responsive_horizontal_tabs.js +0 -12
  723. data/app/packs/src/decidim/scroll_to_last_child.js +0 -14
  724. data/app/packs/src/decidim/slug_form.js +0 -9
  725. data/app/packs/src/decidim/sticky_footer.js +0 -48
  726. data/app/packs/src/decidim/sticky_header.js +0 -62
  727. data/app/packs/src/decidim/toggle.js +0 -37
  728. data/app/packs/src/decidim/tooltips.js +0 -152
  729. data/app/packs/src/decidim/user_registrations.js +0 -65
  730. data/app/packs/src/decidim/vizzs/areachart.js +0 -251
  731. data/app/packs/src/decidim/vizzs/index.js +0 -82
  732. data/app/packs/src/decidim/widget.js +0 -14
  733. data/app/packs/stylesheets/decidim/_hashtags.scss +0 -5
  734. data/app/packs/stylesheets/decidim/_metrics.scss +0 -70
  735. data/app/packs/stylesheets/decidim/_modal_identities.scss +0 -23
  736. data/app/presenters/decidim/admin_log/user_group_presenter.rb +0 -31
  737. data/app/presenters/decidim/hashtag_presenter.rb +0 -37
  738. data/app/presenters/decidim/metric_charts_presenter.rb +0 -92
  739. data/app/presenters/decidim/metric_object_presenter.rb +0 -32
  740. data/app/presenters/decidim/user_group_presenter.rb +0 -38
  741. data/app/queries/decidim/metric_manage.rb +0 -81
  742. data/app/queries/decidim/metric_measure.rb +0 -36
  743. data/app/queries/decidim/metrics/blocked_users_metric_manage.rb +0 -26
  744. data/app/queries/decidim/metrics/followers_metric_manage.rb +0 -65
  745. data/app/queries/decidim/metrics/participants_metric_manage.rb +0 -79
  746. data/app/queries/decidim/metrics/reported_users_metric_manage.rb +0 -26
  747. data/app/queries/decidim/metrics/user_reports_metric_manage.rb +0 -26
  748. data/app/queries/decidim/metrics/users_metric_manage.rb +0 -26
  749. data/app/queries/decidim/user_groups/accepted_memberships.rb +0 -36
  750. data/app/queries/decidim/user_groups/accepted_user_groups.rb +0 -38
  751. data/app/queries/decidim/user_groups/accepted_users.rb +0 -36
  752. data/app/queries/decidim/user_groups/admin_memberships.rb +0 -37
  753. data/app/queries/decidim/user_groups/invited_memberships.rb +0 -36
  754. data/app/queries/decidim/user_groups/manageable_user_groups.rb +0 -39
  755. data/app/queries/decidim/user_groups/member_memberships.rb +0 -37
  756. data/app/resolvers/decidim/core/metric_resolver.rb +0 -71
  757. data/app/resolvers/decidim/hashtags_resolver.rb +0 -15
  758. data/app/serializers/decidim/exporters/open_data_metric_serializer.rb +0 -22
  759. data/app/serializers/decidim/exporters/open_data_user_group_serializer.rb +0 -38
  760. data/app/views/decidim/endorsements/_identity.html.erb +0 -4
  761. data/app/views/decidim/endorsements/identities.html.erb +0 -18
  762. data/app/views/decidim/endorsements/update_buttons_and_counters.js.erb +0 -25
  763. data/app/views/decidim/group_invites/index.html.erb +0 -26
  764. data/app/views/decidim/groups/_form.html.erb +0 -17
  765. data/app/views/decidim/groups/edit.html.erb +0 -19
  766. data/app/views/decidim/groups/new.html.erb +0 -23
  767. data/app/views/decidim/messaging/conversation_mailer/comanagers_new_conversation.html.erb +0 -17
  768. data/app/views/decidim/messaging/conversation_mailer/comanagers_new_message.html.erb +0 -17
  769. data/app/views/decidim/messaging/conversation_mailer/new_group_conversation.html.erb +0 -17
  770. data/app/views/decidim/messaging/conversation_mailer/new_group_message.html.erb +0 -17
  771. data/app/views/decidim/own_user_groups/index.html.erb +0 -10
  772. data/app/views/decidim/shared/_extended_navigation_bar.html.erb +0 -50
  773. data/app/views/decidim/user_conversations/index.html.erb +0 -4
  774. data/app/views/decidim/user_conversations/show.html.erb +0 -4
  775. data/app/views/decidim/user_conversations/update.js.erb +0 -8
  776. data/config/initializers/new_framework_defaults_7_0.rb +0 -145
  777. data/db/migrate/20250819110800_convert_private_exports_id_to_uuid.rb +0 -55
  778. data/lib/decidim/api/input_filters/has_hastaggable_input_filter.rb +0 -15
  779. data/lib/decidim/api/input_sorts/has_endorsable_input_sort.rb +0 -15
  780. data/lib/decidim/api/interfaces/endorsable_interface.rb +0 -19
  781. data/lib/decidim/api/types/hashtag_type.rb +0 -13
  782. data/lib/decidim/api/types/metric_history_type.rb +0 -20
  783. data/lib/decidim/api/types/metric_type.rb +0 -13
  784. data/lib/decidim/api/types/user_group_type.rb +0 -55
  785. data/lib/decidim/content_parsers/hashtag_parser.rb +0 -66
  786. data/lib/decidim/content_parsers/user_group_parser.rb +0 -33
  787. data/lib/decidim/content_renderers/hashtag_renderer.rb +0 -78
  788. data/lib/decidim/content_renderers/user_group_renderer.rb +0 -31
  789. data/lib/decidim/core/test/shared_examples/amendable_interface_examples.rb +0 -14
  790. data/lib/decidim/core/test/shared_examples/amendable_proposals_interface_examples.rb +0 -50
  791. data/lib/decidim/core/test/shared_examples/assembly_announcements_examples.rb +0 -38
  792. data/lib/decidim/core/test/shared_examples/attachable_interface_examples.rb +0 -16
  793. data/lib/decidim/core/test/shared_examples/authorable_interface_examples.rb +0 -59
  794. data/lib/decidim/core/test/shared_examples/categories_container_examples.rb +0 -22
  795. data/lib/decidim/core/test/shared_examples/categorizable_interface_examples.rb +0 -27
  796. data/lib/decidim/core/test/shared_examples/coauthorable_interface_examples.rb +0 -91
  797. data/lib/decidim/core/test/shared_examples/endorsable.rb +0 -69
  798. data/lib/decidim/core/test/shared_examples/endorsable_interface_examples.rb +0 -22
  799. data/lib/decidim/core/test/shared_examples/fingerprintable_interface_examples.rb +0 -17
  800. data/lib/decidim/core/test/shared_examples/input_filter_examples.rb +0 -118
  801. data/lib/decidim/core/test/shared_examples/input_sort_examples.rb +0 -126
  802. data/lib/decidim/core/test/shared_examples/metric_manage_shared_context.rb +0 -9
  803. data/lib/decidim/core/test/shared_examples/participatory_space_resourcable_interface_examples.rb +0 -43
  804. data/lib/decidim/core/test/shared_examples/process_announcements_examples.rb +0 -71
  805. data/lib/decidim/core/test/shared_examples/scopable_interface_examples.rb +0 -19
  806. data/lib/decidim/core/test/shared_examples/system_endorse_resource_examples.rb +0 -298
  807. data/lib/decidim/core/test/shared_examples/taxonomizable_interface_examples.rb +0 -20
  808. data/lib/decidim/core/test/shared_examples/timestamps_interface_examples.rb +0 -21
  809. data/lib/decidim/core/test/shared_examples/traceable_interface_examples.rb +0 -47
  810. data/lib/decidim/download_your_data_serializers/download_your_data_user_group_serializer.rb +0 -21
  811. data/lib/decidim/endorsable.rb +0 -29
  812. data/lib/decidim/events/user_group_event.rb +0 -43
  813. data/lib/decidim/hashtag.rb +0 -13
  814. data/lib/decidim/metric_manifest.rb +0 -35
  815. data/lib/decidim/metric_operation.rb +0 -58
  816. data/lib/decidim/metric_operation_manifest.rb +0 -21
  817. data/lib/decidim/metric_registry.rb +0 -109
  818. data/lib/gem_overrides/shakapacker/runner.rb +0 -9
  819. data/lib/tasks/decidim_metrics_tasks.rake +0 -89
  820. data/lib/tasks/upgrade/decidim_fix_action_log.rake +0 -28
  821. data/lib/tasks/upgrade/decidim_remove_deleted_users_left_data_tasks.rake +0 -30
  822. data/lib/tasks/upgrade/fix_deleted_private_follows.rake +0 -26
  823. /data/app/cells/decidim/{endorsement_buttons/disabled_endorsements.erb → like_buttons/disabled_likes.erb} +0 -0
  824. /data/app/packs/src/decidim/{configuration.js → refactor/implementation/configuration.js} +0 -0
  825. /data/app/packs/src/decidim/{external_domain_warning.js → refactor/implementation/external_domain_warning.js} +0 -0
  826. /data/app/packs/src/decidim/{autocomplete.js → refactor/moved/autocomplete.js} +0 -0
  827. /data/app/packs/src/decidim/{delayed.js → refactor/moved/delayed.js} +0 -0
  828. /data/app/packs/src/decidim/{history.js → refactor/moved/history.js} +0 -0
  829. /data/app/packs/src/decidim/{i18n.js → refactor/moved/i18n.js} +0 -0
  830. /data/lib/decidim/core/test/shared_examples/{endorsements_controller_shared_context.rb → likes_controller_shared_context.rb} +0 -0
  831. /data/{app/helpers → lib}/decidim/resource_helper.rb +0 -0
  832. /data/lib/decidim/{webpacker → shakapacker}/esbuild.config.js +0 -0
  833. /data/lib/decidim/{webpacker → shakapacker}/postcss.config.js +0 -0
  834. /data/lib/decidim/{webpacker → shakapacker}/tsconfig.json +0 -0
  835. /data/lib/decidim/{webpacker → shakapacker}/webpack/.modernizrrc +0 -0
  836. /data/lib/decidim/{webpacker → shakapacker}/webpack/webpack.config.js +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5110ff22ed67aef95bf387023ec7d18d9602a92944c82c2ab9373e786c04393c
4
- data.tar.gz: b754a2b2ddb4a72ae07dcd384203d61454ced7f6a3a41a4f80a5bb501b3dc310
3
+ metadata.gz: 48ac792c6ae7948c567414610e5822df045b3f9f6c4dc638a8e5813a6043c6aa
4
+ data.tar.gz: 4b19fd5477f45a51b816eeabdb81961c181ef8d4a46d1fbe920c9fbe0a5cef25
5
5
  SHA512:
6
- metadata.gz: 3659a2a34d2531735e1a03710329261952c724361d0661bb9cf02c7a2acc76c2516266e8030a82e4dcc40789361d67845f1421addfcbf0f1fe4e0743a1288572
7
- data.tar.gz: 9ec948751168cd3f4a8cc2b768be6a118cd22b47aecb0712fa64a1c01d58a5cdf2b7f2f20963fdd0eec2384a41753bbaec558016f533bfab7176227df6f3cadd
6
+ metadata.gz: a44f376207a878d0ac6d250dc82d82e0c9c6ae06ca51f97140fe65e01eecc01780bbfe49c9434bf4dde2631141912d765e6052897ab07ae360ee57848f9e28a3
7
+ data.tar.gz: ac20b49d78c501a49757a3483e483e60b47ba4de6652ffbafbe6d97d535ab8a25aa6b1d21b8a93870116eff87c8f6489e2171238265393c3976e8ce22dd704aa
data/README.md CHANGED
@@ -68,10 +68,6 @@ This can be done in an initializer (like user does), in a participatory_space ma
68
68
  ...
69
69
  ```
70
70
 
71
- ## Metrics docs
72
-
73
- Core adds an implementation to show APP metrics within some pages. You can see specific documentation at [Metrics](https://docs.decidim.org/en/develop/metrics/)
74
-
75
71
  ## Contributing
76
72
 
77
73
  See [Decidim](https://github.com/decidim/decidim).
@@ -12,12 +12,6 @@ module Decidim
12
12
  return unless renderable?
13
13
 
14
14
  render
15
- rescue NoMethodError => e
16
- # Soft-deleted components or participatory spaces could cause errors
17
- # when rendering activities. We log them for further inspection but
18
- # avoid breaking the entire activity feed.
19
- Rails.logger.error("Error rendering activity cell for #{model.id}: #{e.message}")
20
- nil
21
15
  end
22
16
 
23
17
  # Since activity logs could be linked to resource no longer available
@@ -87,7 +81,6 @@ module Decidim
87
81
  end
88
82
 
89
83
  def user
90
- return resource.normalized_author if resource.respond_to?(:normalized_author)
91
84
  return resource.author if resource.respond_to?(:author)
92
85
  # As Proposals have Coauthorable concern instead of Authorable
93
86
  return resource.identities.first if resource.respond_to?(:identities)
@@ -137,8 +130,6 @@ module Decidim
137
130
  presenter = case user
138
131
  when Decidim::User
139
132
  UserPresenter.new(user)
140
- when Decidim::UserGroup
141
- UserGroupPresenter.new(user)
142
133
  end
143
134
 
144
135
  return unless presenter
@@ -24,6 +24,7 @@
24
24
  <%= start_and_end_time %>
25
25
  </div>
26
26
  </div>
27
+ </div>
27
28
  </li>
28
29
  <% end %>
29
30
  </ul>
@@ -24,11 +24,17 @@ module Decidim
24
24
  end
25
25
 
26
26
  def location
27
+ return pending_location_text if model.respond_to?(:pending_location?) && model.pending_location?
28
+
27
29
  decidim_sanitize_translated(model.location)
28
30
  end
29
31
 
30
32
  def address
31
- decidim_sanitize_translated(model.address)
33
+ decidim_sanitize_translated(model.address) if model.respond_to?(:address) && model.address.present?
34
+ end
35
+
36
+ def pending_location_text
37
+ t("show.pending_address", scope: "decidim.meetings.meetings")
32
38
  end
33
39
 
34
40
  def display_start_and_end_time?
@@ -1,5 +1,5 @@
1
- <li role="menuitem">
2
- <%= action_authorized_link_to :amend, new_amend_path, resource: model, data: { "redirect_url" => new_amend_path }, id: "amend-button", class: "button button__sm button__text button__text-secondary" do %>
1
+ <li role="menuitem" class="dropdown__item">
2
+ <%= action_authorized_link_to :amend, new_amend_path, resource: model, data: { "redirect_url" => new_amend_path }, id: "amend-button", class: "dropdown__button" do %>
3
3
  <span><%= t("button", scope: "decidim.amendments.amendable", model_name: nil) %></span>
4
4
  <%= icon "pencil-line" %>
5
5
  <% end %>
@@ -68,23 +68,15 @@ module Decidim
68
68
  def clean_body
69
69
  return unless body
70
70
 
71
- Array(body).map { |paragraph| clean(paragraph) }.join
71
+ Array(body).map { |paragraph| tag.p(clean(paragraph)) }.join
72
72
  end
73
73
 
74
74
  def clean_announcement
75
- return if announcement.is_a?(Hash) && announcement.values.all?(&:blank?)
76
-
77
75
  clean(announcement)
78
76
  end
79
77
 
80
78
  def clean(value)
81
- return if value.blank? || value.nil?
82
-
83
- if value.include?("rich-text-display")
84
- decidim_sanitize_admin(translated_attribute(value))
85
- else
86
- tag.p(decidim_sanitize_admin(translated_attribute(value)))
87
- end
79
+ decidim_sanitize_admin(translated_attribute(value))
88
80
  end
89
81
  end
90
82
  end
@@ -1,3 +1,3 @@
1
1
  <div class="row column">
2
- <%= form.upload :file, attachments: form.object.file.present? ? [form.object.file] : [], button_class: "button button__sm button__transparent-secondary" %>
2
+ <%= form.upload :file, button_class: "button button__sm button__transparent-secondary" %>
3
3
  </div>
@@ -0,0 +1,4 @@
1
+ <%= link_to "#{resource_locator(from_context).path}#list-of-likes", title: t("decidim.author.likes", count: from_context.likes_count), class: "author__metadata" do %>
2
+ <%= icon "like" if show_icons? %>
3
+ <%= from_context.likes_count %> <%= t("decidim.author.likes", count: from_context.likes_count) %>
4
+ <% end %>
@@ -1,15 +1,10 @@
1
- <%# If the options hash has the demo key it means we are in the decidim-design engine, so it is not a real-world scenario with actual users %>
2
- <% tooltip = options.has_key?(:demo) ? { tooltip: render(:profile_minicard).html_safe } : nil %>
3
1
  <%= content_tag(:p, class: :author, data: ) do %>
4
- <%= content_tag :span, class: "author__container#{" is-compact" if layout == :compact}", data: tooltip do %>
2
+ <%= content_tag :span, class: "author__container#{" is-compact" if layout == :compact}" do %>
5
3
  <% if layout == :compact %>
6
4
  <%= render :avatar %>
7
5
 
8
6
  <span>
9
- <span class="flex gap-2">
10
- <%= render :name %>
11
- <%= render :badge %>
12
- </span>
7
+ <%= render :name %>
13
8
 
14
9
  <% context_actions.each do |action| %>
15
10
  <%= render action %>
@@ -20,7 +15,6 @@
20
15
  <% else %>
21
16
  <%= render :avatar %>
22
17
  <%= render :name %>
23
- <%= render :badge %>
24
18
  <% end %>
25
19
  <% end %>
26
20
 
@@ -16,7 +16,6 @@ module Decidim
16
16
 
17
17
  property :profile_path
18
18
  property :can_be_contacted?
19
- property :has_tooltip?
20
19
 
21
20
  delegate :current_user, to: :controller, prefix: false
22
21
 
@@ -47,24 +46,10 @@ module Decidim
47
46
  @context_actions_options ||= options[:context_actions].map(&:to_sym)
48
47
  end
49
48
 
50
- def profile_minicard
51
- render
52
- end
53
-
54
49
  private
55
50
 
56
- # If the options hash has the demo key it means we are in the decidim-design engine,
57
- # so it is not a real-world scenario with actual users
58
51
  def data
59
- @data ||= begin
60
- internal_data = { author: true }
61
- if has_tooltip? && !options.has_key?(:demo)
62
- internal_data["remote_tooltip"] = true
63
- internal_data["tooltip-url"] = decidim.profile_tooltip_path(raw_model.nickname)
64
- end
65
-
66
- internal_data
67
- end
52
+ @data ||= { author: true }
68
53
  end
69
54
 
70
55
  def layout
@@ -80,7 +65,7 @@ module Decidim
80
65
  list << :date if creation_date?
81
66
  list << :cancelled_on if cancelable?
82
67
  list << :comments if commentable?
83
- list << :endorsements if endorsable?
68
+ list << :likes if likeable?
84
69
  list << :withdraw if withdrawable?
85
70
  end
86
71
  return actions unless has_context_actions_options?
@@ -101,7 +86,7 @@ module Decidim
101
86
  hash.push(current_user.try(:id))
102
87
  hash.push(current_user.present?)
103
88
  hash.push(commentable?)
104
- hash.push(endorsable?)
89
+ hash.push(likeable?)
105
90
  hash.push(actionable?)
106
91
  hash.push(withdrawable?)
107
92
  hash.push(profile_path?)
@@ -147,8 +132,8 @@ module Decidim
147
132
  from_context && from_context.respond_to?(:cancelled_on)
148
133
  end
149
134
 
150
- def endorsable?
151
- from_context && from_context.class.include?(Decidim::Endorsable)
135
+ def likeable?
136
+ from_context && from_context.class.include?(Decidim::Likeable)
152
137
  end
153
138
 
154
139
  def actionable?
@@ -178,23 +163,5 @@ module Decidim
178
163
  def resource_name
179
164
  @resource_name ||= from_context.class.name.demodulize.underscore
180
165
  end
181
-
182
- def has_tooltip?
183
- return false if model.deleted?
184
- return false if model.respond_to?(:blocked?) && model.blocked?
185
- return true if options.has_key?(:tooltip)
186
-
187
- model.has_tooltip?
188
- end
189
-
190
- def show_badge?
191
- return false unless model.respond_to? :officialized?
192
-
193
- model.officialized?
194
- end
195
-
196
- def officialization_text
197
- translated_attribute(model.officialized_as).presence || t("decidim.profiles.show.officialized")
198
- end
199
166
  end
200
167
  end
@@ -17,13 +17,7 @@ module Decidim
17
17
  end
18
18
 
19
19
  def own_profile?
20
- return @own_profile if defined?(@own_profile)
21
-
22
- @own_profile = if model.is_a?(User)
23
- model == current_user
24
- elsif model.is_a?(UserGroup) && current_user
25
- current_user.user_groups.include?(model)
26
- end
20
+ model == current_user
27
21
  end
28
22
 
29
23
  def description
@@ -49,9 +49,7 @@ module Decidim
49
49
  def resource_cell
50
50
  @resource_cell ||= if resource_card
51
51
  resource_card
52
- elsif group_membership?
53
- "decidim/user_profile"
54
- elsif official_author? || user_or_user_group?
52
+ elsif official_author? || user_base_entity?
55
53
  "decidim/author"
56
54
  end
57
55
  end
@@ -82,18 +80,10 @@ module Decidim
82
80
  model.is_a? Decidim::OfficialAuthorPresenter
83
81
  end
84
82
 
85
- def user_or_user_group?
83
+ def user_base_entity?
86
84
  model.is_a?(Decidim::UserBaseEntity)
87
85
  end
88
86
 
89
- def group_membership?
90
- model.instance_of?(::Decidim::UserGroupMembership)
91
- end
92
-
93
- def user_group?
94
- model.instance_of?(::Decidim::UserGroup)
95
- end
96
-
97
87
  def stats
98
88
  []
99
89
  end
@@ -1,7 +1,7 @@
1
1
  <%= link_to resource_path, class: classes[:default], id: resource_id do %>
2
2
  <div class="<%= classes[:img] %>">
3
3
  <% if has_image? %>
4
- <%= image_tag resource_image_url, alt: "" %>
4
+ <%= image_tag resource_image_url, alt: alt_title %>
5
5
  <% else %>
6
6
  <%= external_icon "media/images/placeholder-card-g.svg", class: "card__placeholder-g" %>
7
7
  <% end %>
@@ -45,13 +45,13 @@ module Decidim
45
45
  }
46
46
  end
47
47
 
48
- def endorsements_count_item
49
- return unless resource.respond_to?(:endorsements_count)
48
+ def likes_count_item
49
+ return unless resource.respond_to?(:likes_count)
50
50
 
51
51
  {
52
- text: resource.endorsements_count,
52
+ text: resource.likes_count,
53
53
  icon: resource_type_icon_key(:like),
54
- data_attributes: { endorsements_count: "" }
54
+ data_attributes: { likes_count: "" }
55
55
  }
56
56
  end
57
57
 
@@ -39,7 +39,7 @@ module Decidim
39
39
  if official?
40
40
  "#{model.class.module_parent}::OfficialAuthorPresenter".constantize.new
41
41
  else
42
- authorable.user_group&.presenter || authorable.author.presenter
42
+ authorable.author.presenter
43
43
  end
44
44
  end
45
45
 
@@ -1,4 +1,4 @@
1
- <div class="author__coauthors" data-component="accordion">
1
+ <div class="author__coauthors" data-controller="accordion">
2
2
  <% visible_authors.each do |author| %>
3
3
  <%= cell "decidim/author", author, layout: :compact %>
4
4
  <% end %>
@@ -3,9 +3,6 @@
3
3
  module Decidim
4
4
  module ContentBlocks
5
5
  class HeroCell < Decidim::ViewModel
6
- include Decidim::CtaButtonHelper
7
-
8
- # Needed so that the `CtaButtonHelper` can work.
9
6
  def decidim_participatory_processes
10
7
  Decidim::ParticipatoryProcesses::Engine.routes.url_helpers
11
8
  end
@@ -25,13 +22,35 @@ module Decidim
25
22
  def cache_hash
26
23
  hash = []
27
24
  hash << "decidim/content_blocks/hero"
28
- hash << Digest::MD5.hexdigest(model.attributes.to_s)
25
+ hash << Digest::SHA256.hexdigest(model.attributes.to_s)
29
26
  hash << current_organization.cache_key_with_version
30
27
  hash << I18n.locale.to_s
31
28
  hash << background_image
32
29
 
33
30
  hash.join(Decidim.cache_key_separator)
34
31
  end
32
+
33
+ def cta_button_text
34
+ translated_attribute(model.settings.cta_button_text).presence || t("decidim.pages.home.hero.participate")
35
+ end
36
+
37
+ def cta_button
38
+ link_to cta_button_text, cta_button_path, class: "hero-cta button expanded large button--sc", title: t("decidim.pages.home.hero.participate_title")
39
+ end
40
+
41
+ def cta_button_path
42
+ if model.settings.cta_button_path.present?
43
+ translated_attribute(model.settings.cta_button_path)
44
+ elsif Decidim::ParticipatoryProcess.where(organization: current_organization).published.any?
45
+ decidim_participatory_processes.participatory_processes_path
46
+ elsif current_user
47
+ decidim.account_path
48
+ elsif current_organization.sign_up_enabled?
49
+ decidim.new_user_registration_path
50
+ else
51
+ decidim.new_user_session_path
52
+ end
53
+ end
35
54
  end
36
55
  end
37
56
  end
@@ -1,7 +1,21 @@
1
1
  <% form.fields_for :settings, form.object.settings do |settings_fields| %>
2
- <%= settings_fields.translated :text_field, :welcome_text, label: t(".welcome_text") %>
2
+ <div class="row column">
3
+ <%= settings_fields.translated :text_field, :welcome_text, label: t(".welcome_text") %>
4
+ </div>
5
+
6
+ <div class="row column" data-controller="slug">
7
+ <%= settings_fields.translated :text_field, :cta_button_path, label: t(".cta_button_path") %>
8
+ <p class="help-text"><%= t(".cta_button_path_help", url: decidim_form_slug_url("", translated_attribute(form.object.settings.cta_button_path))) %></p>
9
+ </div>
10
+
11
+ <div class="row column">
12
+ <%= settings_fields.translated :text_field, :cta_button_text, label: t(".cta_button_text") %>
13
+ <p class="help-text"><%= t(".cta_button_text_help") %></p>
14
+ </div>
3
15
  <% end %>
4
16
 
5
17
  <% form.fields_for :images, form.object.images do |images_fields| %>
6
- <%= images_fields.upload :background_image, label: t(".background_image") %>
18
+ <div class="row column">
19
+ <%= images_fields.upload :background_image, label: t(".background_image"), button_class: "button button__sm button__transparent-secondary" %>
20
+ </div>
7
21
  <% end %>
@@ -1,18 +1,18 @@
1
- <section id="highlighted_content_banner" class="home__section-image" style="--hero-image:url('<%= current_organization.attached_uploader(:highlighted_content_banner_image).url %>');">
1
+ <section id="highlighted_content_banner" class="home__section-image" style="--hero-image:url('<%= background_image %>');">
2
2
  <div class="home__section-content-banner home__section">
3
3
  <div>
4
4
  <h2 class="home__section-content-banner__title">
5
- <%= translated_attribute current_organization.highlighted_content_banner_title %>
5
+ <%= translated_title %>
6
6
  </h2>
7
7
  <div class="editor-content">
8
- <%= translated_attribute current_organization.highlighted_content_banner_short_description %>
8
+ <%= translated_short_description %>
9
9
  </div>
10
10
  </div>
11
- <%= link_to current_organization.highlighted_content_banner_action_url, class: "button button__lg button__secondary mt-4 md:mt-0 mr-auto md:mr-0 md:ml-auto" do %>
11
+ <%= link_to model.settings.action_button_url, class: "button button__lg button__secondary mt-4 md:mt-0 mr-auto md:mr-0 md:ml-auto" do %>
12
12
  <span>
13
- <%= translated_attribute current_organization.highlighted_content_banner_action_title %>
13
+ <%= translated_banner_action_title %>
14
14
  <span class="block font-normal text-sm">
15
- <%= translated_attribute current_organization.highlighted_content_banner_action_subtitle %>
15
+ <%= translated_banner_action_subtitle %>
16
16
  </span>
17
17
  </span>
18
18
  <% end %>
@@ -4,10 +4,37 @@ module Decidim
4
4
  module ContentBlocks
5
5
  class HighlightedContentBannerCell < Decidim::ViewModel
6
6
  def show
7
- return unless current_organization.highlighted_content_banner_enabled
7
+ return unless render?
8
8
 
9
9
  render
10
10
  end
11
+
12
+ def translated_title
13
+ translated_attribute model.settings.title
14
+ end
15
+
16
+ def translated_short_description
17
+ translated_attribute model.settings.short_description
18
+ end
19
+
20
+ def translated_banner_action_title
21
+ translated_attribute model.settings.action_button_title
22
+ end
23
+
24
+ def translated_banner_action_subtitle
25
+ translated_attribute model.settings.action_button_subtitle
26
+ end
27
+
28
+ def background_image
29
+ model.images_container.attached_uploader(:background_image).variant_url(:big)
30
+ end
31
+
32
+ private
33
+
34
+ def render?
35
+ required_keys = [:title, :short_description, :action_button_title, :action_button_subtitle, :action_button_url]
36
+ required_keys.all? { |key| model.settings.public_send(key).present? }
37
+ end
11
38
  end
12
39
  end
13
40
  end
@@ -0,0 +1,27 @@
1
+ <% form.fields_for :settings, form.object.settings do |settings_fields| %>
2
+ <div class="row column">
3
+ <%= settings_fields.translated :text_field, :title, label: t(".title") %>
4
+ </div>
5
+
6
+ <div class="row column">
7
+ <%= settings_fields.translated :editor, :short_description, label: t(".short_description") %>
8
+ </div>
9
+
10
+ <div class="row column">
11
+ <%= settings_fields.translated :text_field, :action_button_title, label: t(".action_button_title") %>
12
+ </div>
13
+
14
+ <div class="row column">
15
+ <%= settings_fields.translated :text_field, :action_button_subtitle, label: t(".action_button_subtitle") %>
16
+ </div>
17
+
18
+ <div class="row column">
19
+ <%= settings_fields.text_field :action_button_url, label: t(".action_button_url") %>
20
+ </div>
21
+ <% end %>
22
+
23
+ <% form.fields_for :images, form.object.images do |images_fields| %>
24
+ <div class="row column">
25
+ <%= images_fields.upload :background_image, label: t(".background_image"), button_class: "button button__sm button__transparent-secondary" %>
26
+ </div>
27
+ <% end %>
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ContentBlocks
5
+ class HighlightedContentBannerSettingsFormCell < Decidim::ViewModel
6
+ alias form model
7
+
8
+ def content_block
9
+ options[:content_block]
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,4 +1,11 @@
1
1
  <% form.fields_for :settings, form.object.settings do |settings_fields| %>
2
- <%= settings_fields.select(:order, order_options, prompt: "", label:) if include_order_setting? %>
3
- <%= settings_fields.select :component_id, component_options, prompt: "", label: component_label %>
2
+ <% if include_order_setting? %>
3
+ <div class="row column">
4
+ <%= settings_fields.select(:order, order_options, prompt: "", label:) %>
5
+ </div>
6
+ <% end %>
7
+
8
+ <div class="row column">
9
+ <%= settings_fields.select :component_id, component_options, prompt: "", label: component_label %>
10
+ </div>
4
11
  <% end %>
@@ -19,14 +19,10 @@ module Decidim
19
19
  @list_cell ||= cell(
20
20
  list_cell_path,
21
21
  published_components.one? ? published_components.first : published_components,
22
- **model.settings.to_h, **extra_list_cell_options, see_all_path:
22
+ **model.settings.to_h, see_all_path:
23
23
  )
24
24
  end
25
25
 
26
- def extra_list_cell_options
27
- {}
28
- end
29
-
30
26
  def see_all_path; end
31
27
  end
32
28
  end
@@ -1,3 +1,5 @@
1
1
  <% form.fields_for :settings, form.object.settings do |settings_fields| %>
2
- <%= settings_fields.translated :text_area, :html_content, label: %>
2
+ <div class="row column">
3
+ <%= settings_fields.translated :text_area, :html_content, label: %>
4
+ </div>
3
5
  <% end %>
@@ -49,7 +49,7 @@ module Decidim
49
49
  def cache_hash
50
50
  hash = []
51
51
  hash << "decidim/content_blocks/last_activity"
52
- hash << Digest::MD5.hexdigest(valid_activities.map(&:cache_key_with_version).to_s)
52
+ hash << Digest::SHA256.hexdigest(valid_activities.map(&:cache_key_with_version).to_s)
53
53
  hash << I18n.locale.to_s
54
54
 
55
55
  hash.join(Decidim.cache_key_separator)
@@ -1,3 +1,5 @@
1
1
  <% form.fields_for :settings, form.object.settings do |settings_fields| %>
2
- <%= settings_fields.number_field :max_last_activity_users, label: %>
2
+ <div class="row column">
3
+ <%= settings_fields.number_field :max_last_activity_users, label: %>
4
+ </div>
3
5
  <% end %>
@@ -27,7 +27,7 @@ module Decidim
27
27
  hash = []
28
28
  hash << "decidim/content_blocks/menu_breadcrumb_last_activity"
29
29
  hash << id_prefix
30
- hash << Digest::MD5.hexdigest(valid_activities.map(&:cache_key_with_version).to_s)
30
+ hash << Digest::SHA256.hexdigest(valid_activities.map(&:cache_key_with_version).to_s)
31
31
  hash << I18n.locale.to_s
32
32
 
33
33
  hash.join(Decidim.cache_key_separator)
@@ -1,5 +1,5 @@
1
1
  <div class="participatory-space__metadata-link">
2
- <div class="participatory-space__metadata-link-endorsers">
2
+ <div class="participatory-space__metadata-link-likes">
3
3
  <%= cell("decidim/content_blocks/participatory_space_last_activity", model, base_model:).render_recent_avatars %>
4
4
  </div>
5
5
  </div>
@@ -5,11 +5,6 @@
5
5
  <%= title_text %>
6
6
  </h1>
7
7
  <p class="participatory-space__hero-slogan">
8
- <% if has_hashtag? %>
9
- <span>
10
- <%= link_to "##{escaped_hashtag}", twitter_hashtag_url(escaped_hashtag), target: "_blank" %>
11
- </span>
12
- <% end %>
13
8
  <%= subtitle_text %>
14
9
  </p>
15
10
  <% if has_cta? %>
@@ -3,9 +3,7 @@
3
3
  module Decidim
4
4
  module ContentBlocks
5
5
  class ParticipatorySpaceHeroCell < Decidim::ContentBlocks::BaseCell
6
- include Decidim::TwitterSearchHelper
7
-
8
- delegate :title, :hashtag, :attached_uploader, to: :resource
6
+ delegate :title, :attached_uploader, to: :resource
9
7
 
10
8
  def cta_text
11
9
  return unless model
@@ -37,19 +35,9 @@ module Decidim
37
35
  attached_uploader(:banner_image).url
38
36
  end
39
37
 
40
- def has_hashtag?
41
- @has_hashtag ||= hashtag.present?
42
- end
43
-
44
38
  def has_cta?
45
39
  [cta_text, cta_path].all?
46
40
  end
47
-
48
- def escaped_hashtag
49
- return unless has_hashtag?
50
-
51
- @escaped_hashtag ||= decidim_html_escape(hashtag)
52
- end
53
41
  end
54
42
  end
55
43
  end