decidim-core 0.26.2 → 0.27.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 (543) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/cells/decidim/amendable/announcement_cell.rb +3 -8
  4. data/app/cells/decidim/announcement_cell.rb +1 -1
  5. data/app/cells/decidim/author_cell.rb +1 -1
  6. data/app/cells/decidim/content_blocks/footer_sub_hero/show.erb +1 -1
  7. data/app/cells/decidim/content_blocks/hero/show.erb +1 -1
  8. data/app/cells/decidim/content_blocks/highlighted_content_banner/show.erb +3 -3
  9. data/app/cells/decidim/content_blocks/highlighted_elements_cell.rb +1 -1
  10. data/app/cells/decidim/content_blocks/how_to_participate/show.erb +1 -1
  11. data/app/cells/decidim/content_blocks/last_activity/show.erb +1 -1
  12. data/app/cells/decidim/content_blocks/last_activity_cell.rb +3 -3
  13. data/app/cells/decidim/content_blocks/stats_cell.rb +4 -4
  14. data/app/cells/decidim/content_blocks/sub_hero/show.erb +1 -1
  15. data/app/cells/decidim/data_consent/category.erb +64 -0
  16. data/app/cells/decidim/data_consent/dialog.erb +29 -0
  17. data/app/cells/decidim/data_consent/modal.erb +39 -0
  18. data/app/cells/decidim/data_consent/show.erb +3 -0
  19. data/app/cells/decidim/data_consent_cell.rb +21 -0
  20. data/app/cells/decidim/follow_button_cell.rb +5 -7
  21. data/app/cells/decidim/profile_sidebar_cell.rb +1 -1
  22. data/app/cells/decidim/search_results_cell.rb +1 -1
  23. data/app/cells/decidim/tos_page/refuse_btn_modal.erb +1 -1
  24. data/app/cells/decidim/upload_modal/files.erb +52 -0
  25. data/app/cells/decidim/upload_modal/modal.erb +49 -0
  26. data/app/cells/decidim/upload_modal/show.erb +3 -0
  27. data/app/cells/decidim/upload_modal_cell.rb +205 -0
  28. data/app/cells/decidim/user_conversation/reply.erb +1 -1
  29. data/app/cells/decidim/user_conversations/add_conversation_users.erb +5 -3
  30. data/app/cells/decidim/version_cell.rb +2 -13
  31. data/app/cells/decidim/versions_list_cell.rb +2 -13
  32. data/app/cells/decidim/versions_list_item_cell.rb +2 -13
  33. data/app/commands/decidim/accept_group_invitation.rb +1 -1
  34. data/app/commands/decidim/accept_user_group_join_request.rb +1 -1
  35. data/app/commands/decidim/amendable/accept.rb +1 -1
  36. data/app/commands/decidim/amendable/create_draft.rb +1 -1
  37. data/app/commands/decidim/amendable/destroy_draft.rb +1 -1
  38. data/app/commands/decidim/amendable/promote.rb +1 -1
  39. data/app/commands/decidim/amendable/publish_draft.rb +1 -1
  40. data/app/commands/decidim/amendable/reject.rb +1 -1
  41. data/app/commands/decidim/amendable/update_draft.rb +1 -1
  42. data/app/commands/decidim/amendable/withdraw.rb +1 -1
  43. data/app/commands/decidim/attachment_methods.rb +3 -2
  44. data/app/commands/decidim/create_editor_image.rb +1 -1
  45. data/app/commands/decidim/create_follow.rb +1 -1
  46. data/app/commands/decidim/create_omniauth_registration.rb +2 -3
  47. data/app/commands/decidim/create_registration.rb +1 -2
  48. data/app/commands/decidim/create_report.rb +1 -1
  49. data/app/commands/decidim/create_user_group.rb +2 -2
  50. data/app/commands/decidim/create_user_report.rb +5 -3
  51. data/app/commands/decidim/delete_follow.rb +1 -1
  52. data/app/commands/decidim/demote_membership.rb +1 -1
  53. data/app/commands/decidim/destroy_account.rb +1 -1
  54. data/app/commands/decidim/endorse_resource.rb +1 -1
  55. data/app/commands/decidim/gallery_methods.rb +45 -10
  56. data/app/commands/decidim/invite_user.rb +1 -3
  57. data/app/commands/decidim/invite_user_again.rb +1 -1
  58. data/app/commands/decidim/invite_user_to_group.rb +1 -1
  59. data/app/commands/decidim/join_user_group.rb +1 -1
  60. data/app/commands/decidim/leave_user_group.rb +8 -2
  61. data/app/commands/decidim/messaging/reply_to_conversation.rb +2 -2
  62. data/app/commands/decidim/messaging/start_conversation.rb +2 -2
  63. data/app/commands/decidim/multiple_attachments_methods.rb +44 -5
  64. data/app/commands/decidim/promote_membership.rb +1 -1
  65. data/app/commands/decidim/reject_group_invitation.rb +1 -1
  66. data/app/commands/decidim/reject_user_group_join_request.rb +1 -1
  67. data/app/commands/decidim/remove_user_from_group.rb +1 -1
  68. data/app/commands/decidim/resend_confirmation_instructions.rb +18 -0
  69. data/app/commands/decidim/search.rb +10 -9
  70. data/app/commands/decidim/unendorse_resource.rb +1 -1
  71. data/app/commands/decidim/unsubscribe_settings.rb +1 -1
  72. data/app/commands/decidim/update_account.rb +2 -2
  73. data/app/commands/decidim/update_notifications_settings.rb +3 -2
  74. data/app/commands/decidim/update_password.rb +31 -0
  75. data/app/commands/decidim/update_user_group.rb +2 -2
  76. data/app/commands/decidim/update_user_interests.rb +1 -1
  77. data/app/commands/decidim/validate_upload.rb +15 -0
  78. data/app/controllers/concerns/decidim/devise_controllers.rb +0 -1
  79. data/app/controllers/concerns/decidim/filter_resource.rb +23 -24
  80. data/app/controllers/concerns/decidim/force_authentication.rb +1 -2
  81. data/app/controllers/concerns/decidim/http_caching_disabler.rb +1 -1
  82. data/app/controllers/concerns/decidim/needs_password_change.rb +43 -0
  83. data/app/controllers/concerns/decidim/needs_tos_accepted.rb +3 -3
  84. data/app/controllers/concerns/decidim/orderable.rb +1 -1
  85. data/app/controllers/concerns/decidim/participatory_space_context.rb +2 -2
  86. data/app/controllers/decidim/account_controller.rb +45 -0
  87. data/app/controllers/decidim/application_controller.rb +1 -1
  88. data/app/controllers/decidim/devise/invitations_controller.rb +2 -0
  89. data/app/controllers/decidim/devise/passwords_controller.rb +33 -0
  90. data/app/controllers/decidim/devise/registrations_controller.rb +2 -0
  91. data/app/controllers/decidim/devise/sessions_controller.rb +2 -0
  92. data/app/controllers/decidim/{data_portability_controller.rb → download_your_data_controller.rb} +8 -8
  93. data/app/controllers/decidim/groups_controller.rb +5 -0
  94. data/app/controllers/decidim/last_activities_controller.rb +7 -9
  95. data/app/controllers/decidim/manifests_controller.rb +11 -0
  96. data/app/controllers/decidim/newsletters_controller.rb +1 -1
  97. data/app/controllers/decidim/notifications_subscriptions_controller.rb +16 -0
  98. data/app/controllers/decidim/offline_controller.rb +7 -0
  99. data/app/controllers/decidim/profiles_controller.rb +1 -1
  100. data/app/controllers/decidim/searches_controller.rb +4 -3
  101. data/app/controllers/decidim/short_links_controller.rb +35 -0
  102. data/app/controllers/decidim/upload_validations_controller.rb +44 -0
  103. data/app/controllers/decidim/user_activities_controller.rb +32 -16
  104. data/app/controllers/decidim/user_interests_controller.rb +0 -2
  105. data/app/controllers/decidim/user_timeline_controller.rb +6 -8
  106. data/app/events/decidim/change_nickname_event.rb +21 -0
  107. data/app/forms/decidim/account_form.rb +7 -6
  108. data/app/forms/decidim/form.rb +1 -1
  109. data/app/forms/decidim/messaging/conversation_form.rb +1 -1
  110. data/app/forms/decidim/notifications_settings_form.rb +8 -2
  111. data/app/forms/decidim/password_form.rb +10 -0
  112. data/app/forms/decidim/registration_form.rb +10 -4
  113. data/app/forms/decidim/upload_validation_form.rb +54 -0
  114. data/app/forms/decidim/user_group_form.rb +1 -1
  115. data/app/forms/decidim/user_interest_scope_form.rb +1 -1
  116. data/app/forms/decidim/user_interests_form.rb +1 -1
  117. data/app/forms/translatable_presence_validator.rb +2 -2
  118. data/app/forms/url_validator.rb +1 -1
  119. data/app/helpers/decidim/application_helper.rb +2 -2
  120. data/app/helpers/decidim/attachments_helper.rb +1 -1
  121. data/app/helpers/decidim/cells_paginate_helper.rb +1 -1
  122. data/app/helpers/decidim/datalist_select_helper.rb +40 -0
  123. data/app/helpers/decidim/decidim_form_helper.rb +1 -1
  124. data/app/helpers/decidim/followable_helper.rb +1 -1
  125. data/app/helpers/decidim/icon_helper.rb +1 -1
  126. data/app/helpers/decidim/layout_helper.rb +15 -1
  127. data/app/helpers/decidim/map_helper.rb +12 -8
  128. data/app/helpers/decidim/meta_tags_helper.rb +0 -2
  129. data/app/helpers/decidim/notifications_settings_helper.rb +15 -0
  130. data/app/helpers/decidim/passwords_helper.rb +41 -0
  131. data/app/helpers/decidim/sanitize_helper.rb +1 -0
  132. data/app/helpers/decidim/searches_helper.rb +6 -6
  133. data/app/helpers/decidim/short_link_helper.rb +28 -0
  134. data/app/helpers/decidim/translations_helper.rb +2 -2
  135. data/app/jobs/decidim/{data_portability_export_job.rb → download_your_data_export_job.rb} +5 -5
  136. data/app/jobs/decidim/email_notifications_digest_generator_job.rb +21 -0
  137. data/app/jobs/decidim/notification_generator_for_recipient_job.rb +5 -3
  138. data/app/jobs/decidim/reminder_generator_job.rb +12 -0
  139. data/app/jobs/decidim/resend_confirmation_instructions_job.rb +11 -0
  140. data/app/jobs/decidim/user_report_job.rb +2 -2
  141. data/app/mailers/concerns/decidim/multitenant_asset_host.rb +11 -3
  142. data/app/mailers/decidim/application_mailer.rb +1 -1
  143. data/app/mailers/decidim/block_user_mailer.rb +8 -7
  144. data/app/mailers/decidim/export_mailer.rb +2 -2
  145. data/app/mailers/decidim/newsletter_mailer.rb +2 -2
  146. data/app/mailers/decidim/newsletters_opt_in_mailer.rb +7 -5
  147. data/app/mailers/decidim/notifications_digest_mailer.rb +23 -0
  148. data/app/mailers/decidim/user_report_mailer.rb +10 -11
  149. data/app/models/decidim/action_log.rb +86 -2
  150. data/app/models/decidim/amendment.rb +0 -1
  151. data/app/models/decidim/area.rb +1 -2
  152. data/app/models/decidim/area_type.rb +5 -0
  153. data/app/models/decidim/attachment.rb +6 -0
  154. data/app/models/decidim/attachment_collection.rb +5 -0
  155. data/app/models/decidim/category.rb +9 -4
  156. data/app/models/decidim/coauthorship.rb +0 -2
  157. data/app/models/decidim/contextual_help_section.rb +5 -1
  158. data/app/models/decidim/follow.rb +2 -2
  159. data/app/models/decidim/gamification/badge_score.rb +0 -1
  160. data/app/models/decidim/identity.rb +2 -2
  161. data/app/models/decidim/messaging/conversation.rb +4 -4
  162. data/app/models/decidim/messaging/message.rb +1 -2
  163. data/app/models/decidim/messaging/participation.rb +0 -2
  164. data/app/models/decidim/messaging/receipt.rb +0 -2
  165. data/app/models/decidim/notification.rb +5 -2
  166. data/app/models/decidim/oauth_application.rb +12 -1
  167. data/app/models/decidim/organization.rb +7 -7
  168. data/app/models/decidim/participatory_space_private_user.rb +4 -2
  169. data/app/models/decidim/permission_action.rb +1 -0
  170. data/app/models/decidim/reminder.rb +10 -0
  171. data/app/models/decidim/reminder_delivery.rb +7 -0
  172. data/app/models/decidim/reminder_record.rb +29 -0
  173. data/app/models/decidim/report.rb +2 -2
  174. data/app/models/decidim/scope.rb +3 -4
  175. data/app/models/decidim/scope_type.rb +5 -0
  176. data/app/models/decidim/share_token.rb +0 -2
  177. data/app/models/decidim/short_link.rb +162 -0
  178. data/app/models/decidim/user.rb +34 -6
  179. data/app/models/decidim/user_base_entity.rb +1 -1
  180. data/app/models/decidim/user_group.rb +3 -3
  181. data/app/models/decidim/user_moderation.rb +0 -2
  182. data/app/models/decidim/user_report.rb +2 -2
  183. data/app/packs/entrypoints/decidim_core.js +2 -2
  184. data/app/packs/entrypoints/decidim_sw.js +1 -0
  185. data/app/packs/src/decidim/autocomplete.js +298 -0
  186. data/app/packs/src/decidim/cookie_consent/consent_manager.js +133 -0
  187. data/app/packs/src/decidim/cookie_consent/cookie_consent.js +103 -0
  188. data/app/packs/src/decidim/datalist_select.js +36 -0
  189. data/app/packs/src/decidim/direct_uploads/upload_field.js +117 -0
  190. data/app/packs/src/decidim/direct_uploads/upload_modal.js +264 -0
  191. data/app/packs/src/decidim/direct_uploads/upload_utility.js +49 -0
  192. data/app/packs/src/decidim/direct_uploads/uploader.js +89 -0
  193. data/app/packs/src/decidim/external_domain_warning.js +1 -1
  194. data/app/packs/src/decidim/external_link.js +14 -3
  195. data/app/packs/src/decidim/external_link.test.js +64 -0
  196. data/app/packs/src/decidim/geocoding.js +10 -35
  197. data/app/packs/src/decidim/identity_selector_dialog.js +1 -1
  198. data/app/packs/src/decidim/impersonation.js +3 -3
  199. data/app/packs/src/decidim/input_character_counter.js +177 -7
  200. data/app/packs/src/decidim/input_multiple_mentions.js +87 -187
  201. data/app/packs/src/decidim/map/factory.js +3 -1
  202. data/app/packs/src/decidim/map/icon.js +2 -1
  203. data/app/packs/src/decidim/map/legacy.js +2 -2
  204. data/app/packs/src/decidim/map/svg-icon.js +248 -0
  205. data/app/packs/src/decidim/map.js +2 -2
  206. data/app/packs/src/decidim/security/selfxss_warning.js +5 -1
  207. data/app/packs/src/decidim/session_timeouter.js +15 -15
  208. data/app/packs/src/decidim/sw/a2hs.js +28 -0
  209. data/app/packs/src/decidim/sw/index.js +3 -0
  210. data/app/packs/src/decidim/sw/loader.js +18 -0
  211. data/app/packs/src/decidim/sw/push-permissions.js +87 -0
  212. data/app/packs/src/decidim/sw/sw.js +80 -0
  213. data/app/packs/src/decidim/vizzs/areachart.js +33 -28
  214. data/app/packs/src/decidim/vizzs/{metrics.js → index.js} +0 -0
  215. data/app/packs/src/decidim/vizzs/linechart.js +23 -18
  216. data/app/packs/src/decidim/vizzs/rowchart.js +15 -11
  217. data/app/packs/stylesheets/decidim/email.scss +66 -0
  218. data/app/packs/stylesheets/decidim/layouts/_user.scss +8 -0
  219. data/app/packs/stylesheets/decidim/modules/_autocomplete.scss +99 -0
  220. data/app/packs/stylesheets/decidim/modules/_cookie-consent.scss +115 -0
  221. data/app/packs/stylesheets/decidim/modules/_footer.scss +4 -0
  222. data/app/packs/stylesheets/decidim/modules/_input-multiple-mentions.scss +29 -2
  223. data/app/packs/stylesheets/decidim/modules/_modules.scss +3 -1
  224. data/app/packs/stylesheets/decidim/modules/_reveal.scss +15 -0
  225. data/app/packs/stylesheets/decidim/modules/_upload_modal.scss +143 -0
  226. data/app/packs/stylesheets/decidim/utils/_fontface.scss +3 -0
  227. data/app/permissions/decidim/permissions.rb +2 -4
  228. data/app/presenters/decidim/admin_log/area_type_presenter.rb +34 -0
  229. data/app/presenters/decidim/admin_log/attachment_collection_presenter.rb +35 -0
  230. data/app/presenters/decidim/admin_log/attachment_presenter.rb +27 -0
  231. data/app/presenters/decidim/admin_log/category_presenter.rb +36 -0
  232. data/app/presenters/decidim/admin_log/component_presenter.rb +35 -3
  233. data/app/presenters/decidim/admin_log/contextual_help_section_presenter.rb +33 -0
  234. data/app/presenters/decidim/admin_log/organization_presenter.rb +9 -4
  235. data/app/presenters/decidim/admin_log/scope_type_presenter.rb +34 -0
  236. data/app/presenters/decidim/home_stats_presenter.rb +4 -2
  237. data/app/presenters/decidim/log/base_presenter.rb +1 -1
  238. data/app/presenters/decidim/menu_item_presenter.rb +1 -1
  239. data/app/presenters/decidim/metric_charts_presenter.rb +7 -1
  240. data/app/presenters/decidim/nil_presenter.rb +3 -1
  241. data/app/presenters/decidim/notification_to_mailer_presenter.rb +39 -0
  242. data/app/presenters/decidim/notifications_digest_presenter.rb +42 -0
  243. data/app/presenters/decidim/official_author_presenter.rb +4 -0
  244. data/app/presenters/decidim/organization_presenter.rb +22 -0
  245. data/app/presenters/decidim/push_notification_presenter.rb +24 -0
  246. data/app/presenters/decidim/stats_presenter.rb +1 -1
  247. data/app/presenters/decidim/validation_errors_presenter.rb +1 -1
  248. data/app/queries/decidim/messaging/user_conversations.rb +1 -1
  249. data/app/queries/decidim/metric_manage.rb +1 -1
  250. data/app/queries/decidim/own_activities.rb +11 -0
  251. data/app/queries/decidim/participatory_processes_with_user_role.rb +1 -1
  252. data/app/{services/decidim/activity_search.rb → queries/decidim/public_activities.rb} +35 -77
  253. data/app/queries/decidim/public_components.rb +1 -1
  254. data/app/queries/decidim/similar_emendations.rb +1 -1
  255. data/app/queries/decidim/stats_users_count.rb +1 -1
  256. data/app/queries/decidim/user_groups/accepted_memberships.rb +1 -1
  257. data/app/queries/decidim/user_groups/accepted_user_groups.rb +1 -1
  258. data/app/queries/decidim/user_groups/accepted_users.rb +1 -1
  259. data/app/queries/decidim/user_groups/admin_memberships.rb +1 -1
  260. data/app/queries/decidim/user_groups/invited_memberships.rb +1 -1
  261. data/app/queries/decidim/user_groups/manageable_user_groups.rb +1 -1
  262. data/app/queries/decidim/user_groups/member_memberships.rb +1 -1
  263. data/app/services/decidim/{data_portability_exporter.rb → download_your_data_exporter.rb} +6 -6
  264. data/app/services/decidim/email_notification_generator.rb +2 -2
  265. data/app/services/decidim/engine_resolver.rb +66 -0
  266. data/app/services/decidim/events_manager.rb +1 -1
  267. data/app/services/decidim/iframe_disabler.rb +31 -0
  268. data/app/services/decidim/notification_generator_for_recipient.rb +1 -1
  269. data/app/services/decidim/notifications_digest_sending_decider.rb +18 -0
  270. data/app/services/decidim/notifications_subscriptions_persistor.rb +37 -0
  271. data/app/services/decidim/open_data_exporter.rb +1 -1
  272. data/app/services/decidim/resource_search.rb +17 -164
  273. data/app/services/decidim/send_push_notification.rb +59 -0
  274. data/app/services/decidim/traceability.rb +1 -1
  275. data/app/uploaders/decidim/application_uploader.rb +2 -12
  276. data/app/uploaders/decidim/cw/attachment_uploader.rb +1 -1
  277. data/app/uploaders/decidim/cw/{data_portability_uploader.rb → download_your_data_uploader.rb} +3 -3
  278. data/app/uploaders/decidim/cw/image_uploader.rb +2 -2
  279. data/app/uploaders/decidim/organization_favicon_uploader.rb +3 -2
  280. data/app/validators/passthru_validator.rb +29 -21
  281. data/app/validators/password_validator.rb +25 -4
  282. data/app/validators/uploader_image_dimensions_validator.rb +1 -1
  283. data/app/views/decidim/account/_account_notification.js.erb +20 -0
  284. data/app/views/decidim/account/_password_fields.html.erb +2 -2
  285. data/app/views/decidim/account/cancel_email_change.js.erb +6 -0
  286. data/app/views/decidim/account/resend_confirmation_instructions.erb +1 -0
  287. data/app/views/decidim/account/show.html.erb +19 -6
  288. data/app/views/decidim/application/{_attachments.html.erb → _attachments.erb} +2 -2
  289. data/app/views/decidim/application/_collection.html.erb +1 -1
  290. data/app/views/decidim/application/{_document.html.erb → _document.erb} +0 -0
  291. data/app/views/decidim/application/{_documents.html.erb → _documents.erb} +2 -2
  292. data/app/views/decidim/application/{_photos.html.erb → _photos.erb} +0 -0
  293. data/app/views/decidim/devise/confirmations/new.html.erb +1 -1
  294. data/app/views/decidim/devise/invitations/edit.html.erb +3 -4
  295. data/app/views/decidim/devise/omniauth_registrations/new.html.erb +3 -3
  296. data/app/views/decidim/devise/passwords/edit.html.erb +7 -5
  297. data/app/views/decidim/devise/passwords/new.html.erb +1 -1
  298. data/app/views/decidim/devise/registrations/edit.html.erb +5 -5
  299. data/app/views/decidim/devise/registrations/new.html.erb +5 -5
  300. data/app/views/decidim/devise/sessions/new.html.erb +2 -2
  301. data/app/views/decidim/{data_portability → download_your_data}/export.html.erb +0 -0
  302. data/app/views/decidim/{data_portability → download_your_data}/show.html.erb +2 -2
  303. data/app/views/decidim/export_mailer/download_your_data_export.html.erb +7 -0
  304. data/app/views/decidim/last_activities/index.html.erb +1 -1
  305. data/app/views/decidim/manifests/show.json.erb +31 -0
  306. data/app/views/decidim/messaging/conversations/_add_conversation_users.html.erb +5 -3
  307. data/app/views/decidim/messaging/conversations/_reply.html.erb +1 -1
  308. data/app/views/decidim/messaging/conversations/_start.html.erb +1 -3
  309. data/app/views/decidim/messaging/conversations/create.js.erb +1 -0
  310. data/app/views/decidim/notifications_digest_mailer/_email_content.html.erb +11 -0
  311. data/app/views/decidim/notifications_digest_mailer/digest_mail.erb +27 -0
  312. data/app/views/decidim/notifications_settings/show.html.erb +34 -9
  313. data/app/views/decidim/offline/show.html.erb +9 -0
  314. data/app/views/decidim/pages/_standalone.html.erb +1 -1
  315. data/app/views/decidim/reported_mailer/hide.html.erb +1 -1
  316. data/app/views/decidim/reported_mailer/report.html.erb +1 -1
  317. data/app/views/decidim/scopes/picker.html.erb +1 -1
  318. data/app/views/decidim/searches/_filters.html.erb +2 -2
  319. data/app/views/decidim/shared/participatory_space_filters/_filters.html.erb +3 -3
  320. data/app/views/decidim/user_report_mailer/notify.html.erb +10 -3
  321. data/app/views/devise/mailer/confirmation_instructions.html.erb +3 -1
  322. data/app/views/layouts/decidim/_application.html.erb +6 -3
  323. data/app/views/layouts/decidim/_cookie_warning.html.erb +8 -8
  324. data/app/views/layouts/decidim/_decidim_javascript.html.erb +12 -0
  325. data/app/views/layouts/decidim/_head.html.erb +4 -2
  326. data/app/views/layouts/decidim/_js_configuration.html.erb +5 -1
  327. data/app/views/layouts/decidim/_main_footer.html.erb +1 -0
  328. data/app/views/layouts/decidim/_offline_banner.html.erb +11 -0
  329. data/app/views/layouts/decidim/widget.html.erb +2 -2
  330. data/config/assets.rb +1 -0
  331. data/config/locales/am-ET.yml +1 -0
  332. data/config/locales/ar.yml +48 -36
  333. data/config/locales/bg.yml +15 -30
  334. data/config/locales/ca.yml +186 -35
  335. data/config/locales/cs.yml +186 -33
  336. data/config/locales/da.yml +1 -0
  337. data/config/locales/de.yml +25 -36
  338. data/config/locales/el.yml +15 -30
  339. data/config/locales/en.yml +183 -32
  340. data/config/locales/eo.yml +4 -6
  341. data/config/locales/es-MX.yml +185 -34
  342. data/config/locales/es-PY.yml +185 -34
  343. data/config/locales/es.yml +185 -34
  344. data/config/locales/et.yml +1 -0
  345. data/config/locales/eu.yml +15 -36
  346. data/config/locales/fi-plain.yml +184 -33
  347. data/config/locales/fi.yml +184 -33
  348. data/config/locales/fr-CA.yml +170 -33
  349. data/config/locales/fr.yml +170 -33
  350. data/config/locales/ga-IE.yml +5 -7
  351. data/config/locales/gl.yml +47 -30
  352. data/config/locales/hr.yml +1 -0
  353. data/config/locales/hu.yml +65 -35
  354. data/config/locales/id-ID.yml +15 -29
  355. data/config/locales/is-IS.yml +6 -15
  356. data/config/locales/it.yml +22 -38
  357. data/config/locales/ja.yml +173 -34
  358. data/config/locales/ko.yml +1 -0
  359. data/config/locales/lb.yml +16 -32
  360. data/config/locales/lt.yml +1 -0
  361. data/config/locales/lv.yml +15 -28
  362. data/config/locales/mt.yml +1 -0
  363. data/config/locales/nl.yml +25 -33
  364. data/config/locales/no.yml +24 -35
  365. data/config/locales/om-ET.yml +1 -0
  366. data/config/locales/pl.yml +113 -32
  367. data/config/locales/pt-BR.yml +17 -32
  368. data/config/locales/pt.yml +16 -32
  369. data/config/locales/ro-RO.yml +20 -36
  370. data/config/locales/ru.yml +15 -27
  371. data/config/locales/si-LK.yml +1 -0
  372. data/config/locales/sk.yml +15 -30
  373. data/config/locales/sl.yml +1 -0
  374. data/config/locales/so-SO.yml +1 -0
  375. data/config/locales/sr-CS.yml +1 -0
  376. data/config/locales/sv.yml +69 -34
  377. data/config/locales/sw-KE.yml +1 -0
  378. data/config/locales/ti-ER.yml +1 -0
  379. data/config/locales/tr-TR.yml +15 -29
  380. data/config/locales/uk.yml +15 -26
  381. data/config/locales/val-ES.yml +1 -0
  382. data/config/locales/vi.yml +1 -0
  383. data/config/locales/zh-CN.yml +15 -28
  384. data/config/locales/zh-TW.yml +1 -0
  385. data/config/routes.rb +17 -2
  386. data/db/migrate/20180508111710_add_accepted_tos_version_field_to_users.rb +1 -0
  387. data/db/migrate/20181030090144_destroy_deleted_users_follows.rb +1 -0
  388. data/db/migrate/20190412131728_fix_user_names.rb +4 -4
  389. data/db/migrate/20210831181634_add_service_name_to_active_storage_blobs.active_storage.rb +22 -0
  390. data/db/migrate/20210831181635_create_active_storage_variant_records.active_storage.rb +14 -0
  391. data/db/migrate/20211208155453_create_decidim_reminders.rb +11 -0
  392. data/db/migrate/20211209121025_create_decidim_reminder_records.rb +11 -0
  393. data/db/migrate/20211209121040_create_decidim_reminder_deliveries.rb +10 -0
  394. data/db/migrate/20220118121921_change_required_description_categories.rb +7 -0
  395. data/db/migrate/20220127113419_add_notification_settings_to_users.rb +7 -0
  396. data/db/migrate/20220203121137_add_notifications_sending_frequency_to_users.rb +7 -0
  397. data/db/migrate/20220215172439_add_digest_sent_at_to_users.rb +7 -0
  398. data/db/migrate/20220323195258_add_index_to_decidim_users_notifications_sending_frequency.rb +7 -0
  399. data/db/migrate/20220427142214_drop_emails_on_notifications_flag_from_user.rb +15 -0
  400. data/db/migrate/20220518094535_add_previous_passwords_to_users.rb +20 -0
  401. data/db/migrate/20220524195530_create_decidim_short_links.rb +23 -0
  402. data/db/seeds.rb +17 -18
  403. data/lib/decidim/acts_as_tree.rb +47 -0
  404. data/lib/decidim/api/input_sorts/component_input_sort.rb +2 -1
  405. data/lib/decidim/api/interfaces/authorable_interface.rb +6 -5
  406. data/lib/decidim/asset_router.rb +80 -0
  407. data/lib/decidim/attachment_attributes.rb +8 -8
  408. data/lib/decidim/attribute_object/form.rb +174 -0
  409. data/lib/decidim/attribute_object/model.rb +148 -0
  410. data/lib/decidim/attribute_object/nested_validator.rb +22 -0
  411. data/lib/decidim/attribute_object/type_map.rb +14 -0
  412. data/lib/decidim/attribute_object/type_resolver.rb +91 -0
  413. data/lib/decidim/attribute_object.rb +26 -0
  414. data/lib/decidim/attributes/array.rb +62 -0
  415. data/lib/decidim/attributes/blob.rb +20 -0
  416. data/lib/decidim/attributes/clean_string.rb +12 -6
  417. data/lib/decidim/attributes/hash.rb +36 -0
  418. data/lib/decidim/attributes/integer.rb +17 -0
  419. data/lib/decidim/attributes/localized_date.rb +9 -7
  420. data/lib/decidim/attributes/model.rb +24 -0
  421. data/lib/decidim/attributes/object.rb +28 -0
  422. data/lib/decidim/attributes/symbol.rb +23 -0
  423. data/lib/decidim/attributes/time_with_zone.rb +9 -7
  424. data/lib/decidim/attributes.rb +29 -0
  425. data/lib/decidim/authorable.rb +21 -6
  426. data/lib/decidim/authorization_form_builder.rb +9 -11
  427. data/lib/decidim/carrier_wave_migrator_service.rb +15 -15
  428. data/lib/decidim/coauthorable.rb +22 -4
  429. data/lib/decidim/command.rb +44 -0
  430. data/lib/decidim/common_passwords.rb +1 -1
  431. data/lib/decidim/component_manifest.rb +5 -5
  432. data/lib/decidim/component_validator.rb +2 -2
  433. data/lib/decidim/content_block_manifest.rb +1 -1
  434. data/lib/decidim/content_parsers/hashtag_parser.rb +2 -2
  435. data/lib/decidim/content_parsers/resource_parser.rb +1 -1
  436. data/lib/decidim/content_parsers/user_group_parser.rb +1 -1
  437. data/lib/decidim/content_parsers/user_parser.rb +4 -4
  438. data/lib/decidim/content_renderers/hashtag_renderer.rb +1 -1
  439. data/lib/decidim/content_renderers/link_renderer.rb +2 -2
  440. data/lib/decidim/content_renderers/user_group_renderer.rb +1 -1
  441. data/lib/decidim/content_renderers/user_renderer.rb +1 -1
  442. data/lib/decidim/controller_helpers.rb +41 -0
  443. data/lib/decidim/core/engine.rb +29 -18
  444. data/lib/decidim/core/test/factories.rb +48 -8
  445. data/lib/decidim/core/test/shared_examples/admin_resource_gallery_examples.rb +16 -4
  446. data/lib/decidim/core/test/shared_examples/amendable/amendment_form_examples.rb +1 -1
  447. data/lib/decidim/core/test/shared_examples/authorable_interface_examples.rb +15 -2
  448. data/lib/decidim/core/test/shared_examples/coauthorable_interface_examples.rb +2 -2
  449. data/lib/decidim/core/test/shared_examples/comments_examples.rb +203 -0
  450. data/lib/decidim/core/test/shared_examples/localised_email.rb +1 -1
  451. data/lib/decidim/core/test/shared_examples/logo_email.rb +1 -1
  452. data/lib/decidim/core/test/shared_examples/map_examples.rb +2 -2
  453. data/lib/decidim/core/test/shared_examples/preview_component_with_share_token_examples.rb +0 -6
  454. data/lib/decidim/core/test/shared_examples/resource_search_examples.rb +120 -40
  455. data/lib/decidim/core/test/shared_examples/resourceable.rb +0 -6
  456. data/lib/decidim/core/test/shared_examples/searchable_participatory_space_examples.rb +1 -1
  457. data/lib/decidim/core/test/shared_examples/searchable_resources_shared_context.rb +1 -1
  458. data/lib/decidim/core/test/shared_examples/system_endorse_resource_examples.rb +3 -3
  459. data/lib/decidim/core/test/shared_examples/translated_event_examples.rb +2 -2
  460. data/lib/decidim/core/version.rb +1 -1
  461. data/lib/decidim/core.rb +108 -14
  462. data/lib/decidim/{data_portability.rb → download_your_data.rb} +3 -3
  463. data/lib/decidim/{data_portability_serializers/data_portability_conversation_serializer.rb → download_your_data_serializers/download_your_data_conversation_serializer.rb} +2 -2
  464. data/lib/decidim/{data_portability_serializers/data_portability_follow_serializer.rb → download_your_data_serializers/download_your_data_follow_serializer.rb} +2 -2
  465. data/lib/decidim/{data_portability_serializers/data_portability_identity_serializer.rb → download_your_data_serializers/download_your_data_identity_serializer.rb} +2 -2
  466. data/lib/decidim/{data_portability_serializers/data_portability_notification_serializer.rb → download_your_data_serializers/download_your_data_notification_serializer.rb} +2 -2
  467. data/lib/decidim/{data_portability_serializers/data_portability_participatory_space_private_user_serializer.rb → download_your_data_serializers/download_your_data_participatory_space_private_user_serializer.rb} +2 -2
  468. data/lib/decidim/{data_portability_serializers/data_portability_report_serializer.rb → download_your_data_serializers/download_your_data_report_serializer.rb} +2 -2
  469. data/lib/decidim/{data_portability_serializers/data_portability_user_group_serializer.rb → download_your_data_serializers/download_your_data_user_group_serializer.rb} +2 -2
  470. data/lib/decidim/{data_portability_serializers/data_portability_user_serializer.rb → download_your_data_serializers/download_your_data_user_serializer.rb} +3 -3
  471. data/lib/decidim/download_your_data_serializers.rb +23 -0
  472. data/lib/decidim/engine_router.rb +7 -1
  473. data/lib/decidim/env.rb +56 -0
  474. data/lib/decidim/event_recorder.rb +25 -0
  475. data/lib/decidim/events/base_event.rb +10 -14
  476. data/lib/decidim/events/simple_event.rb +12 -4
  477. data/lib/decidim/exporters/export_data.rb +1 -1
  478. data/lib/decidim/exporters/export_manifest.rb +2 -1
  479. data/lib/decidim/file_validator_humanizer.rb +24 -1
  480. data/lib/decidim/filterable_resource.rb +55 -0
  481. data/lib/decidim/fingerprint_calculator.rb +2 -4
  482. data/lib/decidim/form_builder.rb +158 -130
  483. data/lib/decidim/gamification/badge.rb +2 -3
  484. data/lib/decidim/gamification/badge_scorer.rb +1 -0
  485. data/lib/decidim/has_area.rb +27 -0
  486. data/lib/decidim/has_attachments.rb +2 -2
  487. data/lib/decidim/has_category.rb +36 -0
  488. data/lib/decidim/importers/import_manifest.rb +3 -21
  489. data/lib/decidim/jsonb_attributes.rb +6 -4
  490. data/lib/decidim/manifest_messages.rb +23 -0
  491. data/lib/decidim/map/autocomplete.rb +6 -4
  492. data/lib/decidim/map/frontend.rb +2 -2
  493. data/lib/decidim/map/provider/geocoding/here.rb +5 -5
  494. data/lib/decidim/map/provider/here.rb +3 -0
  495. data/lib/decidim/map/provider/osm.rb +3 -0
  496. data/lib/decidim/map.rb +4 -4
  497. data/lib/decidim/menu.rb +1 -1
  498. data/lib/decidim/metric_manifest.rb +2 -2
  499. data/lib/decidim/nicknamizable.rb +1 -1
  500. data/lib/decidim/notification_setting_manifest.rb +19 -0
  501. data/lib/decidim/organization_settings.rb +8 -7
  502. data/lib/decidim/participatory_space_context_manifest.rb +2 -2
  503. data/lib/decidim/participatory_space_manifest.rb +2 -2
  504. data/lib/decidim/processes_file_locally.rb +31 -0
  505. data/lib/decidim/query.rb +84 -0
  506. data/lib/decidim/record_encryptor.rb +29 -8
  507. data/lib/decidim/reminder_manifest.rb +75 -0
  508. data/lib/decidim/reminder_registry.rb +67 -0
  509. data/lib/decidim/resource_manifest.rb +1 -1
  510. data/lib/decidim/resourceable.rb +11 -0
  511. data/lib/decidim/scopable.rb +15 -0
  512. data/lib/decidim/settings_manifest.rb +4 -4
  513. data/lib/decidim/spring.rb +16 -0
  514. data/lib/decidim/translatable_attributes.rb +12 -8
  515. data/lib/decidim/url_option_resolver.rb +50 -0
  516. data/lib/decidim/view_hooks.rb +1 -1
  517. data/lib/decidim/view_model.rb +5 -1
  518. data/lib/decidim/webpacker/thread_safe_compiler.rb +30 -0
  519. data/lib/decidim/webpacker/webpack/custom.js +15 -3
  520. data/lib/decidim/webpacker/webpacker.yml +1 -1
  521. data/lib/decidim/webpacker.rb +2 -0
  522. data/lib/devise/models/decidim_validatable.rb +1 -1
  523. data/lib/tasks/decidim_active_storage_migration_tasks.rake +1 -3
  524. data/lib/tasks/{decidim_data_portability_tasks.rake → decidim_download_your_data_tasks.rake} +9 -9
  525. data/lib/tasks/decidim_mailers_tasks.rake +23 -0
  526. data/lib/tasks/decidim_metrics_tasks.rake +1 -1
  527. data/lib/tasks/decidim_pwa_tasks.rake +18 -0
  528. data/lib/tasks/decidim_reminders_tasks.rake +17 -0
  529. data/lib/tasks/decidim_tasks.rake +6 -1
  530. data/lib/tasks/decidim_webpacker_tasks.rake +1 -1
  531. data/lib/tasks/upgrade/decidim_fix_nickname_uniqueness.rake +51 -0
  532. metadata +184 -83
  533. data/app/controllers/decidim/cookie_policy_controller.rb +0 -24
  534. data/app/helpers/decidim/cookies_helper.rb +0 -11
  535. data/app/packs/src/decidim/vizzs/renders.js +0 -9
  536. data/app/packs/src/decidim/vizzs.js +0 -1
  537. data/app/packs/stylesheets/decidim/modules/_cookie-bar.scss +0 -26
  538. data/app/services/decidim/home_activity_search.rb +0 -80
  539. data/app/services/decidim/participatory_space_search.rb +0 -54
  540. data/app/views/decidim/cookie_policy/accept.js.erb +0 -3
  541. data/app/views/decidim/export_mailer/data_portability_export.html.erb +0 -7
  542. data/lib/decidim/data_portability_serializers.rb +0 -23
  543. data/lib/decidim/middleware/rails_cookies.rb +0 -23
