decidim-core 0.28.5 → 0.29.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 (714) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/cells/decidim/activities_cell.rb +0 -1
  4. data/app/cells/decidim/activity_cell.rb +7 -6
  5. data/app/cells/decidim/address/online.erb +2 -2
  6. data/app/cells/decidim/address_cell.rb +3 -9
  7. data/app/cells/decidim/amendable/amend_button_card_cell.rb +0 -2
  8. data/app/cells/decidim/amendable/amendments_cell.rb +0 -2
  9. data/app/cells/decidim/amendable/announcement_cell.rb +10 -14
  10. data/app/cells/decidim/amendable/emendation_actions_cell.rb +0 -2
  11. data/app/cells/decidim/amendable/promote_button_card_cell.rb +0 -2
  12. data/app/cells/decidim/amendable/wizard_step_form_cell.rb +6 -19
  13. data/app/cells/decidim/announcement/show.erb +1 -1
  14. data/app/cells/decidim/announcement_cell.rb +6 -2
  15. data/app/cells/decidim/attachments_file_tab/show.erb +3 -0
  16. data/app/cells/decidim/attachments_file_tab_cell.rb +11 -0
  17. data/app/cells/decidim/attachments_link_tab/show.erb +12 -0
  18. data/app/cells/decidim/attachments_link_tab_cell.rb +21 -0
  19. data/app/cells/decidim/author/flag.erb +2 -2
  20. data/app/cells/decidim/author/show.erb +4 -5
  21. data/app/cells/decidim/author_cell.rb +0 -28
  22. data/app/cells/decidim/authorization_modal_cell.rb +0 -3
  23. data/app/cells/decidim/badge_cell.rb +0 -4
  24. data/app/cells/decidim/badges_cell.rb +0 -2
  25. data/app/cells/decidim/button_cell.rb +0 -3
  26. data/app/cells/decidim/card_cell.rb +1 -5
  27. data/app/cells/decidim/card_g/show.erb +1 -1
  28. data/app/cells/decidim/card_g_cell.rb +4 -7
  29. data/app/cells/decidim/card_l/image.erb +2 -2
  30. data/app/cells/decidim/card_l/space.erb +1 -1
  31. data/app/cells/decidim/card_l_cell.rb +3 -8
  32. data/app/cells/decidim/card_metadata_cell.rb +1 -5
  33. data/app/cells/decidim/card_s/show.erb +3 -5
  34. data/app/cells/decidim/card_s_cell.rb +1 -4
  35. data/app/cells/decidim/coauthorships_cell.rb +0 -2
  36. data/app/cells/decidim/comments_button_cell.rb +0 -2
  37. data/app/cells/decidim/content_blocks/footer_sub_hero/show.erb +1 -1
  38. data/app/cells/decidim/content_blocks/footer_sub_hero_cell.rb +0 -3
  39. data/app/cells/decidim/content_blocks/hero/show.erb +1 -1
  40. data/app/cells/decidim/content_blocks/hero_cell.rb +1 -2
  41. data/app/cells/decidim/content_blocks/highlighted_content_banner/show.erb +1 -1
  42. data/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb +0 -2
  43. data/app/cells/decidim/content_blocks/how_to_participate/show.erb +1 -1
  44. data/app/cells/decidim/content_blocks/how_to_participate_cell.rb +0 -1
  45. data/app/cells/decidim/content_blocks/participatory_space_documents/content.erb +1 -1
  46. data/app/cells/decidim/content_blocks/participatory_space_documents_cell.rb +17 -1
  47. data/app/cells/decidim/content_blocks/participatory_space_hero_cell.rb +2 -4
  48. data/app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb +1 -3
  49. data/app/cells/decidim/content_blocks/stats/show.erb +1 -1
  50. data/app/cells/decidim/content_blocks/stats_cell.rb +1 -1
  51. data/app/cells/decidim/content_blocks/sub_hero_cell.rb +0 -3
  52. data/app/cells/decidim/date_range/show.erb +10 -10
  53. data/app/cells/decidim/date_range_cell.rb +0 -2
  54. data/app/cells/decidim/diff_cell.rb +0 -5
  55. data/app/cells/decidim/documents_panel/show.erb +4 -0
  56. data/app/cells/decidim/documents_panel_cell.rb +9 -1
  57. data/app/cells/decidim/endorsement_buttons_cell.rb +6 -14
  58. data/app/cells/decidim/flag_modal/flag_user.erb +3 -3
  59. data/app/cells/decidim/followers_cell.rb +0 -1
  60. data/app/cells/decidim/following_cell.rb +0 -1
  61. data/app/cells/decidim/footer_topics/show.erb +8 -0
  62. data/app/cells/decidim/footer_topics_cell.rb +39 -0
  63. data/app/cells/decidim/groups_cell.rb +0 -3
  64. data/app/cells/decidim/linked_resources_for_cell.rb +0 -3
  65. data/app/cells/decidim/members_cell.rb +0 -1
  66. data/app/cells/decidim/nav_links/show.erb +3 -3
  67. data/app/cells/decidim/navbar_admin_link_cell.rb +0 -2
  68. data/app/cells/decidim/newsletter_templates/base_cell.rb +0 -1
  69. data/app/cells/decidim/newsletter_templates/basic_only_text/show.erb +2 -2
  70. data/app/cells/decidim/newsletter_templates/image_text_cta/show.erb +2 -2
  71. data/app/cells/decidim/newsletter_templates/image_text_cta_cell.rb +1 -1
  72. data/app/cells/decidim/notification/show.erb +5 -0
  73. data/app/cells/decidim/notification_actions/base_cell.rb +13 -0
  74. data/app/cells/decidim/notification_actions/buttons/show.erb +5 -0
  75. data/app/cells/decidim/notification_actions/buttons_cell.rb +41 -0
  76. data/app/cells/decidim/notification_cell.rb +9 -3
  77. data/app/cells/decidim/notifications_cell.rb +0 -1
  78. data/app/cells/decidim/pad_iframe/show.erb +2 -2
  79. data/app/cells/decidim/pad_iframe_cell.rb +0 -1
  80. data/app/cells/decidim/participatory_space_dropdown_metadata_cell.rb +1 -2
  81. data/app/cells/decidim/photo_cell.rb +1 -5
  82. data/app/cells/decidim/photos_list_cell.rb +0 -2
  83. data/app/cells/decidim/profile_cell.rb +0 -2
  84. data/app/cells/decidim/profile_sidebar/show.erb +20 -20
  85. data/app/cells/decidim/profile_sidebar_cell.rb +1 -10
  86. data/app/cells/decidim/progress_bar/show.erb +8 -6
  87. data/app/cells/decidim/public_participation/show.erb +1 -1
  88. data/app/cells/decidim/report_button/flag_modal.erb +1 -1
  89. data/app/cells/decidim/resource_types_filter/show.erb +12 -11
  90. data/app/cells/decidim/resource_types_filter_cell.rb +0 -2
  91. data/app/cells/decidim/scopes_picker/show.erb +1 -1
  92. data/app/cells/decidim/scopes_picker_cell.rb +0 -1
  93. data/app/cells/decidim/search_results_cell.rb +1 -1
  94. data/app/cells/decidim/statistic_cell.rb +0 -2
  95. data/app/cells/decidim/tab_panels/show.erb +1 -1
  96. data/app/cells/decidim/tab_panels_cell.rb +12 -2
  97. data/app/cells/decidim/tags_cell.rb +0 -2
  98. data/app/cells/decidim/tos_page_cell.rb +0 -3
  99. data/app/cells/decidim/translation_bar/show.erb +2 -2
  100. data/app/cells/decidim/translation_bar_cell.rb +1 -3
  101. data/app/cells/decidim/upload_modal/files.erb +1 -1
  102. data/app/cells/decidim/upload_modal_cell.rb +1 -3
  103. data/app/cells/decidim/user_conversation/new.erb +1 -1
  104. data/app/cells/decidim/user_conversation/show.erb +1 -1
  105. data/app/cells/decidim/user_conversation_cell.rb +0 -1
  106. data/app/cells/decidim/user_conversations/show.erb +1 -1
  107. data/app/cells/decidim/user_conversations_cell.rb +0 -1
  108. data/app/cells/decidim/user_group_pending_invitations_list_cell.rb +0 -1
  109. data/app/cells/decidim/user_group_pending_requests_list_cell.rb +0 -1
  110. data/app/cells/decidim/user_timeline/show.erb +1 -1
  111. data/app/cells/decidim/version_cell.rb +3 -5
  112. data/app/cells/decidim/versions_list_cell.rb +1 -3
  113. data/app/cells/decidim/versions_list_item_cell.rb +2 -4
  114. data/app/cells/decidim/wizard_step_form/wizard_aside.erb +2 -2
  115. data/app/cells/decidim/wizard_step_form/wizard_header.erb +2 -3
  116. data/app/cells/decidim/wizard_step_form_cell.rb +0 -8
  117. data/app/commands/decidim/amendable/create_draft.rb +4 -4
  118. data/app/commands/decidim/amendable/promote.rb +3 -2
  119. data/app/commands/decidim/amendable/publish_draft.rb +3 -2
  120. data/app/commands/decidim/amendable/update_draft.rb +4 -3
  121. data/app/commands/decidim/amendable/withdraw.rb +1 -1
  122. data/app/commands/decidim/create_follow.rb +4 -4
  123. data/app/commands/decidim/create_omniauth_registration.rb +4 -10
  124. data/app/commands/decidim/create_report.rb +3 -3
  125. data/app/commands/decidim/create_user_report.rb +5 -5
  126. data/app/commands/decidim/delete_follow.rb +4 -4
  127. data/app/commands/decidim/demote_membership.rb +2 -2
  128. data/app/commands/decidim/destroy_account.rb +21 -22
  129. data/app/commands/decidim/endorse_resource.rb +1 -1
  130. data/app/commands/decidim/invite_user_to_group.rb +5 -4
  131. data/app/commands/decidim/update_account.rb +24 -22
  132. data/app/commands/decidim/update_notifications_settings.rb +13 -11
  133. data/app/commands/decidim/update_password.rb +7 -7
  134. data/app/commands/decidim/update_user_interests.rb +9 -7
  135. data/app/controllers/concerns/decidim/devise_authentication_methods.rb +1 -1
  136. data/app/controllers/concerns/decidim/devise_controllers.rb +2 -1
  137. data/app/controllers/concerns/decidim/filter_resource.rb +1 -1
  138. data/app/controllers/concerns/decidim/needs_rtl_direction.rb +23 -0
  139. data/app/controllers/concerns/decidim/paginable.rb +1 -1
  140. data/app/controllers/concerns/decidim/participatory_space_context.rb +1 -23
  141. data/app/controllers/concerns/decidim/payload_info.rb +2 -1
  142. data/app/controllers/concerns/decidim/registers_permissions.rb +4 -4
  143. data/app/controllers/concerns/decidim/use_organization_time_zone.rb +1 -1
  144. data/app/controllers/concerns/decidim/withdrawable.rb +1 -1
  145. data/app/controllers/decidim/account_controller.rb +2 -2
  146. data/app/controllers/{concerns/decidim → decidim}/amendments_controller.rb +3 -16
  147. data/app/controllers/decidim/application_controller.rb +1 -1
  148. data/app/controllers/decidim/components/base_controller.rb +1 -1
  149. data/app/controllers/decidim/devise/invitations_controller.rb +1 -1
  150. data/app/controllers/decidim/devise/passwords_controller.rb +2 -2
  151. data/app/controllers/decidim/doorkeeper/credentials_controller.rb +1 -1
  152. data/app/controllers/decidim/endorsements_controller.rb +1 -1
  153. data/app/controllers/decidim/favicon_controller.rb +1 -1
  154. data/app/controllers/decidim/follows_controller.rb +2 -2
  155. data/app/controllers/decidim/group_invites_controller.rb +36 -9
  156. data/app/controllers/decidim/links_controller.rb +1 -1
  157. data/app/controllers/decidim/newsletters_opt_in_controller.rb +1 -1
  158. data/app/controllers/decidim/notifications_settings_controller.rb +1 -1
  159. data/app/controllers/decidim/profiles_controller.rb +0 -4
  160. data/app/controllers/decidim/report_users_controller.rb +1 -1
  161. data/app/controllers/decidim/reports_controller.rb +1 -1
  162. data/app/controllers/decidim/user_interests_controller.rb +1 -1
  163. data/app/events/decidim/change_nickname_event.rb +0 -1
  164. data/app/events/decidim/invited_to_group_event.rb +29 -0
  165. data/app/events/decidim/welcome_notification_event.rb +2 -4
  166. data/app/forms/decidim/form.rb +4 -0
  167. data/app/forms/decidim/omniauth_registration_form.rb +1 -1
  168. data/app/forms/decidim/upload_validation_form.rb +2 -2
  169. data/app/helpers/concerns/decidim/flash_helper_extensions.rb +1 -1
  170. data/app/helpers/decidim/amendments_helper.rb +4 -14
  171. data/app/helpers/decidim/application_helper.rb +8 -0
  172. data/app/helpers/decidim/authorization_form_helper.rb +2 -2
  173. data/app/helpers/decidim/breadcrumb_helper.rb +1 -1
  174. data/app/helpers/decidim/cells_helper.rb +1 -1
  175. data/app/helpers/decidim/check_boxes_tree_helper.rb +1 -1
  176. data/app/helpers/decidim/cta_button_helper.rb +1 -1
  177. data/app/helpers/decidim/datalist_select_helper.rb +1 -1
  178. data/app/helpers/decidim/decidim_form_helper.rb +3 -3
  179. data/app/helpers/decidim/filters_helper.rb +1 -1
  180. data/app/helpers/decidim/layout_helper.rb +1 -64
  181. data/app/helpers/decidim/localized_locales_helper.rb +1 -1
  182. data/app/helpers/decidim/map_helper.rb +1 -6
  183. data/app/helpers/decidim/menu_helper.rb +9 -1
  184. data/app/helpers/decidim/meta_tags_helper.rb +26 -23
  185. data/app/helpers/decidim/modal_helper.rb +1 -1
  186. data/app/helpers/decidim/orders_helper.rb +1 -1
  187. data/app/helpers/decidim/organization_helper.rb +55 -0
  188. data/app/helpers/decidim/paginate_helper.rb +5 -3
  189. data/app/helpers/decidim/resource_helper.rb +0 -7
  190. data/app/helpers/decidim/sanitize_helper.rb +2 -11
  191. data/app/helpers/decidim/scopes_helper.rb +3 -4
  192. data/app/helpers/decidim/searches_helper.rb +1 -1
  193. data/app/helpers/decidim/short_link_helper.rb +2 -2
  194. data/app/helpers/decidim/translations_helper.rb +2 -2
  195. data/app/helpers/decidim/twitter_search_helper.rb +1 -1
  196. data/app/helpers/decidim/user_profile_helper.rb +0 -1
  197. data/app/jobs/decidim/email_notifications_digest_generator_job.rb +2 -2
  198. data/app/mailers/decidim/application_mailer.rb +6 -2
  199. data/app/mailers/decidim/block_user_mailer.rb +1 -1
  200. data/app/mailers/decidim/decidim_devise_mailer.rb +7 -1
  201. data/app/mailers/decidim/newsletter_mailer.rb +1 -4
  202. data/app/mailers/decidim/newsletters_opt_in_mailer.rb +2 -2
  203. data/app/mailers/decidim/notification_mailer.rb +0 -1
  204. data/app/mailers/decidim/notifications_digest_mailer.rb +0 -1
  205. data/app/mailers/decidim/reported_mailer.rb +6 -3
  206. data/app/mailers/decidim/user_report_mailer.rb +1 -1
  207. data/app/models/decidim/action_log.rb +2 -12
  208. data/app/models/decidim/area_type.rb +1 -1
  209. data/app/models/decidim/attachment.rb +28 -4
  210. data/app/models/decidim/authorization.rb +1 -1
  211. data/app/models/decidim/authorization_transfer.rb +1 -0
  212. data/app/models/decidim/component.rb +3 -6
  213. data/app/models/decidim/content_block.rb +3 -3
  214. data/app/models/decidim/messaging/message.rb +2 -2
  215. data/app/models/decidim/newsletter.rb +9 -9
  216. data/app/models/decidim/notification.rb +2 -2
  217. data/app/models/decidim/organization.rb +23 -2
  218. data/app/models/decidim/push_notification_message.rb +1 -1
  219. data/app/models/decidim/resource_link.rb +1 -1
  220. data/app/models/decidim/user.rb +14 -14
  221. data/app/models/decidim/user_group.rb +2 -2
  222. data/app/packs/src/decidim/a11y.js +61 -11
  223. data/app/packs/src/decidim/append_redirect_url_to_modals.js +14 -24
  224. data/app/packs/src/decidim/attachments/file_or_link_tabs.js +55 -0
  225. data/app/packs/src/decidim/attachments/index.js +1 -0
  226. data/app/packs/src/decidim/back_to_list.js +1 -1
  227. data/app/packs/src/decidim/check_boxes_tree.js +1 -1
  228. data/app/packs/src/decidim/data_consent/consent_manager.js +1 -1
  229. data/app/packs/src/decidim/data_consent/consent_manager.test.js +6 -6
  230. data/app/packs/src/decidim/data_consent/index.js +1 -1
  231. data/app/packs/src/decidim/datepicker/datepicker_functions.js +243 -0
  232. data/app/packs/src/decidim/datepicker/datepicker_listeners.js +78 -0
  233. data/app/packs/src/decidim/datepicker/form_datepicker.js +91 -0
  234. data/app/packs/src/decidim/datepicker/generate_datepicker.js +148 -0
  235. data/app/packs/src/decidim/datepicker/generate_timepicker.js +298 -0
  236. data/app/packs/src/decidim/datepicker/test/date.test.js +118 -0
  237. data/app/packs/src/decidim/datepicker/test/time.test.js +227 -0
  238. data/app/packs/src/decidim/direct_uploads/upload_field.js +8 -21
  239. data/app/packs/src/decidim/direct_uploads/upload_modal.js +0 -3
  240. data/app/packs/src/decidim/editor/extensions/indent/index.js +1 -1
  241. data/app/packs/src/decidim/editor/extensions/video_embed/index.js +4 -4
  242. data/app/packs/src/decidim/editor/test/extensions/decidim_kit.test.js +0 -15
  243. data/app/packs/src/decidim/editor/test/extensions/indent.test.js +1 -1
  244. data/app/packs/src/decidim/editor/test/fixtures/upload_templates.js +1 -1
  245. data/app/packs/src/decidim/editor/test/helpers.js +1 -14
  246. data/app/packs/src/decidim/editor/utilities/paste_transform.js +2 -2
  247. data/app/packs/src/decidim/external_domain_warning.js +2 -2
  248. data/app/packs/src/decidim/external_domain_warning.test.js +4 -4
  249. data/app/packs/src/decidim/form_filter.js +4 -4
  250. data/app/packs/src/decidim/impersonation.js +1 -1
  251. data/app/packs/src/decidim/index.js +11 -8
  252. data/app/packs/src/decidim/input_character_counter.js +2 -2
  253. data/app/packs/src/decidim/input_emoji.js +171 -72
  254. data/app/packs/src/decidim/input_hashtags.js +1 -1
  255. data/app/packs/src/decidim/input_mentions.js +1 -1
  256. data/app/packs/src/decidim/notifications_actions.js +40 -0
  257. data/app/packs/src/decidim/sticky_header.js +87 -0
  258. data/app/packs/src/decidim/sw/sw.js +8 -6
  259. data/app/packs/src/decidim/toggle.js +1 -1
  260. data/app/packs/src/decidim/tooltips.js +23 -43
  261. data/app/packs/stylesheets/decidim/_buttons.scss +1 -1
  262. data/app/packs/stylesheets/decidim/_datepicker.scss +193 -0
  263. data/app/packs/stylesheets/decidim/_dropdown.scss +45 -9
  264. data/app/packs/stylesheets/decidim/_emoji.scss +36 -0
  265. data/app/packs/stylesheets/decidim/_filters.scss +4 -2
  266. data/app/packs/stylesheets/decidim/_flash.scss +2 -2
  267. data/app/packs/stylesheets/decidim/_footer.scss +1 -3
  268. data/app/packs/stylesheets/decidim/_forms.scss +13 -5
  269. data/app/packs/stylesheets/decidim/_header.scss +70 -50
  270. data/app/packs/stylesheets/decidim/_home.scss +1 -1
  271. data/app/packs/stylesheets/decidim/_layout.scss +13 -0
  272. data/app/packs/stylesheets/decidim/_modal.scss +1 -1
  273. data/app/packs/stylesheets/decidim/_modal_update.scss +1 -5
  274. data/app/packs/stylesheets/decidim/_notifications.scss +4 -0
  275. data/app/packs/stylesheets/decidim/_profile.scss +1 -1
  276. data/app/packs/stylesheets/decidim/_progress-bar.scss +1 -1
  277. data/app/packs/stylesheets/decidim/_tabs_x.scss +5 -1
  278. data/app/packs/stylesheets/decidim/_tooltip.scss +10 -10
  279. data/app/packs/stylesheets/decidim/application.scss +4 -0
  280. data/app/packs/stylesheets/decidim/editor.scss +1 -1
  281. data/app/packs/stylesheets/decidim/legacy/conference-diploma.scss +1 -2
  282. data/app/packs/stylesheets/decidim/legacy/leaflet.scss +1 -1
  283. data/app/packs/stylesheets/decidim/vendor/_datepicker_light.scss +228 -0
  284. data/app/permissions/decidim/default_permissions.rb +2 -2
  285. data/app/presenters/decidim/admin_log/organization_presenter.rb +1 -1
  286. data/app/presenters/decidim/admin_log/static_page_presenter.rb +1 -1
  287. data/app/presenters/decidim/attachment_presenter.rb +1 -1
  288. data/app/presenters/decidim/authorization_transfer_presenter.rb +1 -1
  289. data/app/presenters/decidim/component_attachment_collection_presenter.rb +81 -0
  290. data/app/presenters/decidim/footer_menu_presenter.rb +1 -1
  291. data/app/presenters/decidim/home_stats_presenter.rb +1 -1
  292. data/app/presenters/decidim/menu_item_presenter.rb +1 -1
  293. data/app/presenters/decidim/organization_presenter.rb +1 -1
  294. data/app/queries/decidim/last_activity.rb +5 -16
  295. data/app/queries/decidim/metric_measure.rb +1 -1
  296. data/app/queries/decidim/public_activities.rb +1 -1
  297. data/app/queries/decidim/user_groups/admin_memberships.rb +1 -1
  298. data/app/queries/decidim/user_groups/member_memberships.rb +1 -1
  299. data/app/services/decidim/action_logger.rb +3 -3
  300. data/app/services/decidim/base_diff_renderer.rb +2 -26
  301. data/app/services/decidim/download_your_data_exporter.rb +25 -36
  302. data/app/services/decidim/email_notification_generator.rb +5 -14
  303. data/app/services/decidim/log/diff_changeset_calculator.rb +2 -2
  304. data/app/services/decidim/notifications_digest_sending_decider.rb +1 -1
  305. data/app/services/decidim/open_data_exporter.rb +7 -8
  306. data/app/services/decidim/zip_stream/writer.rb +39 -0
  307. data/app/uploaders/decidim/organization_favicon_uploader.rb +1 -1
  308. data/app/uploaders/decidim/record_image_uploader.rb +2 -2
  309. data/app/validators/organization_present_validator.rb +1 -1
  310. data/app/validators/passthru_validator.rb +1 -1
  311. data/app/validators/uploader_image_dimensions_validator.rb +2 -2
  312. data/app/views/decidim/account/show.html.erb +1 -1
  313. data/app/views/decidim/amendments/_wizard_header.html.erb +1 -2
  314. data/app/views/decidim/application/_collection.html.erb +3 -1
  315. data/app/views/decidim/application/_component_documents.html.erb +4 -0
  316. data/app/views/decidim/application/_document.html.erb +23 -9
  317. data/app/views/decidim/block_user_mailer/notify.html.erb +2 -2
  318. data/app/views/decidim/devise/invitations/edit.html.erb +2 -2
  319. data/app/views/decidim/devise/omniauth_registrations/new.html.erb +2 -2
  320. data/app/views/decidim/devise/registrations/new.html.erb +1 -1
  321. data/app/views/decidim/devise/shared/_login_boxes.html.erb +1 -1
  322. data/app/views/decidim/doorkeeper/authorizations/new.html.erb +1 -1
  323. data/app/views/decidim/endorsements/_identity.html.erb +1 -1
  324. data/app/views/decidim/gamification/badges/index.html.erb +1 -1
  325. data/app/views/decidim/manifests/show.json.erb +4 -4
  326. data/app/views/decidim/messaging/conversations/_add_conversation_users.html.erb +2 -2
  327. data/app/views/decidim/messaging/conversations/_error_modal.html.erb +5 -5
  328. data/app/views/decidim/newsletter_mailer/newsletter.html.erb +1 -1
  329. data/app/views/decidim/newsletters/show.html.erb +1 -1
  330. data/app/views/decidim/newsletters_opt_in_mailer/notify.html.erb +2 -2
  331. data/app/views/decidim/offline/show.html.erb +1 -1
  332. data/app/views/decidim/pages/_tabbed.html.erb +5 -5
  333. data/app/views/decidim/pages/index.html.erb +1 -2
  334. data/app/views/decidim/reported_mailer/report.html.erb +4 -2
  335. data/app/views/decidim/scopes/picker.html.erb +5 -5
  336. data/app/views/decidim/searches/_resources_filter_block.html.erb +6 -6
  337. data/app/views/decidim/shared/_extended_navigation_bar.html.erb +8 -8
  338. data/app/views/decidim/shared/_filters.html.erb +5 -5
  339. data/app/views/decidim/shared/_login_modal.html.erb +1 -1
  340. data/app/views/decidim/shared/_orders.html.erb +2 -3
  341. data/app/views/decidim/shared/filters/_check_boxes_tree.html.erb +1 -1
  342. data/app/views/decidim/shared/filters/_collection.html.erb +1 -1
  343. data/app/views/decidim/user_interests/_areas.html.erb +2 -2
  344. data/app/views/decidim/user_report_mailer/notify.html.erb +2 -2
  345. data/app/views/decidim/user_update_mailer/notify.html.erb +1 -1
  346. data/app/views/decidim/widgets/_data_picker.html.erb +1 -1
  347. data/app/views/devise/mailer/invitation_instructions.html.erb +1 -1
  348. data/app/views/devise/mailer/invitation_instructions.text.erb +1 -1
  349. data/app/views/devise/mailer/invite_admin.html.erb +2 -2
  350. data/app/views/devise/mailer/invite_admin.text.erb +2 -2
  351. data/app/views/devise/mailer/invite_collaborator.html.erb +2 -2
  352. data/app/views/devise/mailer/invite_collaborator.text.erb +2 -2
  353. data/app/views/devise/mailer/invite_private_user.html.erb +2 -2
  354. data/app/views/devise/mailer/invite_private_user.text.erb +2 -2
  355. data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +1 -1
  356. data/app/views/devise/mailer/organization_admin_invitation_instructions.text.erb +1 -1
  357. data/app/views/layouts/decidim/_application.html.erb +3 -6
  358. data/app/views/layouts/decidim/_data_consent_warning.html.erb +2 -2
  359. data/app/views/layouts/decidim/_decidim_javascript.html.erb +1 -1
  360. data/app/views/layouts/decidim/_head.html.erb +1 -1
  361. data/app/views/layouts/decidim/_head_extra.html.erb +2 -2
  362. data/app/views/layouts/decidim/_impersonation_warning.html.erb +1 -1
  363. data/app/views/layouts/decidim/_js_configuration.html.erb +7 -2
  364. data/app/views/layouts/decidim/_logo.html.erb +2 -2
  365. data/app/views/layouts/decidim/_logo_mobile.html.erb +11 -0
  366. data/app/views/layouts/decidim/_mailer_logo.html.erb +2 -2
  367. data/app/views/layouts/decidim/_meta_tags_config.html.erb +1 -1
  368. data/app/views/layouts/decidim/_wrapper.html.erb +16 -9
  369. data/app/views/layouts/decidim/footer/_main.html.erb +2 -3
  370. data/app/views/layouts/decidim/footer/_main_intro.html.erb +2 -2
  371. data/app/views/layouts/decidim/footer/_main_legal.html.erb +2 -3
  372. data/app/views/layouts/decidim/footer/_main_links.html.erb +13 -11
  373. data/app/views/layouts/decidim/footer/_main_social_media_links.html.erb +8 -8
  374. data/app/views/layouts/decidim/header/_main.html.erb +9 -22
  375. data/app/views/layouts/decidim/header/_main_links_desktop.html.erb +4 -5
  376. data/app/views/layouts/decidim/header/_main_links_mobile_account.html.erb +11 -4
  377. data/app/views/layouts/decidim/header/_main_links_mobile_item_account.html.erb +24 -0
  378. data/app/views/layouts/decidim/header/_main_links_mobile_search.html.erb +0 -21
  379. data/app/views/layouts/decidim/header/_main_menu_mobile.html.erb +12 -0
  380. data/app/views/layouts/decidim/header/_menu_breadcrumb_desktop.html.erb +1 -1
  381. data/app/views/layouts/decidim/header/_menu_breadcrumb_main_dropdown_mobile.html.erb +17 -0
  382. data/app/views/layouts/decidim/header/_menu_breadcrumb_main_dropdown_top_left.html.erb +1 -1
  383. data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +1 -1
  384. data/app/views/layouts/decidim/header/_menu_form_search_mobile.html.erb +16 -0
  385. data/app/views/layouts/decidim/header/_mobile_language_choose.html.erb +25 -0
  386. data/app/views/layouts/decidim/mailer.html.erb +2 -2
  387. data/app/views/layouts/decidim/shared/_layout_center.html.erb +1 -1
  388. data/app/views/layouts/decidim/shared/_layout_item.html.erb +0 -14
  389. data/app/views/layouts/decidim/shared/_layout_user_profile.html.erb +2 -2
  390. data/config/initializers/active_storage.rb +3 -0
  391. data/config/initializers/devise.rb +1 -1
  392. data/config/initializers/new_framework_defaults_7_0.rb +145 -0
  393. data/config/locales/ar.yml +3 -54
  394. data/config/locales/bg.yml +56 -57
  395. data/config/locales/ca.yml +78 -71
  396. data/config/locales/cs.yml +54 -63
  397. data/config/locales/de.yml +77 -70
  398. data/config/locales/el.yml +1 -32
  399. data/config/locales/en.yml +69 -62
  400. data/config/locales/es-MX.yml +69 -62
  401. data/config/locales/es-PY.yml +69 -62
  402. data/config/locales/es.yml +74 -67
  403. data/config/locales/eu.yml +251 -257
  404. data/config/locales/fi-plain.yml +70 -63
  405. data/config/locales/fi.yml +128 -121
  406. data/config/locales/fr-CA.yml +62 -61
  407. data/config/locales/fr.yml +56 -55
  408. data/config/locales/ga-IE.yml +0 -16
  409. data/config/locales/gl.yml +1 -22
  410. data/config/locales/hu.yml +38 -57
  411. data/config/locales/id-ID.yml +0 -18
  412. data/config/locales/is-IS.yml +1 -17
  413. data/config/locales/it.yml +0 -65
  414. data/config/locales/ja.yml +83 -74
  415. data/config/locales/lb.yml +0 -30
  416. data/config/locales/lt.yml +2 -49
  417. data/config/locales/lv.yml +0 -25
  418. data/config/locales/nl.yml +1 -30
  419. data/config/locales/no.yml +0 -30
  420. data/config/locales/pl.yml +69 -57
  421. data/config/locales/pt-BR.yml +5 -250
  422. data/config/locales/pt.yml +0 -36
  423. data/config/locales/ro-RO.yml +180 -329
  424. data/config/locales/ru.yml +0 -19
  425. data/config/locales/sk.yml +1 -26
  426. data/config/locales/sl.yml +0 -8
  427. data/config/locales/sv.yml +164 -605
  428. data/config/locales/tr-TR.yml +5 -33
  429. data/config/locales/uk.yml +1 -14
  430. data/config/locales/zh-CN.yml +0 -27
  431. data/config/locales/zh-TW.yml +1 -51
  432. data/config/routes.rb +0 -2
  433. data/db/migrate/20170128112958_change_user_groups_verified_to_timestamp.rb +1 -1
  434. data/db/migrate/20181025082245_add_timestamps_to_components.rb +1 -5
  435. data/db/migrate/20240110150230_rename_external_domain_whitelist_to_external_domain_allowlist.rb +7 -0
  436. data/db/migrate/20240326104215_remove_show_in_footer_in_static_pages.rb +7 -0
  437. data/db/migrate/20240401192628_change_name_on_decidim_organizations.rb +31 -0
  438. data/db/seeds/avatars/001.jpg +0 -0
  439. data/db/seeds/avatars/002.jpg +0 -0
  440. data/db/seeds/avatars/003.jpg +0 -0
  441. data/db/seeds/avatars/004.jpg +0 -0
  442. data/db/seeds/avatars/005.jpg +0 -0
  443. data/db/seeds/avatars/006.jpg +0 -0
  444. data/db/seeds/avatars/007.jpg +0 -0
  445. data/db/seeds/avatars/008.jpg +0 -0
  446. data/db/seeds/avatars/009.jpg +0 -0
  447. data/db/seeds/avatars/010.jpg +0 -0
  448. data/db/seeds/avatars/011.jpg +0 -0
  449. data/db/seeds/avatars/012.jpg +0 -0
  450. data/db/seeds/avatars/013.jpg +0 -0
  451. data/db/seeds/avatars/014.jpg +0 -0
  452. data/db/seeds/avatars/015.jpg +0 -0
  453. data/db/seeds/avatars/016.jpg +0 -0
  454. data/db/seeds/avatars/017.jpg +0 -0
  455. data/db/seeds/avatars/018.jpg +0 -0
  456. data/db/seeds/avatars/019.jpg +0 -0
  457. data/db/seeds/avatars/020.jpg +0 -0
  458. data/db/seeds/avatars/021.jpg +0 -0
  459. data/db/seeds/avatars/022.jpg +0 -0
  460. data/db/seeds/avatars/023.jpg +0 -0
  461. data/db/seeds/avatars/024.jpg +0 -0
  462. data/db/seeds/avatars/025.jpg +0 -0
  463. data/db/seeds/avatars/026.jpg +0 -0
  464. data/db/seeds/avatars/027.jpg +0 -0
  465. data/db/seeds/avatars/028.jpg +0 -0
  466. data/db/seeds/avatars/029.jpg +0 -0
  467. data/db/seeds/avatars/030.jpg +0 -0
  468. data/db/seeds/avatars/031.jpg +0 -0
  469. data/db/seeds/avatars/032.jpg +0 -0
  470. data/db/seeds/avatars/033.jpg +0 -0
  471. data/db/seeds/avatars/034.jpg +0 -0
  472. data/db/seeds/avatars/035.jpg +0 -0
  473. data/db/seeds/avatars/036.jpg +0 -0
  474. data/db/seeds/avatars/037.jpg +0 -0
  475. data/db/seeds/avatars/038.jpg +0 -0
  476. data/db/seeds/avatars/039.jpg +0 -0
  477. data/db/seeds/avatars/040.jpg +0 -0
  478. data/db/seeds/avatars/041.jpg +0 -0
  479. data/db/seeds/avatars/042.jpg +0 -0
  480. data/db/seeds/avatars/043.jpg +0 -0
  481. data/db/seeds/avatars/044.jpg +0 -0
  482. data/db/seeds/avatars/045.jpg +0 -0
  483. data/db/seeds/avatars/046.jpg +0 -0
  484. data/db/seeds/avatars/047.jpg +0 -0
  485. data/db/seeds/avatars/048.jpg +0 -0
  486. data/db/seeds/avatars/049.jpg +0 -0
  487. data/db/seeds/avatars/050.jpg +0 -0
  488. data/db/seeds/avatars/051.jpg +0 -0
  489. data/db/seeds/avatars/052.jpg +0 -0
  490. data/db/seeds/avatars/053.jpg +0 -0
  491. data/db/seeds/avatars/054.jpg +0 -0
  492. data/db/seeds/avatars/055.jpg +0 -0
  493. data/db/seeds/avatars/056.jpg +0 -0
  494. data/db/seeds/avatars/057.jpg +0 -0
  495. data/db/seeds/avatars/058.jpg +0 -0
  496. data/db/seeds/avatars/059.jpg +0 -0
  497. data/db/seeds/avatars/060.jpg +0 -0
  498. data/db/seeds/avatars/061.jpg +0 -0
  499. data/db/seeds/avatars/062.jpg +0 -0
  500. data/db/seeds/avatars/063.jpg +0 -0
  501. data/db/seeds/avatars/064.jpg +0 -0
  502. data/db/seeds/avatars/065.jpg +0 -0
  503. data/db/seeds/avatars/066.jpg +0 -0
  504. data/db/seeds/avatars/067.jpg +0 -0
  505. data/db/seeds/avatars/068.jpg +0 -0
  506. data/db/seeds/avatars/069.jpg +0 -0
  507. data/db/seeds/avatars/070.jpg +0 -0
  508. data/db/seeds/avatars/071.jpg +0 -0
  509. data/db/seeds/avatars/072.jpg +0 -0
  510. data/db/seeds/avatars/073.jpg +0 -0
  511. data/db/seeds/avatars/074.jpg +0 -0
  512. data/db/seeds/avatars/075.jpg +0 -0
  513. data/db/seeds/avatars/076.jpg +0 -0
  514. data/db/seeds/avatars/077.jpg +0 -0
  515. data/db/seeds/avatars/078.jpg +0 -0
  516. data/db/seeds/avatars/079.jpg +0 -0
  517. data/db/seeds/avatars/080.jpg +0 -0
  518. data/db/seeds/avatars/081.jpg +0 -0
  519. data/db/seeds/avatars/082.jpg +0 -0
  520. data/db/seeds/avatars/083.jpg +0 -0
  521. data/db/seeds/avatars/084.jpg +0 -0
  522. data/db/seeds/avatars/085.jpg +0 -0
  523. data/db/seeds/avatars/086.jpg +0 -0
  524. data/db/seeds/avatars/087.jpg +0 -0
  525. data/db/seeds/avatars/088.jpg +0 -0
  526. data/db/seeds/avatars/089.jpg +0 -0
  527. data/db/seeds/avatars/090.jpg +0 -0
  528. data/db/seeds/avatars/091.jpg +0 -0
  529. data/db/seeds/avatars/092.jpg +0 -0
  530. data/db/seeds/avatars/093.jpg +0 -0
  531. data/db/seeds/avatars/094.jpg +0 -0
  532. data/db/seeds/avatars/095.jpg +0 -0
  533. data/db/seeds/avatars/096.jpg +0 -0
  534. data/db/seeds/avatars/097.jpg +0 -0
  535. data/db/seeds/avatars/098.jpg +0 -0
  536. data/db/seeds/avatars/099.jpg +0 -0
  537. data/db/seeds/avatars/100.jpg +0 -0
  538. data/db/seeds/avatars/CREDITS.md +114 -0
  539. data/db/seeds/avatars/README.md +25 -0
  540. data/decidim-core.gemspec +8 -9
  541. data/lib/decidim/acts_as_author.rb +1 -1
  542. data/lib/decidim/admin_filter.rb +44 -0
  543. data/lib/decidim/admin_filters_registry.rb +55 -0
  544. data/lib/decidim/amendable.rb +1 -2
  545. data/lib/decidim/api/functions/component_finder_base.rb +1 -1
  546. data/lib/decidim/api/functions/component_list.rb +1 -1
  547. data/lib/decidim/api/functions/needs_api_filter_and_order.rb +3 -3
  548. data/lib/decidim/api/functions/participatory_space_finder_base.rb +2 -12
  549. data/lib/decidim/api/functions/participatory_space_list_base.rb +1 -1
  550. data/lib/decidim/api/input_filters/user_entity_input_filter.rb +3 -3
  551. data/lib/decidim/api/interfaces/author_interface.rb +1 -1
  552. data/lib/decidim/api/interfaces/participatory_space_interface.rb +1 -1
  553. data/lib/decidim/api/types/component_type.rb +0 -7
  554. data/lib/decidim/api/types/organization_type.rb +1 -1
  555. data/lib/decidim/api/types/user_group_type.rb +1 -5
  556. data/lib/decidim/api/types/user_type.rb +1 -5
  557. data/lib/decidim/asset_router/pipeline.rb +2 -2
  558. data/lib/decidim/asset_router/storage.rb +11 -214
  559. data/lib/decidim/assets/tailwind/instance.rb +1 -1
  560. data/lib/decidim/assets/tailwind/tailwind.config.js.erb +8 -3
  561. data/lib/decidim/attribute_object/model.rb +2 -2
  562. data/lib/decidim/attribute_object/type_resolver.rb +1 -3
  563. data/lib/decidim/attribute_object.rb +2 -2
  564. data/lib/decidim/attributes/time_with_zone.rb +1 -11
  565. data/lib/decidim/attributes.rb +0 -6
  566. data/lib/decidim/authorable.rb +5 -0
  567. data/lib/decidim/command.rb +2 -2
  568. data/lib/decidim/commands/create_resource.rb +63 -0
  569. data/lib/decidim/commands/destroy_resource.rb +74 -0
  570. data/lib/decidim/commands/hook_error.rb +8 -0
  571. data/lib/decidim/commands/resource_handler.rb +85 -0
  572. data/lib/decidim/commands/update_resource.rb +64 -0
  573. data/lib/decidim/component_manifest.rb +3 -1
  574. data/lib/decidim/component_validator.rb +1 -1
  575. data/lib/decidim/content_blocks/has_related_components.rb +1 -1
  576. data/lib/decidim/content_parsers/resource_parser.rb +2 -2
  577. data/lib/decidim/content_parsers.rb +0 -1
  578. data/lib/decidim/content_processor.rb +1 -1
  579. data/lib/decidim/content_renderers.rb +0 -1
  580. data/lib/decidim/content_security_policy.rb +1 -1
  581. data/lib/decidim/core/engine.rb +13 -58
  582. data/lib/decidim/core/menu.rb +13 -3
  583. data/lib/decidim/core/seeds.rb +120 -147
  584. data/lib/decidim/core/test/factories.rb +24 -31
  585. data/lib/decidim/core/test/shared_examples/acts_as_author_examples.rb +1 -1
  586. data/lib/decidim/core/test/shared_examples/amendable/withdraw_amendment_examples.rb +2 -2
  587. data/lib/decidim/core/test/shared_examples/announcements_examples.rb +3 -3
  588. data/lib/decidim/core/test/shared_examples/assembly_announcements_examples.rb +4 -4
  589. data/lib/decidim/core/test/shared_examples/attachable_interface_examples.rb +1 -1
  590. data/lib/decidim/core/test/shared_examples/authorable_interface_examples.rb +1 -1
  591. data/lib/decidim/core/test/shared_examples/comments_examples.rb +90 -107
  592. data/lib/decidim/core/test/shared_examples/comments_reports_examples.rb +4 -4
  593. data/lib/decidim/core/test/shared_examples/digest_mail_examples.rb +1 -1
  594. data/lib/decidim/core/test/shared_examples/edit_link_shared_examples.rb +1 -1
  595. data/lib/decidim/core/test/shared_examples/editor_shared_examples.rb +7 -7
  596. data/lib/decidim/core/test/shared_examples/fingerprint_examples.rb +1 -1
  597. data/lib/decidim/core/test/shared_examples/follows_examples.rb +6 -11
  598. data/lib/decidim/core/test/shared_examples/has_attachment_collections.rb +4 -2
  599. data/lib/decidim/core/test/shared_examples/has_attachments.rb +3 -2
  600. data/lib/decidim/core/test/shared_examples/has_contextual_help.rb +4 -4
  601. data/lib/decidim/core/test/shared_examples/has_reference.rb +1 -1
  602. data/lib/decidim/core/test/shared_examples/logo_email.rb +1 -1
  603. data/lib/decidim/core/test/shared_examples/manage_component_share_tokens.rb +9 -9
  604. data/lib/decidim/core/test/shared_examples/map_examples.rb +5 -5
  605. data/lib/decidim/core/test/shared_examples/paginated_resource_examples.rb +7 -7
  606. data/lib/decidim/core/test/shared_examples/participatory_space_dropdown_metadata_cell_examples.rb +3 -3
  607. data/lib/decidim/core/test/shared_examples/preview_component_with_share_token_examples.rb +3 -3
  608. data/lib/decidim/core/test/shared_examples/process_announcements_examples.rb +4 -4
  609. data/lib/decidim/core/test/shared_examples/reports_examples.rb +5 -5
  610. data/lib/decidim/core/test/shared_examples/rich_text_editor_examples.rb +10 -10
  611. data/lib/decidim/core/test/shared_examples/searchable_participatory_space_examples.rb +1 -1
  612. data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +8 -8
  613. data/lib/decidim/core/test/shared_examples/share_link_examples.rb +2 -2
  614. data/lib/decidim/core/test/shared_examples/simple_event.rb +1 -1
  615. data/lib/decidim/core/test/shared_examples/space_cell_changes_button_text_cta.rb +3 -3
  616. data/lib/decidim/core/test/shared_examples/system_endorse_resource_examples.rb +15 -113
  617. data/lib/decidim/core/test/shared_examples/translated_event_examples.rb +2 -2
  618. data/lib/decidim/core/test/shared_examples/uncommentable_component_examples.rb +2 -2
  619. data/lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb +1 -1
  620. data/lib/decidim/core/version.rb +1 -1
  621. data/lib/decidim/core.rb +24 -17
  622. data/lib/decidim/dependency_resolver.rb +3 -3
  623. data/lib/decidim/diffy_extension.rb +1 -19
  624. data/lib/decidim/download_your_data_serializers/download_your_data_user_serializer.rb +2 -1
  625. data/lib/decidim/engine_router.rb +2 -2
  626. data/lib/decidim/events/base_event.rb +19 -0
  627. data/lib/decidim/events/simple_event.rb +1 -0
  628. data/lib/decidim/exporters/export_manifest.rb +1 -1
  629. data/lib/decidim/faker/localized.rb +3 -3
  630. data/lib/decidim/form_builder.rb +5 -5
  631. data/lib/decidim/hashtag.rb +1 -1
  632. data/lib/decidim/jsonb_attributes.rb +4 -4
  633. data/lib/decidim/manifest_messages.rb +2 -2
  634. data/lib/decidim/map/autocomplete.rb +0 -1
  635. data/lib/decidim/organization_settings.rb +5 -8
  636. data/lib/decidim/paddable.rb +1 -1
  637. data/lib/decidim/participable.rb +1 -1
  638. data/lib/decidim/participatory_space_manifest.rb +1 -1
  639. data/lib/decidim/participatory_space_user.rb +0 -4
  640. data/lib/decidim/query_extensions.rb +26 -0
  641. data/lib/decidim/resourceable.rb +1 -1
  642. data/lib/decidim/search_resource_fields_mapper.rb +2 -2
  643. data/lib/decidim/searchable.rb +3 -3
  644. data/lib/decidim/seeds.rb +62 -0
  645. data/lib/decidim/settings_manifest.rb +0 -2
  646. data/lib/decidim/stats_registry.rb +2 -2
  647. data/lib/decidim/translatable_attributes.rb +4 -9
  648. data/lib/decidim/translatable_resource.rb +1 -1
  649. data/lib/decidim/view_hooks.rb +1 -1
  650. data/lib/decidim/view_model.rb +5 -1
  651. data/lib/decidim/webpacker/esbuild.config.js +14 -0
  652. data/lib/decidim/webpacker/shakapacker.yml +2 -2
  653. data/lib/decidim/webpacker/tsconfig.json +11 -0
  654. data/lib/decidim/webpacker/webpack/custom.js +13 -35
  655. data/lib/devise/models/decidim_newsletterable.rb +1 -1
  656. data/lib/tasks/decidim_download_your_data_tasks.rake +2 -2
  657. data/lib/tasks/decidim_locales_tasks.rake +1 -1
  658. data/lib/tasks/decidim_mailers_tasks.rake +2 -2
  659. data/lib/tasks/decidim_metrics_tasks.rake +6 -6
  660. data/lib/tasks/decidim_procfile.rake +9 -3
  661. data/lib/tasks/decidim_tasks.rake +5 -4
  662. data/lib/tasks/decidim_webpacker_tasks.rake +126 -117
  663. data/lib/tasks/upgrade/decidim_active_storage_migration_tasks.rake +80 -0
  664. data/lib/tasks/upgrade/decidim_content_blocks_tasks.rake +50 -0
  665. data/lib/tasks/upgrade/decidim_deduplicate_endorsements.rake +1 -1
  666. data/lib/tasks/upgrade/decidim_fix_categorization.rake +6 -132
  667. data/lib/tasks/upgrade/decidim_fix_nickname_uniqueness.rake +1 -1
  668. data/lib/tasks/upgrade/decidim_fix_short_url_resolver.rake +1 -1
  669. data/lib/tasks/upgrade/decidim_moderation_tasks.rake +1 -1
  670. data/lib/tasks/upgrade/decidim_user_moderation.rake +1 -1
  671. metadata +219 -101
  672. data/app/cells/decidim/content_blocks/cta/show.erb +0 -12
  673. data/app/cells/decidim/content_blocks/cta_cell.rb +0 -31
  674. data/app/cells/decidim/footer_pages/pages.erb +0 -3
  675. data/app/cells/decidim/footer_pages/topics.erb +0 -12
  676. data/app/cells/decidim/footer_pages_cell.rb +0 -68
  677. data/app/controllers/concerns/decidim/direct_upload.rb +0 -82
  678. data/app/helpers/concerns/decidim/user_role_checker.rb +0 -46
  679. data/app/packs/src/decidim/remote_tooltips.js +0 -38
  680. data/app/packs/src/decidim/vendor/modernizr.js +0 -5
  681. data/app/queries/decidim/similar_emendations.rb +0 -56
  682. data/app/uploaders/decidim/cw/application_uploader.rb +0 -77
  683. data/app/uploaders/decidim/cw/attachment_uploader.rb +0 -56
  684. data/app/uploaders/decidim/cw/avatar_uploader.rb +0 -24
  685. data/app/uploaders/decidim/cw/banner_image_uploader.rb +0 -7
  686. data/app/uploaders/decidim/cw/download_your_data_uploader.rb +0 -15
  687. data/app/uploaders/decidim/cw/downloader.rb +0 -9
  688. data/app/uploaders/decidim/cw/hero_image_uploader.rb +0 -10
  689. data/app/uploaders/decidim/cw/homepage_image_uploader.rb +0 -14
  690. data/app/uploaders/decidim/cw/image_uploader.rb +0 -78
  691. data/app/uploaders/decidim/cw/newsletter_template_image_uploader.rb +0 -38
  692. data/app/uploaders/decidim/cw/oauth_application_logo_uploader.rb +0 -10
  693. data/app/uploaders/decidim/cw/official_image_footer_uploader.rb +0 -10
  694. data/app/uploaders/decidim/cw/official_image_header_uploader.rb +0 -10
  695. data/app/uploaders/decidim/cw/open_data_uploader.rb +0 -23
  696. data/app/uploaders/decidim/cw/organization_favicon_uploader.rb +0 -18
  697. data/app/uploaders/decidim/cw/organization_logo_uploader.rb +0 -10
  698. data/app/uploaders/decidim/cw/record_image_uploader.rb +0 -15
  699. data/app/uploaders/decidim/downloader.rb +0 -9
  700. data/app/views/decidim/amendments/compare_draft.html.erb +0 -18
  701. data/app/views/layouts/decidim/_edit_link.html.erb +0 -0
  702. data/app/views/layouts/decidim/header/_main_links_mobile.html.erb +0 -36
  703. data/config/initializers/carrierwave.rb +0 -15
  704. data/config/locales/bn-BD.yml +0 -1
  705. data/config/locales/bs-BA.yml +0 -98
  706. data/lib/decidim/attributes/rich_text.rb +0 -38
  707. data/lib/decidim/carrier_wave_migrator_service.rb +0 -287
  708. data/lib/decidim/content_parsers/blob_parser.rb +0 -93
  709. data/lib/decidim/content_renderers/blob_renderer.rb +0 -90
  710. data/lib/decidim/seven_zip_wrapper.rb +0 -29
  711. data/lib/tasks/decidim_active_storage_migration_tasks.rake +0 -114
  712. data/lib/tasks/decidim_content_blocks_tasks.rake +0 -48
  713. data/lib/tasks/upgrade/decidim_attachments.rake +0 -14
  714. /data/app/views/layouts/decidim/header/{_menu_breadcrumb_main_dropdown.html.erb → _menu_breadcrumb_main_dropdown_desktop.html.erb} +0 -0
@@ -6,13 +6,17 @@
6
6
  }
7
7
 
8
8
  &[aria-expanded="true"],
9
- &:hover {
9
+ &:hover[disabled="false"] {
10
10
  @apply text-secondary border-secondary;
11
11
 
12
12
  svg {
13
13
  @apply text-secondary;
14
14
  }
15
15
  }
16
+
17
+ &[disabled] {
18
+ @apply opacity-50 cursor-not-allowed;
19
+ }
16
20
  }
17
21
 
18
22
  .tabs-1 {
@@ -1,16 +1,6 @@
1
1
  [role="tooltip"] {
2
2
  @apply absolute bg-black z-10 px-4 py-2 w-max max-w-xs rounded text-left text-white;
3
3
 
4
- /*
5
- NOTE: the calculated value is the sum of the arrow offset position plus the half of the arrow size:
6
- - offset position: 20%
7
- - arrow size: 16px
8
- */
9
- --arrow-offset: 20%;
10
- --arrow-size: 16px;
11
- --arrow-visible-size: var(--arrow-size) * 0.5;
12
- --arrow-margin: var(--arrow-visible-size) * 1.4142135623730951; // due to the rotation, the margin is SQRT2 times the visible size
13
-
14
4
  & > * {
15
5
  @apply relative z-20;
16
6
  }
@@ -51,6 +41,16 @@
51
41
  }
52
42
  }