@@ -1,3 +1,4 @@
1
+ ---
1
2
  uk:
2
3
  activemodel:
3
4
  attributes:
@@ -35,18 +36,12 @@ uk:
35
36
  booleans:
36
37
  'false': 'Ні'
37
38
  'true': 'Так'
38
- carrierwave:
39
- errors:
40
- image_too_big: Зображення завелике
41
39
  date:
42
40
  formats:
43
41
  decidim_short: "%d.%m.%Y"
44
42
  decidim_with_month_name: "%d %B %Y"
45
43
  decidim:
46
44
  account:
47
- data_portability_export:
48
- file_no_exists: Файл не існує
49
- notice: Зараз відбувається збереження у вигляді файлу. Ви отримаєте електронного листа після його завершення.
50
45
  delete:
51
46
  confirm:
52
47
  close: Закрити вікно
@@ -57,6 +52,9 @@ uk:
57
52
  destroy:
58
53
  error: При спробі видалити ваш обліковий запис сталася помилка.
59
54
  success: Ваш обліковий запис успішно видалено.
55
+ download_your_data_export:
56
+ file_no_exists: Файл не існує
57
+ notice: Зараз відбувається збереження у вигляді файлу. Ви отримаєте електронного листа після його завершення.
60
58
  show:
61
59
  change_password: Змінити пароль
62
60
  update_account: Оновити обліковий запис
@@ -185,13 +183,13 @@ uk:
185
183
  settings:
186
184
  global:
187
185
  comments_enabled: Коментарі увімкнено
188
- dummy_global_attribute_1: Приклад властивості 1
189
- dummy_global_attribute_2: Приклад властивості 2
186
+ dummy_global_attribute1: Приклад властивості 1
187
+ dummy_global_attribute2: Приклад властивості 2
190
188
  resources_permissions_enabled: Дозволи ресурсів увімкнуто
191
189
  step:
192
190
  comments_blocked: Коментарі вимкнено
193
- dummy_step_attribute_1: Приклад 1 властивості кроку
194
- dummy_step_attribute_2: Приклад 2 властивості кроку
191
+ dummy_step_attribute1: Приклад 1 властивості кроку
192
+ dummy_step_attribute2: Приклад 2 властивості кроку
195
193
  contact: Зв'язатися
196
194
  content_blocks:
197
195
  footer_sub_hero:
@@ -209,12 +207,6 @@ uk:
209
207
  core:
210
208
  actions:
211
209
  unauthorized: Ви не маєте прав на виконання цієї дії
212
- data_portability:
213
- export:
214
- ready: Готово
215
- show:
216
- download_data: Завантажити дані
217
- request_data: Подати запит на дані
218
210
  devise:
219
211
  omniauth_registrations:
220
212
  create:
@@ -267,6 +259,12 @@ uk:
267
259
  this_application_will_not_be_able_to: 'Цей додаток не зможе:'
268
260
  update_profile: Оновлювати ваш профіль
269
261
  wants_to_use_your_account_html: "<strong>%{application_name}</strong> бажає використовувати ваш обліковий запис"
262
+ download_your_data:
263
+ export:
264
+ ready: Готово
265
+ show:
266
+ download_data: Завантажити дані
267
+ request_data: Подати запит на дані
270
268
  endorsable:
271
269
  endorsements: Проявів підтримки
272
270
  errors:
@@ -304,7 +302,7 @@ uk:
304
302
  email_subject: "%{nickname} оновив свій профіль"
305
303
  notification_title: Сторінка <a href="%{resource_path}">профілю</a> учасника %{name} (%{nickname}), за яким ви стежите, була оновлена.
306
304
  export_mailer:
307
- data_portability_export:
305
+ download_your_data_export:
308
306
  download: Завантажити
309
307
  export:
310
308
  ready: Нижче додається стиснута в архів версія вашого збереженого файлу.
@@ -337,12 +335,10 @@ uk:
337
335
  button: Припинити стежити
338
336
  error: При спробі припинити стежити за цим ресурсом сталася помилка.