53
43
 
44
+ /*
45
+ NOTE: the calculated value is the sum of the arrow offset position plus the half of the arrow size:
46
+ - offset position: 20%
47
+ - arrow size: 16px
48
+ */
49
+ --arrow-offset: 20%;
50
+ --arrow-size: 16px;
51
+ --arrow-visible-size: var(--arrow-size) * 0.5;
52
+ --arrow-margin: var(--arrow-visible-size) * 1.4142135623730951; // due to the rotation, the margin is SQRT2 times the visible size
53
+
54
54
  &.top {
55
55
  @apply -translate-x-[calc(100%-var(--arrow-offset))] -translate-y-[calc(100%+var(--arrow-margin))] before:content-[''] before:absolute before:-z-10 before:right-[calc(var(--arrow-offset)-var(--arrow-visible-size))] before:-bottom-[var(--arrow-visible-size)] before:w-[var(--arrow-size)] before:h-[var(--arrow-size)] before:rotate-45 before:bg-black before:rounded-br;
56
56
  }
@@ -57,8 +57,12 @@
57
57
  @import "stylesheets/decidim/_toggle_switch.scss";
58
58
  @import "stylesheets/decidim/_hero.scss";
59
59
  @import "stylesheets/decidim/_actions.scss";
60
+ @import "stylesheets/decidim/_emoji.scss";
60
61
  }