339
337
  forms:
340
- current_file: Поточний файл
341
338
  current_image: Поточне зображення
342
339
  default_image: Зображення за замовчуванням
343
340
  errors:
344
341
  error: У цьому полі є помилка.
345
- remove_this_file: Видалити цей файл
346
342
  log:
347
343
  base_presenter:
348
344
  create: "%{user_name} створив %{resource_name}"
@@ -419,7 +415,6 @@ uk:
419
415
  no_notifications: Ще немає сповіщень.
420
416
  notifications_settings:
421
417
  show:
422
- email_on_notification: Я хочу отримувати листа електронною поштою кожного разу, коли отримую сповіщення.
423
418
  newsletter_notifications: Я хочу отримувати розсилання
424
419
  update_notifications_settings: Зберегти зміни
425
420
  update:
@@ -459,7 +454,6 @@ uk:
459
454
  form:
460
455
  legend: Погодитися з умовами участі
461
456
  refuse:
462
- modal_body: Якщо ви відмовитеся, ви не зможете використовувати майданчик, ви можете <a href="%{data_portability_path}">завантажити свої дані</a> і / або <a href="%{delete_path}">видалити свій обліковий запис</a>.
463
457
  modal_btn_continue: Прийняти умови та продовжити
464
458
  modal_btn_exit: Я перегляну це пізніше
465
459
  modal_button: Відмовитися від умов участі
@@ -551,7 +545,6 @@ uk:
551
545
  invitations:
552
546
  edit:
553
547
  header: Завершіть створення свого облікового запису
554
- nickname_help: Ваш унікальний псевдонім в %{organization}.
555
548
  submit_button: Зберегти
556
549
  subtitle: Якщо ви приймаєте запрошення, встановіть, будь ласка, свій псевдонім та пароль.
557
550
  mailer:
@@ -598,10 +591,6 @@ uk:
598
591
  timestamp_error_message: Вибачте, це було занадто швидко! Будь ласка, подайте повідомлення знову.
599
592
  layouts:
600
593
  decidim:
601
- cookie_warning:
602
- description_html: На цьому сайті використовуються реп'яшки (куки). Продовжуючи переглядати сайт, ви погоджуєтеся з нашим використанням реп'яшків. Дізнайтеся про це більше %{link}.
603
- link_label: тут
604
- ok: Я погоджуюся
605
594
  edit_link:
606
595
  edit: Редагувати
607
596
  footer:
@@ -1 +1,2 @@
1
+ ---
1
2
  val:
@@ -1 +1,2 @@
1
+ ---
1
2
  vi:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  zh-CN:
2
3
  activemodel:
3
4
  attributes:
@@ -58,7 +59,6 @@ zh-CN:
58
59
  'true': '否'
59
60
  carrierwave:
60
61
  errors:
61
- image_too_big: 图片过大
62
62
  not_inside_organization: 该文件没有附加到任何组织
63
63
  date:
64
64
  formats:
@@ -71,9 +71,6 @@ zh-CN:
71
71
  logo: "%{organization}的官方标志"
72
72
  skip_button: 跳转到主要内容
73
73
  account:
74
- data_portability_export:
75
- file_no_exists: 文件不存在
76
- notice: 目前正在下载您的数据。完成后,您将收到一封电子邮件。
77
74
  delete:
78
75
  confirm:
79
76
  close: 关闭窗口
@@ -84,6 +81,9 @@ zh-CN:
84
81
  destroy:
85
82
  error: 删除您的帐户时出错。
86
83
  success: 您的帐户已成功删除。
84
+ download_your_data_export:
85
+ file_no_exists: 文件不存在
86
+ notice: 目前正在下载您的数据。完成后,您将收到一封电子邮件。
87
87
  show:
88
88
  change_password: 更改密码
89
89
  update_account: 更新帐户
@@ -324,8 +324,8 @@ zh-CN:
324
324
  amendments_enabled: 修改已启用
325
325
  comments_enabled: 评论已启用
326
326
  comments_max_length: 评论最大长度
327
- dummy_global_attribute_1: 虚拟属性 1
328
- dummy_global_attribute_2: 虚拟属性 2
327
+ dummy_global_attribute1: 虚拟属性 1
328
+ dummy_global_attribute2: 虚拟属性 2
329
329
  dummy_global_translatable_text: 虚拟可翻译文本
330
330
  enable_pads_creation: 启用页面创建
331
331
  resources_permissions_enabled: 资源权限已启用
@@ -337,8 +337,8 @@ zh-CN:
337
337
  amendment_reaction_enabled: 修正反应已启用
338
338
  amendments_visibility: 修正可见性
339
339
  comments_blocked: 评论已阻止