61
62
 
63
+ @import "stylesheets/decidim/vendor/datepicker_light.scss";
64
+ @import "stylesheets/decidim/datepicker.scss";
65
+
62
66
  // On the other hand, the following styles match with specific routes
63
67
  @import "stylesheets/decidim/_header.scss";
64
68
  @import "stylesheets/decidim/_footer.scss";
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  .editor-container {
24
- @apply editor-props editor-suggestions-props flex flex-col mt-4 border editor-border;
24
+ @apply editor-props editor-suggestions-props flex flex-col mb-6 border editor-border;
25
25
 
26
26
  &.editor-disabled {
27
27
  .editor-input .ProseMirror {
@@ -37,6 +37,7 @@
37
37
  }
38
38
 
39
39
  .conference-diploma .diploma__logo {
40
+ border: 1px solid #333;
40
41
  padding: 2rem;
41
42
  }
42
43
 
@@ -46,12 +47,10 @@
46
47
  max-height: 100%;
47
48
  max-width: 100%;
48
49
  margin: 0;
49
- padding-top: 10%;
50
50
  }
51
51
 
52
52
  .conference-diploma .diploma__border {
53
53
  margin: 0;
54
- margin-top: 15%;
55
54
  -moz-border-image: url("../images/decidim/pattern.png") 20 repeat;
56
55
  -webkit-border-image: url("../images/decidim/pattern.png") 20 repeat;
57
56
  -o-border-image: url("../images/decidim/pattern.png") 20 repeat;
@@ -43,7 +43,7 @@
43
43
  display: block;
44
44
  }
45
45
 
46
- /* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
46
+ /* .leaflet-container svg: reset svg max-width declaration shipped in Joomla! (joomla.org) 3.x */
47
47
 
48
48
  /* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
49
49
  .leaflet-container .leaflet-overlay-pane svg {
@@ -0,0 +1,228 @@
1
+ // Extracted from wc-datepicker
2
+ // https://github.com/Sqrrl/wc-datepicker
3
+ // Copyright @Sqrrl (c) 2022 - MIT License
4
+
5
+ .sc-wc-datepicker-h,
6
+ .sc-wc-datepicker-h *,
7
+ .sc-wc-datepicker-h *::before,
8
+ .sc-wc-datepicker-h *::after {
9
+ margin: 0;
10
+ padding: 0;
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ .sc-wc-datepicker-h {
15
+ display: inline-flex;
16
+ }
17
+
18
+ .wc-datepicker {
19
+ display: block;
20
+ width: min-content;
21
+ min-width: 17rem;
22
+ max-width: 24rem;
23
+ border: 0.0625rem solid #f2f3f5;
24
+ color: #111;
25
+ background-color: #fff;
26
+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
27
+ "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif,
28
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
29
+ font-size: 1rem;
30
+ font-weight: 400;
31
+ line-height: 1.5;
32
+ }
33
+
34
+ .wc-datepicker--disabled *:disabled {
35
+ opacity: 0.5;
36
+ cursor: default;
37
+ }
38
+
39
+ .wc-datepicker--disabled .wc-datepicker__weekday {
40
+ color: #767676;
41
+ }
42
+
43
+ .wc-datepicker--disabled .wc-datepicker__date:focus > * {
44
+ outline: none;
45
+ }
46
+
47
+ .wc-datepicker--disabled .wc-datepicker__date {
48
+ cursor: default;
49
+ opacity: 0.5;
50
+ }
51
+
52
+ .wc-datepicker--disabled .wc-datepicker__date:hover > * {
53
+ background-color: transparent;
54
+ }
55
+
56
+ .wc-datepicker--disabled .wc-datepicker__date--in-range:hover > * {
57
+ background-color: #f2f3f5;
58
+ }
59
+
60
+ .wc-datepicker--disabled .wc-datepicker__date--selected:hover > * {
61
+ color: #fff;
62
+ background-color: #00f;
63
+ }
64
+
65
+ .wc-datepicker__header {
66
+ display: flex;
67
+ padding: 0.75rem;
68
+ align-items: center;
69
+ gap: 0.5rem;
70
+ }
71
+
72
+ .wc-datepicker__current-month {
73
+ display: flex;
74
+ flex-grow: 1;
75
+ gap: 0.5rem;
76
+ }
77
+
78
+ .wc-datepicker__month-select,
79
+ .wc-datepicker__year-select {
80
+ display: flex;
81
+ height: 2rem;
82
+ padding-right: 0.5rem;
83
+ padding-left: 0.5rem;
84
+ align-items: center;
85
+ border: none;
86
+ border-radius: 0.25rem;
87
+ color: #111;
88
+ background: #f2f3f5;
89
+ font: inherit;
90
+ line-height: 1.125;
91
+ }
92
+
93
+ .wc-datepicker__month-select {
94
+ flex-grow: 1;
95
+ cursor: pointer;
96
+ appearance: none;
97
+ }
98
+
99
+ .wc-datepicker__year-select {
100
+ max-width: 5rem;
101
+ }
102
+
103
+ .wc-datepicker__previous-month-button,
104
+ .wc-datepicker__next-month-button,
105
+ .wc-datepicker__previous-year-button,
106
+ .wc-datepicker__next-year-button {
107
+ display: inline-flex;
108
+ width: 2rem;
109
+ height: 2rem;
110
+ padding: 0.375rem;
111
+ flex-shrink: 0;
112
+ justify-content: center;
113
+ align-items: center;
114
+ border: none;
115
+ border-radius: 0.25rem;
116
+ color: #111;
117
+ background-color: transparent;
118
+ background-color: #f2f3f5;
119
+ cursor: pointer;
120
+ }
121
+
122
+ .wc-datepicker__body {
123
+ padding-right: 0.75rem;
124
+ padding-bottom: 0.75rem;
125
+ padding-left: 0.75rem;
126
+ }
127
+
128
+ .wc-datepicker__calendar {
129
+ width: 100%;
130
+ table-layout: fixed;
131
+ border-collapse: collapse;
132
+ }
133
+
134
+ .wc-datepicker__weekday > span {
135
+ display: flex;
136
+ padding: 0.125rem;
137
+ justify-content: center;
138
+ align-items: center;
139
+ font-weight: 600;
140
+ aspect-ratio: 1;
141
+ }
142
+
143
+ .wc-datepicker__date {
144
+ padding: 0.125rem;
145
+ text-align: center;
146
+ cursor: pointer;
147
+ }
148
+
149
+ .wc-datepicker__date:focus {
150
+ outline: none;
151
+ }
152
+
153
+ .wc-datepicker__date:focus > * {
154
+ outline: 0.125rem solid #00f;
155
+ }
156
+
157
+ .wc-datepicker__date:hover > * {
158
+ background-color: #f2f3f5;
159
+ }
160
+
161
+ .wc-datepicker__date > * {
162
+ display: flex;
163
+ justify-content: center;
164
+ align-items: center;
165
+ border-radius: 0.25rem;
166
+ aspect-ratio: 1;
167
+ }
168
+
169
+ .wc-datepicker__date--today > * {
170
+ font-weight: 700;
171
+ font-style: normal;
172
+ }
173
+
174
+ .wc-datepicker__date--in-range > * {
175
+ background-color: #f2f3f5;
176
+ }
177
+
178
+ .wc-datepicker__date--selected > *,
179
+ .wc-datepicker__date--selected:hover > * {
180
+ color: #fff;
181
+ background-color: #00f;
182
+ font-weight: 500;
183
+ }
184
+
185
+ .wc-datepicker__date--disabled {
186
+ color: #767676;
187
+ cursor: default;
188
+ }
189
+
190
+ .wc-datepicker__date--disabled:not(.wc-datepicker__date--selected):not(
191
+ .wc-datepicker__date--in-range
192
+ ):hover
193
+ > * {
194
+ background-color: transparent;
195
+ }
196
+
197
+ .wc-datepicker__date--disabled.wc-datepicker__date--in-range:not(
198
+ .wc-datepicker__date--selected
199
+ ):not(.wc-datepicker__date--in-range)
200
+ > * {
201
+ background-color: transparent;
202
+ }
203
+
204
+ .wc-datepicker__footer {
205
+ display: flex;
206
+ padding-right: 0.75rem;
207
+ padding-bottom: 0.75rem;
208
+ padding-left: 0.75rem;
209
+ align-items: center;
210
+ gap: 0.5rem;
211
+ }
212
+
213
+ .wc-datepicker__clear-button,
214
+ .wc-datepicker__today-button {
215
+ display: inline-flex;
216
+ height: 2rem;
217
+ padding-right: 0.5rem;
218
+ padding-left: 0.5rem;
219
+ justify-content: center;
220
+ align-items: center;
221
+ border: none;
222
+ border-radius: 0.25rem;
223
+ color: #111;
224
+ background-color: #f2f3f5;
225
+ font: inherit;
226
+ line-height: 1;
227
+ cursor: pointer;
228
+ }
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Decidim
4
- # Default permissions class for all components and spaces. It disauthorizes all
4
+ # Default permissions class for all components and spaces. It deauthorizes all
5
5
  # actions by any kind of user. Also works as a default implementation so other
6
- # components can inherit from it and get some cenvenience methods.
6
+ # components can inherit from it and get some convenience methods.
7
7
  class DefaultPermissions
8
8
  def initialize(user, permission_action, context = {})
9
9
  @user = user
@@ -15,7 +15,7 @@ module Decidim
15
15
  private
16
16
 
17
17
  def diff_fields_mapping
18
- return { external_domain_whitelist: :string } if action == "update_external_domain"
18
+ return { external_domain_allowlist: :string } if action == "update_external_domain"
19
19
 
20
20
  settings_attributes_mapping
21
21
  .merge(omnipresent_banner_attributes_mapping)
@@ -24,7 +24,7 @@ module Decidim
24
24
 
25
25
  # Private: Caches the object that will be responsible of presenting the static page.
26
26
  # Overwrites the method so that we can use a custom presenter to show the correct
27
- # path for ther page.
27
+ # path for their page.
28
28
  #
29
29
  # Returns an object that responds to `present`.
30
30
  def resource_presenter
@@ -6,7 +6,7 @@ module Decidim
6
6
  #
7
7
  class AttachmentPresenter < SimpleDelegator
8
8
  def attachment_file_url
9
- attachment.attached_uploader(:file).url
9
+ attachment.attached_uploader(:file).url(host: attached_to.organization.host)
10
10
  end
11
11
 
12
12
  def attachment
@@ -37,7 +37,7 @@ module Decidim
37
37
  # Returns an array of the translated record counts containing only the
38
38
  # texts to be displayed for the user.
39
39
  #
40
- # @return [Array<String>] The translated records names with their coutns.
40
+ # @return [Array<String>] The translated records names with their counts.
41
41
  def translated_record_texts
42
42
  translated_record_counts.values
43
43
  end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ #
5
+ # Decorator attachments of a component acting as an attachment collection
6
+ #
7
+ class ComponentAttachmentCollectionPresenter < SimpleDelegator
8
+ include Decidim::TranslatableAttributes
9
+
10
+ def initialize(resource, opts = {})
11
+ super(resource)
12
+
13
+ @include_component_name = opts[:include_component_name]
14
+ end
15
+
16
+ def attachments
17
+ @attachments ||= if [resource_model_name, resource_table_name].all?(&:present?)
18
+ base_query = Decidim::Attachment.joins(resource_join.join_sources)
19
+ .where(resource_table_name => { decidim_component_id: __getobj__.id })
20
+ if resource_model&.include?(Decidim::Publicable)
21
+ base_query.where.not(resource_table_name => { published_at: nil })
22
+ else
23
+ base_query
24
+ end
25
+ else
26
+ Decidim::Attachment.none
27
+ end
28
+ end
29
+
30
+ def documents
31
+ @documents ||= attachments.with_attached_file.order(:weight).select(&:document?)
32
+ end
33
+
34
+ def documents_visible_for(user)
35
+ return documents unless resource_model.respond_to?(:visible_for)
36
+
37
+ attachments.merge(resource_model.visible_for(user)).with_attached_file.order(:weight).select(&:document?)
38
+ end
39
+
40
+ def unused?
41
+ documents.blank?
42
+ end
43
+
44
+ def id
45
+ "component-#{__getobj__.id}"
46
+ end
47
+
48
+ def name
49
+ base_name = I18n.t(manifest_name, scope: "decidim.application.documents.component_documents")
50
+
51
+ return base_name unless @include_component_name
52
+
53
+ "#{base_name} - #{translated_attribute(__getobj__.name)}"
54
+ end
55
+
56
+ def description; end
57
+
58
+ private
59
+
60
+ def resource_join
61
+ resource_table = Arel::Table.new(resource_table_name)
62
+ attachments_table = Decidim::Attachment.arel_table
63
+ attachments_table.join(resource_table).on(
64
+ resource_table[:id].eq(attachments_table[:attached_to_id]),
65
+ attachments_table[:attached_to_type].eq(resource_model_name)
66
+ )
67
+ end
68
+
69
+ def resource_model_name
70
+ @resource_model_name ||= Decidim.resource_registry.find(manifest_name)&.model_class_name
71
+ end
72
+
73
+ def resource_model
74
+ @resource_model ||= resource_model_name&.safe_constantize
75
+ end
76
+
77
+ def resource_table_name
78
+ @resource_table_name ||= resource_model&.table_name
79
+ end
80
+ end
81
+ end
@@ -4,7 +4,7 @@ module Decidim
4
4
  # A presenter to render footer menu
5
5
  class FooterMenuPresenter < MenuPresenter
6
6
  def render
7
- content_tag(:nav, role: "navigation", "aria-label" => @options[:label]) do
7
+ content_tag(:nav, :role => "navigation", "aria-label" => @options[:label]) do
8
8
  safe_join([content_tag(:h2, @options[:label], class: "h5 mb-4"), render_menu])
9
9
  end
10
10
  end
@@ -45,7 +45,7 @@ module Decidim
45
45
  stats = {}
46
46
  Decidim.component_manifests.flat_map do |component|
47
47
  component
48
- .stats.except([:supports_count])
48
+ .stats.except([:votes_count])
49
49
  .filter(conditions)
50
50
  .with_context(published_components)
51
51
  .each do |name, data|
@@ -26,7 +26,7 @@ module Decidim
26
26
  delegate :content_tag, :safe_join, :link_to, :active_link_to_class, :is_active_link?, :icon, to: :@view
27
27
 
28
28
  def render
29
- content_tag :li, role: :menuitem, class: link_wrapper_classes do
29
+ content_tag :li, class: link_wrapper_classes do
30
30
  output = if url == "#"
31
31
  [content_tag(:span, composed_label, class: "sidebar-menu__item-disabled")]
32
32
  else
@@ -4,7 +4,7 @@ module Decidim
4
4
  # A general presenter to render organization logic to build a manifest
5
5
  class OrganizationPresenter < SimpleDelegator
6
6
  def html_name
7
- name.html_safe
7
+ translated_attribute(name).html_safe
8
8
  end
9
9
 
10
10
  def translated_description
@@ -55,25 +55,14 @@ module Decidim
55
55
  klass = manifest.model_class_name.constantize
56
56
 
57
57
  condition = if klass.include?(Decidim::HasPrivateUsers)
58
- Arel.sql(
59
- <<~SQL.squish
60
- (
61
- decidim_action_logs.participatory_space_type = '#{manifest.model_class_name}' AND#{" "}
62
- decidim_action_logs.participatory_space_id IN (#{Arel.sql(klass.visible_for(current_user).select(:id).to_sql)})
63
- ) OR#{" "}
64
- (
65
- decidim_action_logs.resource_type = '#{manifest.model_class_name}' AND#{" "}
66
- decidim_action_logs.resource_id IN (#{Arel.sql(klass.visible_for(current_user).select(:id).to_sql)})
67
- )
68
- SQL
69
- ).to_s
70
- else
71
58
  Arel.sql(
72
59
  [
73
- "decidim_action_logs.resource_type = '#{manifest.model_class_name}'",
74
- "decidim_action_logs.participatory_space_type = '#{manifest.model_class_name}'"
75
- ].join(" OR ")
60
+ "decidim_action_logs.participatory_space_type = '#{manifest.model_class_name}'",
61
+ "decidim_action_logs.participatory_space_id IN (#{Arel.sql(klass.visible_for(current_user).select(:id).to_sql)})"
62
+ ].join(" AND ")
76
63
  ).to_s
64
+ else
65
+ Arel.sql("decidim_action_logs.participatory_space_type = '#{manifest.model_class_name}'").to_s
77
66
  end
78
67
 
79
68
  conditions << "(#{condition})"
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This class executes some measures related to Metrics, and return its results
5
5
  #
6
6
  # - day: Date object
7
- # - resource: Object used to make measurements. Object class is dependant within each measure
7
+ # - resource: Object used to make measurements. Object class is dependent within each measure
8
8
  class MetricMeasure
9
9
  def initialize(day, resource)
10
10
  @day = day.try(:to_date) || Time.zone.yesterday
@@ -14,7 +14,7 @@ module Decidim
14
14
  #
15
15
  # :resource_name - an optional name for a resource for searching only that
16
16
  # type of resources.
17
- # :user - an optional `Decidim::User` that performed the activites
17
+ # :user - an optional `Decidim::User` that performed the activities
18
18
  # :current_user - an optional `Decidim::User` for defining whether to show the
19
19
  # private log entries that relate to the current user.
20
20
  # :follows - a collection of `Decidim::Follow` resources. It will return any
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module UserGroups
5
- # Use this class to find the the admins of the given user group with the
5
+ # Use this class to find the admins of the given user group with the
6
6
  # "admin" role. It returns memberships.
7
7
  class AdminMemberships < Decidim::Query
8
8
  # Syntactic sugar to initialize the class and return the queried objects.
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module UserGroups
5
- # Use this class to find the the members of the given user group with the
5
+ # Use this class to find the members of the given user group with the
6
6
  # "member" role. It returns memberships.
7
7
  class MemberMemberships < Decidim::Query
8
8
  # Syntactic sugar to initialize the class and return the queried objects.
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  # Use this class to log actions by any user. You probably should not
5
- # use this class dfirectly, but rather use `Decidim.traceability` instead.
5
+ # use this class directly, but rather use `Decidim.traceability` instead.
6
6
  # Check the docs on `Decidim::Traceability` for more info.
7
7
  #
8
8
  # Usage:
@@ -14,7 +14,7 @@ module Decidim
14
14
  #
15
15
  # action - a String representing the name of the action
16
16
  # user - the Decidim::User that performed the action
17
- # resource - the resource onn which the action was performed
17
+ # resource - the resource on which the action was performed
18
18
  # version_id - the ID of the `PaperTrail::Version` that was created on that action
19
19
  # resource_extra - a Hash with resource_extra info to be recorded
20
20
  #
@@ -27,7 +27,7 @@ module Decidim
27
27
  #
28
28
  # action - a String representing the name of the action
29
29
  # user - the Decidim::User that performed the action
30
- # resource - the resource onn which the action was performed
30
+ # resource - the resource on which the action was performed
31
31
  # version_id - the ID of the `PaperTrail::Version` that was created on that action
32
32
  # resource_extra - a Hash with resource_extra info to be recorded
33
33
  def initialize(action, user, resource, version_id = nil, resource_extra = {})
@@ -41,7 +41,7 @@ module Decidim
41
41
  end
42
42
 
43
43
  def parse_i18n_changeset(attribute, values, type, diff)
44
- (values.last.keys - ["machine_translations"]).each do |locale, _value|
44
+ values.last.keys.each do |locale, _value|
45
45
  first_value = values.first.try(:[], locale)
46
46
  last_value = values.last.try(:[], locale)
47
47
  next if first_value == last_value
@@ -56,27 +56,6 @@ module Decidim
56
56
  }
57
57
  )
58
58
  end
59
-
60
- return diff unless values.last.has_key?("machine_translations")
61
-
62
- values.last.fetch("machine_translations").each_key do |locale, _value|
63
- next unless I18n.available_locales.include?(locale.to_sym)
64
-
65
- first_value = values.first.try(:[], "machine_translations").try(:[], locale)
66
- last_value = values.last.try(:[], "machine_translations").try(:[], locale)
67
-
68
- attribute_locale = :"#{attribute}_machine_translations_#{locale}"
69
-
70
- diff.update(
71
- attribute_locale => {
72
- type:,
73
- label: generate_i18n_label(attribute, locale, "decidim.machine_translations.automatic"),
74
- old_value: first_value,
75
- new_value: last_value
76
- }
77
- )
78
- end
79
-
80
59
  diff
81
60
  end
82
61
 
@@ -129,8 +108,7 @@ module Decidim
129
108
  end
130
109
 
131
110
  # Returns a String.
132
- # i18n-tasks-use t("decidim.machine_translations.automatic")
133
- def generate_i18n_label(attribute, locale, postfix = "")
111
+ def generate_i18n_label(attribute, locale)
134
112
  label = I18n.t(attribute, scope: i18n_scope)
135
113
  locale_name = if I18n.available_locales.include?(locale.to_sym)
136
114
  I18n.t("locale.name", locale:)
@@ -138,8 +116,6 @@ module Decidim
138
116
  locale
139
117
  end
140
118
 
141
- locale_name = I18n.t(postfix, locale_name:, locale:) if postfix.present?
142
-
143
119
  "#{label} (#{locale_name})"
144
120
  end
145
121