340
- dummy_step_attribute_1: 虚拟步骤属性 1
341
- dummy_step_attribute_2: 虚拟步骤属性 2
340
+ dummy_step_attribute1: 虚拟步骤属性 1
341
+ dummy_step_attribute2: 虚拟步骤属性 2
342
342
  dummy_step_translatable_text: 虚拟步骤可翻译文本
343
343
  contact: 聯繫人
344
344
  content_blocks:
@@ -370,12 +370,6 @@ zh-CN:
370
370
  actions:
371
371
  login_before_access: 请在访问前使用您的帐户登录
372
372
  unauthorized: 您无权执行此操作
373
- data_portability:
374
- export:
375
- ready: 准备好
376
- show:
377
- download_data: 下载数据
378
- request_data: 请求数据
379
373
  datepicker:
380
374
  help_text: '预期格式: %{datepicker_format}'
381
375
  devise:
@@ -392,7 +386,6 @@ zh-CN:
392
386
  already_have_an_account?: 已经有一个帐户?
393
387
  newsletter: 接收附带相关信息的时事通讯
394
388
  newsletter_title: 联系人权限
395
- password_help: "%{minimun_characters} 个字符,必须不要太常见(例如,123456),并且必须不同于您的昵称和电子邮件。"
396
389
  sign_in: 登录
397
390
  sign_up: 注册
398
391
  sign_up_as:
@@ -432,6 +425,12 @@ zh-CN:
432
425
  this_application_will_not_be_able_to: '此应用程序将无法:'
433
426
  update_profile: 更新您的个人资料
434
427
  wants_to_use_your_account_html: "<strong>%{application_name}</strong> 想要使用您的帐户"
428
+ download_your_data:
429
+ export:
430
+ ready: 准备好
431
+ show:
432
+ download_data: 下载数据
433
+ request_data: 请求数据
435
434
  endorsable:
436
435
  endorsements: 授权
437
436
  endorsements_count: 批准次数
@@ -582,7 +581,7 @@ zh-CN:
582
581
  email_subject: "%{nickname} 更新了他们的个人资料"
583
582
  notification_title: 您关注的 %{name} (%{nickname}) 的 <a href="%{resource_path}">个人资料页面</a> 已经更新。
584
583
  export_mailer:
585
- data_portability_export:
584
+ download_your_data_export:
586
585
  download: 下载
587
586
  export:
588
587
  ready: 请找到您导出的压缩版本。
@@ -618,7 +617,6 @@ zh-CN:
618
617
  button: 停止关注
619
618
  error: 出现了一个不关注此资源的问题。
620
619
  forms:
621
- current_file: 当前文件
622
620
  current_image: 当前图像
623
621
  default_image: 默认图像
624
622
  errors:
@@ -637,7 +635,6 @@ zh-CN:
637
635
  file_validation:
638
636
  allowed_file_extensions: '允许的文件扩展名: %{extensions}'
639
637
  max_file_size: '最大文件大小: %{megabytes}MB'
640
- remove_this_file: 删除此文件
641
638
  gamification:
642
639
  all_badges_link: 查看所有可用的徽章。
643
640
  badges:
@@ -750,7 +747,6 @@ zh-CN:
750
747
  no_user_groups: 尚不属于任何群组。
751
748
  roles:
752
749
  admin: 管理员
753
- creator: 创建者
754
750
  member: 成员
755
751
  update:
756
752
  error: 更新群组时出错
@@ -941,13 +937,11 @@ zh-CN:
941
937
  show:
942
938
  allow_public_contact: 允许任何人向我发送一条直接消息,即使我没有关注它们。
943
939
  direct_messages: 从任何人接收私信
944
- email_on_notification: 每次我收到通知时,我都想收到一封电子邮件。
945
940
  everything_followed: 我关注的所有情况
946
941
  newsletter_notifications: 我想要收到新闻简报
947
942
  newsletters: 新闻通讯
948
943
  own_activity: 我自己的活动,例如当有人在我的建议中评论或提到我时
949
944
  receive_notifications_about: 我想要获取通知关于
950
- send_notifications_by_email: 通过电子邮件发送通知
951
945
  update_notifications_settings: 保存更改
952
946
  update:
953
947
  error: 更新您的通知设置时出现问题。
@@ -1005,7 +999,6 @@ zh-CN:
1005
999
  agreement: 我同意这些条款
1006
1000
  legend: 同意使用条款
1007
1001
  refuse:
1008
- modal_body: 如果您拒绝,您将无法使用平台,您可以 <a href="%{data_portability_path}">下载您的数据</a> 和/或 <a href="%{delete_path}">删除您的帐户</a>。
1009
1002
  modal_btn_continue: 接受并继续
1010
1003
  modal_btn_exit: 我稍后再查看
1011
1004
  modal_button: 拒绝条款
@@ -1269,7 +1262,6 @@ zh-CN:
1269
1262
  invitations:
1270
1263
  edit:
1271
1264
  header: 完成创建您的帐户
1272
- nickname_help: 您在 %{organization} 中的昵称。
1273
1265
  submit_button: 保存
1274
1266
  subtitle: 如果您接受邀请,请设置您的昵称和密码。
1275
1267
  invitation_removed: 您的邀请已被删除。
@@ -1336,7 +1328,6 @@ zh-CN:
1336
1328
  passwords:
1337
1329
  edit:
1338
1330
  change_my_password: 更改我的密码
1339
- change_your_password: 更改您的密码
1340
1331
  confirm_new_password: 确认新密码
1341
1332
  new_password: 新密码
1342
1333
  password_help: "%{minimun_characters} 个字符,必须不要太常见(例如,123456),并且必须不同于您的昵称和电子邮件。"
@@ -1421,10 +1412,6 @@ zh-CN:
1421
1412
  timestamp_error_message: 对不起,这太快了!请重新提交。
1422
1413
  layouts:
1423
1414
  decidim:
1424
- cookie_warning:
1425
- description_html: 此网站使用 cookies。通过继续浏览网站,您同意我们使用 cookies。 %{link}。
1426
- link_label: 了解更多关于 cookie
1427
- ok: 我同意
1428
1415
  edit_link:
1429
1416
  edit: 编辑
1430
1417
  footer:
@@ -1 +1,2 @@
1
+ ---
1
2
  zh-TW:
data/config/routes.rb CHANGED
@@ -3,6 +3,8 @@
3
3
  Decidim::Core::Engine.routes.draw do
4
4
  mount Decidim::Api::Engine => "/api"
5
5
 
6
+ get "/offline", to: "offline#show"
7
+
6
8
  devise_for :users,
7
9
  class_name: "Decidim::User",
8
10
  module: :devise,
@@ -29,6 +31,8 @@ Decidim::Core::Engine.routes.draw do
29
31
  post "omniauth_registrations" => "devise/omniauth_registrations#create"
30
32
  end
31
33
 
34
+ resource :manifest, only: [:show]
35
+
32
36
  resource :locale, only: [:create]
33
37
 
34
38
  Decidim.participatory_space_manifests.each do |manifest|
@@ -43,9 +47,16 @@ Decidim::Core::Engine.routes.draw do
43
47
  end
44
48
 
45
49
  authenticate(:user) do
50
+ devise_scope :user do
51
+ get "change_password" => "devise/passwords"
52
+ put "apply_password" => "devise/passwords"
53
+ end
54
+
46
55
  resource :account, only: [:show, :update, :destroy], controller: "account" do
47
56
  member do
48
57
  get :delete
58
+ post :resend_confirmation_instructions
59
+ post :cancel_email_change
49
60
  end
50
61
  end
51
62
  resources :conversations, only: [:new, :create, :index, :show, :update], controller: "messaging/conversations"
@@ -60,13 +71,14 @@ Decidim::Core::Engine.routes.draw do
60
71
 
61
72
  get "/newsletters_opt_in/:token", to: "newsletters_opt_in#update", as: :newsletters_opt_in
62
73
 
63
- resource :data_portability, only: [:show], controller: "data_portability" do
74
+ resource :download_your_data, only: [:show], controller: "download_your_data" do
64
75
  member do
65
76
  post :export
66
77
  get :download_file
67
78
  end
68
79
  end
69
80
 
81
+ resources :notifications_subscriptions, param: :auth, only: [:create, :destroy]
70
82
  resource :user_interests, only: [:show, :update]
71
83
 
72
84
  get "/authorization_modals/:authorization_action/f/:component_id(/:resource_name/:resource_id)", to: "authorization_modals#show", as: :authorization_modal
@@ -123,7 +135,6 @@ Decidim::Core::Engine.routes.draw do
123
135
  get "/scopes/picker", to: "scopes#picker", as: :scopes_picker
124
136
 
125
137
  get "/static_map", to: "static_map#show", as: :static_map
126
- get "/cookies/accept", to: "cookie_policy#accept", as: :accept_cookies
127
138
  put "/pages/terms-and-conditions/accept", to: "tos#accept_tos", as: :accept_tos
128
139
 
129
140
  match "/404", to: "errors#not_found", via: :all
@@ -166,8 +177,12 @@ Decidim::Core::Engine.routes.draw do
166
177
  get :unsubscribe, on: :collection
167
178
  end
168
179
 
180
+ resources :upload_validations, only: [:create]
181
+
169
182
  resources :last_activities, only: [:index]
170
183
 
184
+ resources :short_links, only: [:index, :show], path: "s"
185
+
171
186
  use_doorkeeper do
172
187
  skip_controllers :applications, :authorized_applications
173
188
  end
@@ -5,6 +5,7 @@ class AddAcceptedTosVersionFieldToUsers < ActiveRecord::Migration[5.1]
5
5
  self.table_name = :decidim_organizations
6
6
  has_many :users, foreign_key: "decidim_organization_id", class_name: "Decidim::User", dependent: :destroy
7
7
  end
8
+
8
9
  class User < ApplicationRecord
9
10
  self.table_name = :decidim_users
10
11
  belongs_to :organization, foreign_key: "decidim_organization_id", class_name: "Decidim::Organization"
@@ -4,6 +4,7 @@ class DestroyDeletedUsersFollows < ActiveRecord::Migration[5.2]
4
4
  class Follow < ApplicationRecord
5
5
  self.table_name = "decidim_follows"
6
6
  end
7
+
7
8
  class User < ApplicationRecord
8
9
  self.table_name = "decidim_users"
9
10
  end
@@ -9,10 +9,10 @@ class FixUserNames < ActiveRecord::Migration[5.2]
9
9
 
10
10
  weird_characters.each do |character|
11
11
  Decidim::UserBaseEntity.where(deleted_at: nil).where("name like '%#{character}%' escape '\' OR nickname like '%#{character}%' escape '\'").find_each do |entity|
12
- Rails.logger.debug "detected character: #{character}"
13
- Rails.logger.debug "UserBaseEntity ID: #{entity.id}"
14
- Rails.logger.debug "#{entity.name} => #{entity.name.delete(characters_to_remove).strip}"
15
- Rails.logger.debug "#{entity.nickname} => #{entity.nickname.delete(characters_to_remove).strip}"
12
+ Rails.logger.debug { "detected character: #{character}" }
13
+ Rails.logger.debug { "UserBaseEntity ID: #{entity.id}" }
14
+ Rails.logger.debug { "#{entity.name} => #{entity.name.delete(characters_to_remove).strip}" }
15
+ Rails.logger.debug { "#{entity.nickname} => #{entity.nickname.delete(characters_to_remove).strip}" }
16
16
 
17
17
  entity.name = entity.name.delete(characters_to_remove).strip
18
18
  sanitized_nickname = entity.nickname.delete(characters_to_remove).strip
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This migration comes from active_storage (originally 20190112182829)
4
+ class AddServiceNameToActiveStorageBlobs < ActiveRecord::Migration[6.0]
5
+ def up
6
+ return if column_exists?(:active_storage_blobs, :service_name)
7
+
8
+ add_column :active_storage_blobs, :service_name, :string
9
+ # rubocop:disable Lint/AssignmentInCondition
10
+ # rubocop:disable Rails/SkipsModelValidations
11
+ if configured_service = ActiveStorage::Blob.service.name
12
+ ActiveStorage::Blob.unscoped.update_all(service_name: configured_service)
13
+ end
14
+ # rubocop:enable Lint/AssignmentInCondition
15
+ # rubocop:enable Rails/SkipsModelValidations
16
+ change_column :active_storage_blobs, :service_name, :string, null: false
17
+ end
18
+
19
+ def down
20
+ remove_column :active_storage_blobs, :service_name
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This migration comes from active_storage (originally 20191206030411)
4
+ class CreateActiveStorageVariantRecords < ActiveRecord::Migration[6.0]
5
+ def change
6
+ create_table :active_storage_variant_records do |t|
7
+ t.belongs_to :blob, null: false, index: false
8
+ t.string :variation_digest, null: false
9
+
10
+ t.index [:blob_id, :variation_digest], name: "index_active_storage_variant_records_uniqueness", unique: true
11
+ t.foreign_key :active_storage_blobs, column: :blob_id
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateDecidimReminders < ActiveRecord::Migration[6.0]
4
+ def change
5
+ create_table :decidim_reminders do |t|
6
+ t.belongs_to :decidim_user, index: true, foreign_key: true, null: false
7
+ t.belongs_to :decidim_component, index: true, foreign_key: true
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateDecidimReminderRecords < ActiveRecord::Migration[6.0]
4
+ def change
5
+ create_table :decidim_reminder_records do |t|
6
+ t.string :state, :string, index: true, default: "active"
7
+ t.belongs_to :decidim_reminder, index: true, foreign_key: true
8
+ t.belongs_to :remindable, polymorphic: true, null: false, index: { name: "index_decidim_reminder_records_remindable" }
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateDecidimReminderDeliveries < ActiveRecord::Migration[6.0]
4
+ def change
5
+ create_table :decidim_reminder_deliveries do |t|
6
+ t.belongs_to :decidim_reminder, index: true, foreign_key: true
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ChangeRequiredDescriptionCategories < ActiveRecord::Migration[6.0]
4
+ def change
5
+ change_column_null :decidim_categories, :description, true
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddNotificationSettingsToUsers < ActiveRecord::Migration[6.0]
4
+ def change
5
+ add_column :decidim_users, :notification_settings, :jsonb, default: {}
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddNotificationsSendingFrequencyToUsers < ActiveRecord::Migration[6.0]
4
+ def change
5
+ add_column :decidim_users, :notifications_sending_frequency, :string, default: "daily", index: true
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddDigestSentAtToUsers < ActiveRecord::Migration[6.0]
4
+ def change
5
+ add_column :decidim_users, :digest_sent_at, :datetime
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddIndexToDecidimUsersNotificationsSendingFrequency < ActiveRecord::Migration[6.0]
4
+ def change
5
+ add_index :decidim_users, :notifications_sending_frequency
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ class DropEmailsOnNotificationsFlagFromUser < ActiveRecord::Migration[5.1]
4
+ class DecidimUser < ApplicationRecord
5
+ self.table_name = :decidim_users
6
+ end
7
+
8
+ def change
9
+ # rubocop:disable Rails/SkipsModelValidations
10
+ DecidimUser.where(email_on_notification: true).update_all(notifications_sending_frequency: "real_time")
11
+ # rubocop:enable Rails/SkipsModelValidations
12
+
13
+ remove_column :decidim_users, :email_on_notification
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddPreviousPasswordsToUsers < ActiveRecord::Migration[6.1]
4
+ class User < ApplicationRecord
5
+ self.table_name = :decidim_users
6
+ end
7
+
8
+ def change
9
+ add_column :decidim_users, :password_updated_at, :datetime
10
+ add_column :decidim_users, :previous_passwords, :string, array: true, default: []
11
+
12
+ reversible do |direction|
13
+ direction.up do
14
+ # rubocop:disable Rails/SkipsModelValidations
15
+ User.update_all("password_updated_at = updated_at")
16
+ # rubocop:enable Rails/SkipsModelValidations
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateDecidimShortLinks < ActiveRecord::Migration[6.1]
4
+ def change
5
+ create_table :decidim_short_links do |t|
6
+ t.references :decidim_organization, null: false, index: true
7
+ t.references :target, polymorphic: true, null: false, index: true
8
+ t.string :identifier, limit: 10, null: false
9
+ t.string :mounted_engine_name, index: true
10
+ t.string :route_name, index: true
11
+ t.jsonb :params
12
+
13
+ t.timestamps
14
+ end
15
+
16
+ add_index(
17
+ :decidim_short_links,
18
+ [:decidim_organization_id, :identifier],
19
+ unique: true,
20
+ name: "idx_decidim_short_links_organization_id_identifier"
21
+ )
22
+ end
23
+ end