decidim-core 0.23.3 → 0.24.0.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim-core might be problematic. Click here for more details.

Files changed (444) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/assets/images/decidim/icons.svg +1 -1
  4. data/app/assets/javascripts/decidim.js.es6 +1 -0
  5. data/app/assets/javascripts/decidim/core/bundle.js +1 -1
  6. data/app/assets/javascripts/decidim/core/bundle.js.map +1 -1
  7. data/app/assets/javascripts/decidim/editor.js.es6 +15 -4
  8. data/app/assets/javascripts/decidim/editor/history_override.js.es6 +117 -0
  9. data/app/assets/javascripts/decidim/editor/linebreak_module.js.es6 +83 -0
  10. data/app/assets/javascripts/decidim/editor/modified_backspace_offset1.js.es6 +98 -0
  11. data/app/assets/javascripts/decidim/editor/modified_backspace_offset_any.js.es6 +48 -0
  12. data/app/assets/javascripts/decidim/editor/modified_backspace_utils.js.es6 +31 -0
  13. data/app/assets/javascripts/decidim/editor/modified_enter.js.es6 +118 -0
  14. data/app/assets/javascripts/decidim/form_filter.component.js.es6 +25 -0
  15. data/app/assets/javascripts/decidim/geocoding/attach_input.js.es6 +41 -4
  16. data/app/assets/javascripts/decidim/input_character_counter.js.es6 +6 -1
  17. data/app/assets/javascripts/decidim/map/controller/markers.js.es6 +27 -9
  18. data/app/assets/javascripts/decidim/session_timeouter.js.es6 +78 -0
  19. data/app/assets/stylesheets/decidim/_variables.scss +9 -0
  20. data/app/assets/stylesheets/decidim/email.scss +14 -2
  21. data/app/assets/stylesheets/decidim/extras/_external-links.scss +0 -1
  22. data/app/assets/stylesheets/decidim/extras/_process_stats.scss +1 -1
  23. data/app/assets/stylesheets/decidim/extras/_results-per-page.scss +1 -0
  24. data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +2 -2
  25. data/app/assets/stylesheets/decidim/modules/_buttons.scss +2 -2
  26. data/app/assets/stylesheets/decidim/modules/_cards.scss +18 -1
  27. data/app/assets/stylesheets/decidim/modules/_collapsible-list.scss +1 -1
  28. data/app/assets/stylesheets/decidim/modules/_comments.scss +5 -1
  29. data/app/assets/stylesheets/decidim/modules/_conference-speaker.scss +4 -3
  30. data/app/assets/stylesheets/decidim/modules/_data-picker.scss +7 -0
  31. data/app/assets/stylesheets/decidim/modules/_extra.scss +4 -0
  32. data/app/assets/stylesheets/decidim/modules/_forms.scss +4 -0
  33. data/app/assets/stylesheets/decidim/modules/_loading-spinner.scss +34 -0
  34. data/app/assets/stylesheets/decidim/modules/_modules.scss +1 -1
  35. data/app/assets/stylesheets/decidim/modules/_opinion-toggle.scss +1 -1
  36. data/app/assets/stylesheets/decidim/modules/_reveal.scss +6 -0
  37. data/app/assets/stylesheets/decidim/modules/_signup.scss +1 -0
  38. data/app/assets/stylesheets/decidim/modules/{_process-stats.scss → _space-stats.scss} +1 -1
  39. data/app/cells/decidim/activity_cell.rb +11 -8
  40. data/app/cells/decidim/announcement/show.erb +4 -4
  41. data/app/cells/decidim/announcement_cell.rb +22 -2
  42. data/app/cells/decidim/author/flag_user.erb +10 -0
  43. data/app/cells/decidim/author/profile_minicard.erb +1 -1
  44. data/app/cells/decidim/author_cell.rb +9 -1
  45. data/app/cells/decidim/card_m/top.erb +1 -1
  46. data/app/cells/decidim/card_m_cell.rb +1 -1
  47. data/app/cells/decidim/content_blocks/cta/show.erb +14 -0
  48. data/app/cells/decidim/content_blocks/cta_cell.rb +35 -0
  49. data/app/cells/decidim/content_blocks/cta_settings_form/show.erb +9 -0
  50. data/app/cells/decidim/content_blocks/cta_settings_form_cell.rb +13 -0
  51. data/app/cells/decidim/content_blocks/hero_cell.rb +14 -0
  52. data/app/cells/decidim/content_blocks/highlighted_elements/elements.erb +0 -0
  53. data/app/cells/decidim/content_blocks/highlighted_elements/heading.erb +0 -0
  54. data/app/cells/decidim/content_blocks/highlighted_elements/show.erb +4 -0
  55. data/app/cells/decidim/content_blocks/highlighted_elements_cell.rb +51 -0
  56. data/app/cells/decidim/content_blocks/highlighted_elements_settings_form/show.erb +3 -0
  57. data/app/cells/decidim/content_blocks/highlighted_elements_settings_form_cell.rb +28 -0
  58. data/app/cells/decidim/content_blocks/last_activity_cell.rb +11 -0
  59. data/app/cells/decidim/content_blocks/metrics_cell.rb +0 -6
  60. data/app/cells/decidim/content_blocks/stats_cell.rb +0 -6
  61. data/app/cells/decidim/date/show.erb +31 -0
  62. data/app/cells/decidim/date_cell.rb +50 -0
  63. data/app/cells/decidim/endorsement_buttons_cell.rb +3 -3
  64. data/app/cells/decidim/flag_modal/flag_user.erb +24 -0
  65. data/app/cells/decidim/flag_modal/show.erb +24 -0
  66. data/app/cells/decidim/flag_modal_cell.rb +25 -0
  67. data/app/cells/decidim/profile/inaccessible.erb +9 -0
  68. data/app/cells/decidim/profile_cell.rb +9 -1
  69. data/app/cells/decidim/profile_sidebar/show.erb +10 -1
  70. data/app/cells/decidim/profile_sidebar_cell.rb +1 -0
  71. data/app/cells/decidim/reported_content/show.erb +5 -0
  72. data/app/cells/decidim/reported_content_cell.rb +44 -0
  73. data/app/cells/decidim/scopes_picker/scope_picker_prompt.erb +3 -0
  74. data/app/cells/decidim/scopes_picker/scope_picker_values.erb +5 -0
  75. data/app/cells/decidim/scopes_picker/show.erb +14 -0
  76. data/app/cells/decidim/scopes_picker_cell.rb +93 -0
  77. data/app/cells/decidim/tos_page/announcement.erb +1 -1
  78. data/app/cells/decidim/tos_page/form.erb +15 -13
  79. data/app/cells/decidim/tos_page_cell.rb +10 -8
  80. data/app/cells/decidim/translation_bar_cell.rb +1 -1
  81. data/app/cells/decidim/user_conversation/conversation_header.erb +1 -1
  82. data/app/cells/decidim/user_conversations_cell.rb +1 -1
  83. data/app/commands/decidim/create_report.rb +11 -1
  84. data/app/commands/decidim/create_user_report.rb +67 -0
  85. data/app/commands/decidim/gallery_methods.rb +2 -2
  86. data/app/commands/decidim/multiple_attachments_methods.rb +14 -10
  87. data/app/commands/decidim/search.rb +5 -2
  88. data/app/commands/decidim/update_notifications_settings.rb +1 -0
  89. data/app/commands/decidim/update_user_group.rb +1 -0
  90. data/app/controllers/concerns/decidim/devise_controllers.rb +1 -0
  91. data/app/controllers/concerns/decidim/flaggable.rb +5 -1
  92. data/app/controllers/concerns/decidim/force_authentication.rb +11 -3
  93. data/app/controllers/concerns/decidim/locale_switcher.rb +5 -0
  94. data/app/controllers/concerns/decidim/needs_permission.rb +7 -1
  95. data/app/controllers/concerns/decidim/orderable.rb +3 -1
  96. data/app/controllers/concerns/decidim/user_blocked_checker.rb +26 -0
  97. data/app/controllers/decidim/application_controller.rb +22 -0
  98. data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +3 -1
  99. data/app/controllers/decidim/devise/sessions_controller.rb +10 -6
  100. data/app/controllers/decidim/errors_controller.rb +1 -1
  101. data/app/controllers/decidim/locales_controller.rb +1 -1
  102. data/app/controllers/decidim/profiles_controller.rb +6 -0
  103. data/app/controllers/decidim/report_users_controller.rb +42 -0
  104. data/app/controllers/decidim/scopes_controller.rb +19 -10
  105. data/app/controllers/decidim/timeouts_controller.rb +28 -0
  106. data/app/controllers/decidim/user_activities_controller.rb +5 -0
  107. data/app/controllers/decidim/user_timeline_controller.rb +1 -0
  108. data/app/events/decidim/demoted_membership_event.rb +2 -2
  109. data/app/events/decidim/invited_to_group_event.rb +2 -2
  110. data/app/events/decidim/join_request_accepted_event.rb +2 -2
  111. data/app/events/decidim/join_request_created_event.rb +2 -2
  112. data/app/events/decidim/join_request_rejected_event.rb +2 -2
  113. data/app/events/decidim/promoted_to_admin_event.rb +2 -2
  114. data/app/events/decidim/removed_from_group_event.rb +2 -2
  115. data/app/forms/decidim/account_form.rb +1 -1
  116. data/app/forms/decidim/invite_user_form.rb +2 -2
  117. data/app/forms/decidim/messaging/conversation_form.rb +1 -1
  118. data/app/forms/decidim/messaging/message_form.rb +1 -1
  119. data/app/forms/decidim/notifications_settings_form.rb +20 -0
  120. data/app/forms/url_validator.rb +20 -0
  121. data/app/helpers/decidim/action_authorization_helper.rb +2 -0
  122. data/app/helpers/decidim/application_helper.rb +1 -2
  123. data/app/helpers/decidim/cells_helper.rb +6 -0
  124. data/app/helpers/decidim/filters_helper.rb +9 -0
  125. data/app/helpers/decidim/messaging/conversation_helper.rb +11 -1
  126. data/app/helpers/decidim/newsletters_helper.rb +7 -9
  127. data/app/helpers/decidim/scopes_helper.rb +1 -1
  128. data/app/jobs/decidim/block_user_job.rb +11 -0
  129. data/app/jobs/decidim/export_job.rb +2 -2
  130. data/app/jobs/decidim/find_and_update_descendants_job.rb +48 -0
  131. data/app/jobs/decidim/machine_translation_resource_job.rb +3 -0
  132. data/app/jobs/decidim/machine_translation_save_job.rb +29 -0
  133. data/app/jobs/decidim/update_search_indexes_job.rb +11 -0
  134. data/app/jobs/decidim/user_report_job.rb +11 -0
  135. data/app/mailers/decidim/block_user_mailer.rb +21 -0
  136. data/app/mailers/decidim/reported_mailer.rb +33 -3
  137. data/app/mailers/decidim/user_report_mailer.rb +21 -0
  138. data/app/models/decidim/area.rb +0 -1
  139. data/app/models/decidim/area_type.rb +1 -1
  140. data/app/models/decidim/attachment.rb +3 -2
  141. data/app/models/decidim/attachment_collection.rb +1 -1
  142. data/app/models/decidim/authorization.rb +4 -0
  143. data/app/models/decidim/category.rb +6 -1
  144. data/app/models/decidim/impersonation_log.rb +5 -7
  145. data/app/models/decidim/metric.rb +2 -2
  146. data/app/models/decidim/moderation.rb +12 -0
  147. data/app/models/decidim/organization.rb +5 -1
  148. data/app/models/decidim/scope.rb +5 -2
  149. data/app/models/decidim/scope_type.rb +1 -1
  150. data/app/models/decidim/share_token.rb +1 -1
  151. data/app/models/decidim/static_page.rb +11 -1
  152. data/app/models/decidim/static_page_topic.rb +4 -0
  153. data/app/models/decidim/user.rb +12 -1
  154. data/app/models/decidim/user_base_entity.rb +12 -12
  155. data/app/models/decidim/user_block.rb +10 -0
  156. data/app/models/decidim/user_group.rb +1 -0
  157. data/app/models/decidim/user_moderation.rb +22 -0
  158. data/app/models/decidim/user_report.rb +31 -0
  159. data/app/permissions/decidim/permissions.rb +1 -3
  160. data/app/permissions/decidim/report_user_permissions.rb +13 -0
  161. data/app/presenters/decidim/admin_log/impersonation_log_presenter.rb +39 -0
  162. data/app/presenters/decidim/admin_log/organization_presenter.rb +1 -2
  163. data/app/presenters/decidim/admin_log/user_moderation_presenter.rb +63 -0
  164. data/app/presenters/decidim/admin_log/user_presenter.rb +18 -9
  165. data/app/presenters/decidim/home_stats_presenter.rb +3 -3
  166. data/app/presenters/decidim/log/diff_presenter.rb +4 -3
  167. data/app/presenters/decidim/log/resource_presenter.rb +4 -4
  168. data/app/presenters/decidim/log/user_presenter.rb +1 -1
  169. data/app/presenters/decidim/menu_presenter.rb +12 -7
  170. data/app/presenters/decidim/nil_presenter.rb +0 -2
  171. data/app/presenters/decidim/user_presenter.rb +1 -1
  172. data/app/queries/decidim/metrics/blocked_users_metric_manage.rb +26 -0
  173. data/app/queries/decidim/metrics/followers_metric_manage.rb +3 -0
  174. data/app/queries/decidim/metrics/participants_metric_manage.rb +3 -0
  175. data/app/queries/decidim/metrics/reported_users_metric_manage.rb +26 -0
  176. data/app/queries/decidim/metrics/user_reports_metric_manage.rb +26 -0
  177. data/app/services/decidim/activity_search.rb +1 -3
  178. data/app/services/decidim/base_diff_renderer.rb +1 -1
  179. data/app/services/decidim/data_portability_exporter.rb +1 -0
  180. data/app/services/decidim/email_notification_generator.rb +2 -2
  181. data/app/services/decidim/events_manager.rb +1 -1
  182. data/app/services/decidim/open_data_exporter.rb +36 -7
  183. data/app/services/decidim/zip_stream/zip_stream_writer.rb +3 -3
  184. data/app/uploaders/decidim/application_uploader.rb +22 -2
  185. data/app/uploaders/decidim/attachment_uploader.rb +2 -4
  186. data/app/uploaders/decidim/downloader.rb +9 -0
  187. data/app/uploaders/decidim/image_uploader.rb +9 -21
  188. data/app/uploaders/decidim/open_data_uploader.rb +5 -0
  189. data/app/uploaders/decidim/record_image_uploader.rb +2 -2
  190. data/app/validators/etiquette_validator.rb +0 -7
  191. data/app/validators/uploader_content_type_validator.rb +4 -2
  192. data/app/views/decidim/block_user_mailer/notify.html.erb +7 -0
  193. data/app/views/decidim/devise/confirmations/new.html.erb +1 -1
  194. data/app/views/decidim/devise/registrations/edit.html.erb +1 -1
  195. data/app/views/decidim/devise/unlocks/new.html.erb +1 -1
  196. data/app/views/decidim/messaging/conversations/_conversation.html.erb +1 -1
  197. data/app/views/decidim/messaging/conversations/_messages.html.erb +1 -1
  198. data/app/views/decidim/messaging/conversations/_show.html.erb +4 -4
  199. data/app/views/decidim/notifications_settings/show.html.erb +11 -0
  200. data/app/views/decidim/pages/_standalone.html.erb +3 -1
  201. data/app/views/decidim/reported_mailer/report.html.erb +8 -8
  202. data/app/views/decidim/shared/_check_boxes_tree.html.erb +3 -3
  203. data/app/views/decidim/shared/_component_announcement.html.erb +2 -2
  204. data/app/views/decidim/shared/participatory_space_filters/_filters.html.erb +1 -1
  205. data/app/views/decidim/user_report_mailer/notify.html.erb +7 -0
  206. data/app/views/decidim/widgets/_data_picker.html.erb +1 -1
  207. data/app/views/layouts/decidim/_application.html.erb +1 -0
  208. data/app/views/layouts/decidim/_js_configuration.html.erb +1 -1
  209. data/app/views/layouts/decidim/_main_footer.html.erb +6 -4
  210. data/app/views/layouts/decidim/_timeout_modal.html.erb +21 -0
  211. data/config/initializers/active_support.rb +7 -0
  212. data/config/initializers/devise.rb +1 -1
  213. data/config/initializers/omniauth.rb +1 -1
  214. data/config/locales/ar.yml +1 -9
  215. data/config/locales/bg.yml +1 -15
  216. data/config/locales/ca.yml +42 -15
  217. data/config/locales/cs.yml +79 -14
  218. data/config/locales/de.yml +78 -13
  219. data/config/locales/el.yml +1 -16
  220. data/config/locales/en.yml +79 -14
  221. data/config/locales/eo.yml +0 -1
  222. data/config/locales/es-MX.yml +30 -15
  223. data/config/locales/es-PY.yml +30 -15
  224. data/config/locales/es.yml +30 -15
  225. data/config/locales/eu.yml +1 -9
  226. data/config/locales/fi-plain.yml +76 -12
  227. data/config/locales/fi.yml +76 -12
  228. data/config/locales/fr-CA.yml +79 -14
  229. data/config/locales/fr.yml +76 -11
  230. data/config/locales/gl.yml +1 -15
  231. data/config/locales/hu.yml +1 -14
  232. data/config/locales/id-ID.yml +1 -9
  233. data/config/locales/is-IS.yml +0 -2
  234. data/config/locales/it.yml +65 -14
  235. data/config/locales/ja.yml +1 -16
  236. data/config/locales/lv.yml +1 -14
  237. data/config/locales/nl.yml +38 -15
  238. data/config/locales/no.yml +7 -16
  239. data/config/locales/pl.yml +98 -23
  240. data/config/locales/pt-BR.yml +1 -9
  241. data/config/locales/pt.yml +1 -16
  242. data/config/locales/ro-RO.yml +20 -16
  243. data/config/locales/ru.yml +1 -10
  244. data/config/locales/sk.yml +1 -14
  245. data/config/locales/sr-CS.yml +0 -9
  246. data/config/locales/sv.yml +5 -16
  247. data/config/locales/tr-TR.yml +62 -13
  248. data/config/locales/uk.yml +1 -7
  249. data/config/locales/zh-CN.yml +1 -16
  250. data/config/routes.rb +9 -4
  251. data/db/migrate/20170713131206_add_admin_to_users.rb +1 -1
  252. data/db/migrate/20180206143340_fix_reference_for_all_resources.rb +2 -0
  253. data/db/migrate/20180314085339_rename_maximum_votes_per_proposal_to_threshold_per_proposal.rb +2 -2
  254. data/db/migrate/20200929171508_remove_show_statistics_from_organizations.rb +7 -0
  255. data/db/migrate/20201010124755_create_decidim_user_moderations.rb +12 -0
  256. data/db/migrate/20201010124756_create_decidim_user_reports.rb +16 -0
  257. data/db/migrate/20201010224433_add_suspension_fields_to_decidim_users.rb +8 -0
  258. data/db/migrate/20201011074641_create_decidim_user_suspensions.rb +14 -0
  259. data/db/migrate/20201011081626_add_current_suspension_id_to_decidim_users.rb +7 -0
  260. data/db/migrate/20201013071533_add_reported_content_to_moderations.rb +7 -0
  261. data/db/migrate/20201019074554_add_locale_to_moderation_reports.rb +7 -0
  262. data/db/migrate/20201127114444_encrypt_authorization_metadatas.rb +35 -0
  263. data/db/migrate/20201128130723_add_allow_public_access_to_static_pages.rb +17 -0
  264. data/db/migrate/20201218144706_update_table_block_user_functionality.rb +8 -0
  265. data/db/migrate/20201218145252_rename_decidim_user_fields_for_block_functionality.rb +9 -0
  266. data/db/migrate/20210208134328_add_email_on_moderations_to_users.rb +7 -0
  267. data/db/seeds.rb +14 -13
  268. data/lib/decidim/amendable.rb +3 -2
  269. data/{app/functions/decidim/core → lib/decidim/api/functions}/component_finder_base.rb +1 -1
  270. data/{app/functions/decidim/core → lib/decidim/api/functions}/component_list.rb +4 -4
  271. data/{app/functions/decidim/core → lib/decidim/api/functions}/component_list_base.rb +3 -1
  272. data/lib/decidim/api/functions/needs_api_default_order.rb +24 -0
  273. data/{app/functions/decidim/core → lib/decidim/api/functions}/needs_api_filter_and_order.rb +0 -0
  274. data/{app/functions/decidim/core → lib/decidim/api/functions}/participatory_space_finder_base.rb +2 -2
  275. data/{app/functions/decidim/core → lib/decidim/api/functions}/participatory_space_list_base.rb +3 -1
  276. data/{app/functions/decidim/core → lib/decidim/api/functions}/user_entity_finder.rb +1 -4
  277. data/{app/functions/decidim/core → lib/decidim/api/functions}/user_entity_list.rb +1 -3
  278. data/{app/types/decidim/core → lib/decidim/api/input_filters}/base_input_filter.rb +0 -0
  279. data/{app/types/decidim/core → lib/decidim/api/input_filters}/component_input_filter.rb +20 -22
  280. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_hastaggable_input_filter.rb +1 -1
  281. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_localized_input_filter.rb +3 -3
  282. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_publishable_input_filter.rb +6 -6
  283. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_timestamp_input_filter.rb +12 -12
  284. data/{app/types/decidim/core → lib/decidim/api/input_filters}/participatory_space_input_filter.rb +0 -1
  285. data/lib/decidim/api/input_filters/user_entity_input_filter.rb +89 -0
  286. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/base_input_sort.rb +3 -2
  287. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/component_input_sort.rb +10 -11
  288. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/has_endorsable_input_sort.rb +2 -4
  289. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/has_localized_input_sort.rb +3 -3
  290. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/has_publishable_input_sort.rb +1 -1
  291. data/lib/decidim/api/input_sorts/has_timestamp_input_sort.rb +12 -0
  292. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/participatory_space_input_sort.rb +1 -1
  293. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/user_entity_input_sort.rb +4 -4
  294. data/lib/decidim/api/{amendable_entity_interface.rb → interfaces/amendable_entity_interface.rb} +5 -5
  295. data/lib/decidim/api/interfaces/amendable_interface.rb +17 -0
  296. data/lib/decidim/api/{attachable_interface.rb → interfaces/attachable_interface.rb} +3 -3
  297. data/lib/decidim/api/interfaces/author_interface.rb +32 -0
  298. data/lib/decidim/api/interfaces/authorable_interface.rb +23 -0
  299. data/lib/decidim/api/{categorizable_interface.rb → interfaces/categorizable_interface.rb} +3 -3
  300. data/lib/decidim/api/interfaces/coauthorable_interface.rb +30 -0
  301. data/lib/decidim/api/interfaces/component_interface.rb +22 -0
  302. data/lib/decidim/api/interfaces/endorsable_interface.rb +19 -0
  303. data/lib/decidim/api/{fingerprint_interface.rb → interfaces/fingerprint_interface.rb} +3 -3
  304. data/lib/decidim/api/interfaces/participatory_space_interface.rb +48 -0
  305. data/lib/decidim/api/interfaces/participatory_space_resourceable_interface.rb +25 -0
  306. data/lib/decidim/api/{scopable_interface.rb → interfaces/scopable_interface.rb} +3 -3
  307. data/lib/decidim/api/interfaces/timestamps_interface.rb +15 -0
  308. data/lib/decidim/api/interfaces/traceable_interface.rb +14 -0
  309. data/lib/decidim/api/scalars/date_time_type.rb +17 -0
  310. data/lib/decidim/api/scalars/date_type.rb +17 -0
  311. data/lib/decidim/api/types/amendment_type.rb +19 -0
  312. data/lib/decidim/api/types/area_api_type.rb +16 -0
  313. data/lib/decidim/api/types/area_type_type.rb +13 -0
  314. data/lib/decidim/api/types/attachment_type.rb +13 -0
  315. data/lib/decidim/api/types/category_type.rb +14 -0
  316. data/{app/types/decidim/core → lib/decidim/api/types}/component_type.rb +2 -4
  317. data/lib/decidim/api/types/coordinates_type.rb +21 -0
  318. data/lib/decidim/api/types/decidim_type.rb +13 -0
  319. data/lib/decidim/api/types/fingerprint_type.rb +12 -0
  320. data/lib/decidim/api/types/hashtag_type.rb +13 -0
  321. data/lib/decidim/api/types/localized_string_type.rb +13 -0
  322. data/lib/decidim/api/types/metric_history_type.rb +18 -0
  323. data/lib/decidim/api/types/metric_type.rb +13 -0
  324. data/lib/decidim/api/types/organization_type.rb +17 -0
  325. data/lib/decidim/api/types/participatory_space_link_type.rb +22 -0
  326. data/lib/decidim/api/types/participatory_space_type.rb +10 -0
  327. data/lib/decidim/api/types/scope_api_type.rb +16 -0
  328. data/lib/decidim/api/types/session_type.rb +22 -0
  329. data/lib/decidim/api/types/statistic_type.rb +20 -0
  330. data/lib/decidim/api/types/trace_version_type.rb +21 -0
  331. data/lib/decidim/api/types/translated_field_type.rb +36 -0
  332. data/lib/decidim/api/types/user_group_type.rb +64 -0
  333. data/lib/decidim/api/types/user_type.rb +67 -0
  334. data/lib/decidim/attachment_attributes.rb +57 -0
  335. data/lib/decidim/attributes.rb +1 -0
  336. data/lib/decidim/attributes/clean_string.rb +37 -0
  337. data/lib/decidim/coauthorable.rb +3 -3
  338. data/lib/decidim/component_manifest.rb +17 -0
  339. data/lib/decidim/content_block_manifest.rb +1 -1
  340. data/lib/decidim/content_parsers/hashtag_parser.rb +3 -6
  341. data/lib/decidim/content_parsers/user_group_parser.rb +2 -5
  342. data/lib/decidim/content_parsers/user_parser.rb +2 -5
  343. data/lib/decidim/content_processor.rb +1 -1
  344. data/lib/decidim/content_renderers/hashtag_renderer.rb +3 -6
  345. data/lib/decidim/core.rb +11 -3
  346. data/lib/decidim/core/api.rb +71 -16
  347. data/lib/decidim/core/engine.rb +35 -6
  348. data/lib/decidim/core/test.rb +2 -0
  349. data/lib/decidim/core/test/factories.rb +53 -15
  350. data/lib/decidim/core/test/shared_examples/admin_resource_gallery_examples.rb +1 -1
  351. data/lib/decidim/core/test/shared_examples/amendable/amendment_accepted_event_examples.rb +1 -1
  352. data/lib/decidim/core/test/shared_examples/amendable/amendment_promoted_event_examples.rb +1 -1
  353. data/lib/decidim/core/test/shared_examples/amendable/amendment_rejected_event_examples.rb +1 -1
  354. data/lib/decidim/core/test/shared_examples/comments_examples.rb +11 -9
  355. data/lib/decidim/core/test/shared_examples/component_type.rb +1 -1
  356. data/lib/decidim/core/test/shared_examples/controller_render_views.rb +28 -0
  357. data/lib/decidim/core/test/shared_examples/follows_examples.rb +1 -1
  358. data/lib/decidim/core/test/shared_examples/logo_email.rb +1 -1
  359. data/lib/decidim/core/test/shared_examples/map_examples.rb +1 -1
  360. data/lib/decidim/core/test/shared_examples/process_announcements_examples.rb +1 -1
  361. data/lib/decidim/core/test/shared_examples/reportable.rb +8 -0
  362. data/lib/decidim/core/test/shared_examples/rich_text_editor_examples.rb +1 -1
  363. data/lib/decidim/core/test/shared_examples/searchable_participatory_space_examples.rb +2 -3
  364. data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +46 -0
  365. data/lib/decidim/core/test/shared_examples/static_pages_examples.rb +43 -0
  366. data/lib/decidim/core/version.rb +1 -1
  367. data/lib/decidim/diffy_extension.rb +2 -2
  368. data/lib/decidim/exporters/csv.rb +3 -2
  369. data/lib/decidim/exporters/export_data.rb +1 -1
  370. data/lib/decidim/faker/internet.rb +17 -0
  371. data/lib/decidim/faker/localized.rb +43 -20
  372. data/lib/decidim/file_validator_humanizer.rb +6 -4
  373. data/lib/decidim/form_builder.rb +33 -22
  374. data/lib/decidim/gamification/badge_scorer.rb +3 -2
  375. data/lib/decidim/gamification/base_event.rb +2 -2
  376. data/lib/decidim/geocodable.rb +2 -0
  377. data/lib/decidim/has_category.rb +1 -1
  378. data/lib/decidim/has_private_users.rb +1 -1
  379. data/lib/decidim/importers/import_manifest.rb +36 -0
  380. data/lib/decidim/map/autocomplete.rb +11 -1
  381. data/lib/decidim/metric_operation.rb +5 -6
  382. data/lib/decidim/participatory_space_resourceable.rb +1 -3
  383. data/lib/decidim/query_extensions.rb +90 -69
  384. data/lib/decidim/randomable.rb +6 -1
  385. data/lib/decidim/record_encryptor.rb +131 -0
  386. data/lib/decidim/reportable.rb +26 -0
  387. data/lib/decidim/resource_manifest.rb +3 -0
  388. data/lib/decidim/resourceable.rb +6 -6
  389. data/lib/decidim/scopable.rb +1 -1
  390. data/lib/decidim/search_resource_fields_mapper.rb +1 -1
  391. data/lib/decidim/searchable.rb +9 -0
  392. data/lib/decidim/settings_manifest.rb +2 -1
  393. data/lib/decidim/shareable_with_token.rb +0 -1
  394. data/lib/decidim/translatable_attributes.rb +2 -1
  395. data/lib/decidim/translatable_resource.rb +10 -0
  396. data/lib/decidim/user_reportable.rb +33 -0
  397. data/lib/decidim/view_model.rb +26 -0
  398. data/lib/premailer/adapter/decidim.rb +4 -4
  399. data/lib/tasks/decidim_data_portability_tasks.rake +4 -4
  400. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ko.js +18 -0
  401. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.vi.js +14 -0
  402. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.zh-CN.js +14 -0
  403. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.zh-TW.js +14 -0
  404. metadata +192 -101
  405. data/app/functions/decidim/core/participatory_space_finder.rb +0 -11
  406. data/app/functions/decidim/core/participatory_space_list.rb +0 -11
  407. data/app/types/decidim/core/amendment_type.rb +0 -26
  408. data/app/types/decidim/core/area_api_type.rb +0 -16
  409. data/app/types/decidim/core/area_type_type.rb +0 -14
  410. data/app/types/decidim/core/attachment_type.rb +0 -14
  411. data/app/types/decidim/core/category_type.rb +0 -16
  412. data/app/types/decidim/core/coordinates_type.rb +0 -19
  413. data/app/types/decidim/core/date_time_type.rb +0 -12
  414. data/app/types/decidim/core/date_type.rb +0 -13
  415. data/app/types/decidim/core/decidim_type.rb +0 -19
  416. data/app/types/decidim/core/fingerprint_type.rb +0 -15
  417. data/app/types/decidim/core/has_timestamp_input_sort.rb +0 -12
  418. data/app/types/decidim/core/hashtag_type.rb +0 -13
  419. data/app/types/decidim/core/localized_string_type.rb +0 -14
  420. data/app/types/decidim/core/metric_history_type.rb +0 -17
  421. data/app/types/decidim/core/metric_type.rb +0 -14
  422. data/app/types/decidim/core/organization_type.rb +0 -20
  423. data/app/types/decidim/core/participatory_space_link_type.rb +0 -24
  424. data/app/types/decidim/core/participatory_space_type.rb +0 -12
  425. data/app/types/decidim/core/scope_api_type.rb +0 -16
  426. data/app/types/decidim/core/session_type.rb +0 -19
  427. data/app/types/decidim/core/statistic_type.rb +0 -22
  428. data/app/types/decidim/core/trace_version_type.rb +0 -29
  429. data/app/types/decidim/core/translated_field_type.rb +0 -45
  430. data/app/types/decidim/core/user_entity_input_filter.rb +0 -81
  431. data/app/types/decidim/core/user_group_type.rb +0 -51
  432. data/app/types/decidim/core/user_type.rb +0 -52
  433. data/app/views/decidim/shared/_announcement.html.erb +0 -1
  434. data/app/views/decidim/shared/_flag_modal.html.erb +0 -20
  435. data/lib/decidim/api/amendable_interface.rb +0 -18
  436. data/lib/decidim/api/author_interface.rb +0 -29
  437. data/lib/decidim/api/authorable_interface.rb +0 -22
  438. data/lib/decidim/api/coauthorable_interface.rb +0 -29
  439. data/lib/decidim/api/component_interface.rb +0 -20
  440. data/lib/decidim/api/endorsable_interface.rb +0 -22
  441. data/lib/decidim/api/participatory_space_interface.rb +0 -47
  442. data/lib/decidim/api/participatory_space_resourceable_interface.rb +0 -21
  443. data/lib/decidim/api/timestamps_interface.rb +0 -21
  444. data/lib/decidim/api/traceable_interface.rb +0 -14
@@ -35,7 +35,7 @@ fr-CA:
35
35
  decidim/profile_updated_event: Profil mis à jour
36
36
  decidim/promote_to_admin: Promu au groupe admin
37
37
  decidim/removed_from_group: Retiré du groupe
38
- decidim/resource_endorsed_event: Resurce endossé
38
+ decidim/resource_endorsed_event: Ressource soutenue
39
39
  activerecord:
40
40
  attributes:
41
41
  decidim/user:
@@ -79,11 +79,12 @@ fr-CA:
79
79
  logo: "Logo officiel de %{organization}"
80
80
  skip_button: Passer au contenu principal
81
81
  account:
82
+ blocked: Ce compte a été bloqué en raison d'une violation des Conditions Générales d'Utilisation
82
83
  data_portability_export:
83
84
  file_no_exists: Le fichier n'existe pas
84
85
  notice: Votre export est actuellement en cours. Vous recevrez un email quand il sera complet.
85
86
  delete:
86
- alert: Cette action ne peut pas être annulée. Si vous supprimez votre compte, vous ne pourrez plus vous connecter.
87
+ alert: Cette action ne peut être annulée. Si vous supprimez votre compte, vous ne pourrez pas vous connecter avec vos identifiants. La suppression de votre compte entraînera l'anonymisation de vos contributions. Vous serez toujours en mesure de créer un nouveau compte, mais vos anciennes contributions n'y seront plus associées.
87
88
  confirm:
88
89
  close: Fermer la fenêtre
89
90
  ok: Oui, je souhaite supprimer mon compte
@@ -113,6 +114,8 @@ fr-CA:
113
114
  delete: "%{user_name} a supprimé la fonctionnalité %{resource_name} de l'espace %{space_name}"
114
115
  publish: "%{user_name} a publié la fonctionnalité %{resource_name} dans l'espace %{space_name}"
115
116
  unpublish: "%{user_name} a dépublié la fonctionnalité %{resource_name} de l'espace %{space_name}"
117
+ impersonation_log:
118
+ manage: "%{user_name} a représenté %{resource_name} parce que %{reason}"
116
119
  moderation:
117
120
  hide: "%{user_name} a caché une ressource de type %{resource_type} dans l'espace %{space_name}"
118
121
  unreport: "%{user_name} a annulé le signalement d'une ressource de type %{resource_type} dans l'espace %{space_name}"
@@ -129,7 +132,7 @@ fr-CA:
129
132
  update: "%{user_name} a mis à jour les paramètres de l'organisation"
130
133
  participatory_space_private_user:
131
134
  create: "%{user_name} invité %{resource_name} pour être un utilisateur privé"
132
- create_via_csv: "%{user_name} a invité %{resource_name} via csv à être un utilisateur privé"
135
+ create_via_csv: "%{user_name} a invité %{resource_name} via CSV à être un utilisateur privé"
133
136
  delete: "%{user_name} supprimé l'utilisateur %{resource_name} tant qu'utilisateur privé"
134
137
  scope:
135
138
  create: "%{user_name} a créé le périmètre d'application %{resource_name}"
@@ -143,15 +146,21 @@ fr-CA:
143
146
  delete: "%{user_name} a supprimé la page statique %{resource_name}"
144
147
  update: "%{user_name} a mis à jour la page statique %{resource_name}"
145
148
  user:
149
+ block: "%{user_name} a bloqué l'utilisateur %{resource_name}"
146
150
  invite: "%{user_name} a invité l'utilisateur %{resource_name} avec le rôle : %{role}"
147
151
  officialize: "%{user_name} a officialisé l'utilisateur %{resource_name}"
152
+ promote: "%{user_name} a promu %{resource_name}"
148
153
  remove_from_admin: "%{user_name} a retiré le rôle : %{role} de l'utilisateur %{resource_name}"
149
154
  show_email: "%{user_name} est allé chercher l'email de l'utilisateur %{resource_name}"
155
+ transfer: "%{user_name} a transféré l'utilisateur %{resource_name}"
156
+ unblock: "%{user_name} a débloqué l'utilisateur %{resource_name}"
150
157
  unofficialize: "%{user_name} a retiré l'officialisation de l'utilisateur %{resource_name}"
151
158
  user_group:
152
159
  reject: "%{user_name} a rejeté la vérification du groupe d'utilisateurs %{resource_name}"
153
160
  verify: "%{user_name} a vérifié le groupe d'utilisateurs %{resource_name}"
154
161
  verify_via_csv: "%{user_name} vérifié le groupe %{resource_name} utilisateur via un fichier CSV"
162
+ user_moderation:
163
+ unreport: "%{user_name} a annulé le signalement de %{resource_type} - %{unreported_user_name}"
155
164
  admin_terms_of_use:
156
165
  default_body: "<h2>CONDITIONS D'UTILISATION ADMINISTRATEUR</h2><p>Nous espérons que vous avez reçu les instructions de l'administrateur système de la plateforme. Ils se résument généralement à ces trois choses :</p><ol><li>Respecter la vie privée des autres.</li><li>Réfléchissez avant de cliquer.</li><li>Un grand pouvoir implique de grandes responsabilités.</li></ol>"
157
166
  alert:
@@ -274,7 +283,7 @@ fr-CA:
274
283
  dummy_authorization_workflow:
275
284
  name: Procédure d'autorisation factice
276
285
  errors:
277
- duplicate_authorization: Un utilisateur est déjà autorisé avec les mêmes données.
286
+ duplicate_authorization: Un participant est déjà autorisé avec ces mêmes données. Un administrateur vous contactera pour vérifier vos informations.
278
287
  expired_at: Expiré à %{timestamp}
279
288
  expires_at: Expire à %{timestamp}
280
289
  foo_authorization:
@@ -320,6 +329,13 @@ fr-CA:
320
329
  title: confirmez votre email
321
330
  show:
322
331
  close_modal: Fermer la fenêtre modale
332
+ block_user_mailer:
333
+ notify:
334
+ body_1: Votre compte a été bloqué.
335
+ body_2: 'Motif : %{justification}'
336
+ greetings: Salutations,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
337
+ hello: Bonjour,
338
+ subject: Votre compte a été bloqué par %{organization_name}
323
339
  collapsible_list:
324
340
  hidden_elements_count:
325
341
  one: et %{count} plus
@@ -368,6 +384,13 @@ fr-CA:
368
384
  dummy_step_translatable_text: Texte traduisible de l'étape factice
369
385
  contact: Contact
370
386
  content_blocks:
387
+ cta:
388
+ name: Image, texte et bouton d'appel à l'action
389
+ cta_settings_form:
390
+ background_image: Image d'arrière-plan
391
+ button_text: Texte d'appel à l'action
392
+ button_url: URL du bouton d'appel à l’action
393
+ description: Description
371
394
  footer_sub_hero:
372
395
  name: Section "Bienvenue sur la plateforme" (. footer_sub_hero)
373
396
  hero:
@@ -377,6 +400,11 @@ fr-CA:
377
400
  welcome_text: Texte de bienvenue
378
401
  highlighted_content_banner:
379
402
  name: Bannière de contenu mis en valeur
403
+ highlighted_elements_settings_form:
404
+ orders:
405
+ label: 'Trier les éléments par:'
406
+ random: Aléatoire
407
+ recent: Les plus récents
380
408
  how_to_participate:
381
409
  name: Comment participer
382
410
  html:
@@ -401,7 +429,7 @@ fr-CA:
401
429
  ready: Prêt
402
430
  show:
403
431
  download_data: Télécharger les données
404
- download_data_description: Un fichier avec toutes les informations associées au compte sera envoyé à <strong>%{user_email}</strong>
432
+ download_data_description: Un fichier contenant toutes les informations associées à votre compte sera envoyé à <strong>%{user_email}</strong>. Cet e-mail contiendra un fichier .zip et un mot de passe pour l'ouvrir.<br/><br/>Pour décompresser le fichier, vous aurez besoin de <a href="https://www.7-zip.org/">7-Zip</a> (pour Windows) ou <a href="https://www.keka.io/">Keka</a> (pour MacOS). Si vous utilisez Linux, la plupart du temps, vous l'aurez installé par défaut. Sinon, vous pouvez utiliser <a href="https://gitlab.gnome.org/GNOME/file-roller">File Roller</a> ou <a href="https://peazip.github.io">PeaZip</a>.
405
433
  request_data: Demander les données
406
434
  datepicker:
407
435
  help_text: 'Format attendu : %{datepicker_format}'
@@ -411,7 +439,7 @@ fr-CA:
411
439
  email_already_exists: Un autre compte utilise la même adresse email
412
440
  new:
413
441
  complete_profile: Complétez votre profil
414
- nickname_help: Votre alias dans %{organization}
442
+ nickname_help: Cet identifiant est public et unique sur %{organization} ; il permet aux autres utilisateurs de vous suivre, de vous contacter ou de vous mentionner dans leurs commentaires. Il s’affichera précédé d’un « @ » ; il ne doit pas contenir d’espace ni de caractère spécial.
415
443
  sign_up: Veuillez compléter votre profil
416
444
  subtitle: Remplissez le formulaire suivant pour compléter l'inscription
417
445
  username_help: Le nom est public et apparaît dans votre profil et sur vos messages. Dans le but de garantir l'anonymat, vous pouvez choisir n'importe quel nom.
@@ -420,7 +448,7 @@ fr-CA:
420
448
  already_have_an_account?: Vous avez déjà un compte ?
421
449
  newsletter: Recevoir une newsletter sur l'actualité de la plateforme
422
450
  newsletter_title: Autorisation de contact
423
- nickname_help: Votre alias dans %{organization}
451
+ nickname_help: Cet identifiant est public et unique sur %{organization} ; il permet aux autres utilisateurs de vous suivre, de vous contacter ou de vous mentionner dans leurs commentaires. Il s’affichera précédé d’un « @ » ; il ne doit pas contenir d’espace ni de caractère spécial.
424
452
  password_help: "%{minimun_characters} caractères minimum, ne doit pas être trop commun (par exemple 123456) et doit être différent de votre pseudo et de votre email."
425
453
  sign_in: Se connecter
426
454
  sign_up: S'inscrire
@@ -437,6 +465,8 @@ fr-CA:
437
465
  register: Créer un compte
438
466
  sign_in_disabled: Vous pouvez accéder avec un compte externe
439
467
  sign_up_disabled: L'inscription est désactivée, vous pouvez utiliser un utilisateur existant pour accéder
468
+ user:
469
+ timed_out: Vous avez été inactif pendant trop longtemps et vous avez été automatiquement déconnecté du service. Si vous souhaitez continuer à utiliser le service, veuillez vous reconnecter.
440
470
  shared:
441
471
  newsletter_modal:
442
472
  buttons:
@@ -603,6 +633,14 @@ fr-CA:
603
633
  notification_title: Le groupe d'utilisateurs %{user_group_name} a mis à jour son profil, le laissant non vérifié. Vous pouvez maintenant le vérifier dans le <a href="%{groups_admin_path}">panneau d'administration</a>.
604
634
  notification_event:
605
635
  notification_title: Un événement a eu lieu à <a href="%{resource_path}">%{resource_title}</a>.
636
+ reports:
637
+ resource_hidden:
638
+ email_intro: Un administrateur a modéré votre %{resource_type} car il a été signalé comme %{report_reasons}.
639
+ email_outro: Vous avez reçu cette notification parce que vous êtes l'auteur du contenu modéré.
640
+ email_subject: Votre %{resource_type} a été modérée
641
+ notification_title: |-
642
+ Un administrateur a modéré votre %{resource_type} car il a été signalé comme %{report_reasons}.</br>
643
+ <i>%{resource_content}</i>
606
644
  resource_endorsed:
607
645
  email_intro: '%{endorser_name} %{endorser_nickname}, que vous suivez, vient d’approuver l''évènement "%{resource_title}" et nous pensons que cela pourrait vous intéresser. Consultez le et contribuez:'
608
646
  email_outro: Vous avez reçu cette notification parce que vous suivez %{endorser_nickname}. Vous pouvez arrêter de recevoir des notifications en suivant le lien précédent.
@@ -616,7 +654,7 @@ fr-CA:
616
654
  notification_title: Le <a href="%{resource_path}">profil public</a> de %{name} (%{nickname}), que vous suivez, a été mis à jour.
617
655
  export_mailer:
618
656
  data_portability_export:
619
- click_button: 'Cliquez sur le bouton suivant pour télécharger vos données. <br/> Le fichier sera disponible jusqu''au %{date}.'
657
+ click_button: 'Cliquez sur le bouton suivant pour télécharger vos données.<br/>Le fichier sera disponible jusqu''au %{date}.<br/>Vous aurez besoin de <a href="https://www.7-zip.org/">7-Zip</a> (Windows), <a href="https://www.keka.io/en/">Keka</a> (MacOS) ou <a href="https://peazip.github.io">PeaZip</a> (Linux) pour l''ouvrir. Mot de passe : %{password}'
620
658
  download: Télécharger
621
659
  export:
622
660
  ready: Vous trouverez ci-joint une version zippée de votre exportation.
@@ -649,7 +687,7 @@ fr-CA:
649
687
  create:
650
688
  button: Suivre
651
689
  error: Une erreur s'est produite lors du traitement de votre demande de suivre ce contenu.
652
- participatory_space: Déjà abonné <span class="show-for-sr">%{resource_name}</span>
690
+ participatory_space: Suivre <span class="show-for-sr">%{resource_name}</span>
653
691
  destroy:
654
692
  button: Ne plus suivre
655
693
  error: Une erreur s'est produite lors du traitement de votre demande de ne plus suivre ce contenu.
@@ -666,7 +704,7 @@ fr-CA:
666
704
  file:
667
705
  explanation: 'Orientation pour le fichier :'
668
706
  message_1: Doit être une image ou un document.
669
- message_2: Pour les images, utilisez de préférence des images paysagères, le service récolte l'image.
707
+ message_2: Pour les images, utilisez de préférence des formats paysage, car le service recadre l'image. Pour les fichiers CSV, le séparateur entre les colonnes doit être une virgule (",")
670
708
  image:
671
709
  explanation: 'Orientation pour l''image:'
672
710
  message_1: De préférence une image de paysage qui n'a pas de texte.
@@ -908,7 +946,7 @@ fr-CA:
908
946
  show:
909
947
  back: Retour à toutes les conversations
910
948
  chat_with: Conversation avec
911
- not_allowed: Cet utilisateur n'accepte plus de messages directs.
949
+ not_allowed: Cet utilisateur ne souhaite pas recevoir de messages directs.
912
950
  title: Conversation avec %{usernames}
913
951
  start:
914
952
  send: Envoyer
@@ -917,7 +955,7 @@ fr-CA:
917
955
  error: 'Erreur : votre message n''a pas pu être envoyé'
918
956
  metrics:
919
957
  download:
920
- csv: Données de téléchargement (csv)
958
+ csv: Télécharger les données (CSV)
921
959
  followers:
922
960
  description: Nombre d'utilisateurs qui suivent cet espace de participation
923
961
  object: suiveurs
@@ -979,8 +1017,10 @@ fr-CA:
979
1017
  no_notifications: Il n'y a pas encore de notifications.
980
1018
  notifications_settings:
981
1019
  show:
1020
+ administrators: Administrateurs
982
1021
  allow_public_contact: Permettre à quelqu'un de m'envoyer un message direct, même si je ne les suis pas.
983
1022
  direct_messages: Recevoir des messages directs de n'importe qui
1023
+ email_on_moderations: Je veux recevoir un email chaque fois que quelque chose est signalé pour modération.
984
1024
  email_on_notification: Je souhaite recevoir un email à chaque fois que je reçois une notification.
985
1025
  everything_followed: Tout ce que je suis
986
1026
  newsletter_notifications: Je souhaite recevoir une newsletter sur l'actualité de la plateforme
@@ -1076,6 +1116,7 @@ fr-CA:
1076
1116
  not_allowed: Vous n'êtes pas autorisé à voir ce contenu
1077
1117
  profile:
1078
1118
  deleted: Utilisateur ayant supprimé son compte
1119
+ inaccessible_message: Ce profil est inaccessible en raison d'une violation des Conditions Générales d'Utilisation !
1079
1120
  view: Voir
1080
1121
  profiles:
1081
1122
  default_officialization_text_for_user_groups: Ce groupe d'utilisateurs est publiquement vérifié, son nom a été vérifié pour correspondre à son vrai nom.
@@ -1089,6 +1130,7 @@ fr-CA:
1089
1130
  groups: Groupes
1090
1131
  members: Membres
1091
1132
  officialized: Participant officiel
1133
+ send_private_message: Envoyer un message privé
1092
1134
  timeline: Chronologie
1093
1135
  view_full_profile: Voir le profil complet
1094
1136
  sidebar:
@@ -1116,13 +1158,15 @@ fr-CA:
1116
1158
  report:
1117
1159
  authors: Auteurs
1118
1160
  content: Contenu signalé
1161
+ content_original_language: Langue d'origine du contenu
1119
1162
  date: Signalé le
1120
1163
  details: Détails
1121
1164
  hello: Bonjour %{name},
1122
- manage_moderations: Gérer les modérations
1165
+ id: ID
1123
1166
  participatory_space: Espace participatif
1124
1167
  reason: Raison
1125
1168
  report_html: <p>Le <a href="%{url}">contenu</a> suivant a été signalé.</p>
1169
+ see_report: Voir le signalement
1126
1170
  subject: Un contenu a été signalé
1127
1171
  reports:
1128
1172
  create:
@@ -1195,6 +1239,15 @@ fr-CA:
1195
1239
  report: Signaler
1196
1240
  spam: Contient des publicités, des escroqueries, des pièges à clic (clickbait) ou des robots fonctionnant au script (script bots).
1197
1241
  title: Signaler un problème
1242
+ flag_user_modal:
1243
+ already_reported: Ce contenu a déjà été signalé et il sera examiné par un administrateur.
1244
+ close: Fermer
1245
+ description: Qu'est-ce qui est inapproprié à propos de cet utilisateur ?
1246
+ does_not_belong: Rédige des contenus qui vous semblent inappropriés à %{organization_name} (activités illégales, menaces suicidaires, informations personnelles,...).
1247
+ offensive: Rédige des contenus racistes, sexistes, contenant des insultes, attaques personnelles, menaces de mort, incitations au suicide ou toute forme de discours de haine.
1248
+ report: Signaler
1249
+ spam: Rédige des contenus de type publicités, des escroqueries, des pièges à clic (clickbait) ou des robots fonctionnant au script (script bots).
1250
+ title: Signaler un utilisateur inapproprié
1198
1251
  floating_help:
1199
1252
  close: Fermer l'aide
1200
1253
  help: Aidez-moi
@@ -1270,6 +1323,13 @@ fr-CA:
1270
1323
  update:
1271
1324
  error: Une erreur s'est produite lors de la mise à jour de vos centres d'intérêt.
1272
1325
  success: Vos intérêts ont été mis à jour avec succès.
1326
+ user_report_mailer:
1327
+ notify:
1328
+ body_1: L'utilisateur %{user} a été signalé par %{token}
1329
+ body_2: 'Motif : %{reason}'
1330
+ greetings: Salutations,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
1331
+ hello: Bonjour %{admin},
1332
+ subject: Un nouvel utilisateur a été signalé dans %{organization_name}
1273
1333
  version:
1274
1334
  show:
1275
1335
  back_to_resource: Revenir en arrière
@@ -1455,7 +1515,7 @@ fr-CA:
1455
1515
  messages:
1456
1516
  already_confirmed: était déjà confirmé, s'il vous plaît essayez de vous connecter
1457
1517
  confirmation_period_expired: doit être confirmé dans les %{period}, s'il vous plaît demander un nouveau
1458
- content_type_whitelist_error: le type de fichier n'est pas valide
1518
+ content_type_allowlist_error: le type de fichier n'est pas valide
1459
1519
  cycle_detected: un périmètre d'application ne peut pas être du même niveau que ses descendants
1460
1520
  expired: a expiré, s'il vous plaît demander un nouveau
1461
1521
  file_size_is_less_than_or_equal_to: la taille du fichier doit être inférieure ou égale à %{count}
@@ -1515,6 +1575,11 @@ fr-CA:
1515
1575
  instagram: "%{organization} sur Instagram"
1516
1576
  twitter: "%{organization} sur Twitter"
1517
1577
  youtube: "%{organization} sur YouTube"
1578
+ timeout_modal:
1579
+ body: Vous avez été inactif pendant %{minutes} minutes. Si vous continuez à être inactif, vous serez automatiquement déconnecté pour votre propre sécurité.
1580
+ continue_session: Continuer la session
1581
+ sign_out: Se déconnecter
1582
+ title: Voulez-vous poursuivre votre session ?
1518
1583
  user_menu:
1519
1584
  account: 'Compte utilisateur: %{name}'
1520
1585
  admin_dashboard: Tableau de bord des administrateurs
@@ -79,11 +79,12 @@ fr:
79
79
  logo: "Logo officiel de %{organization}"
80
80
  skip_button: Passer au contenu principal
81
81
  account:
82
+ blocked: Ce compte a été bloqué en raison d'une violation des Conditions Générales d'Utilisation
82
83
  data_portability_export:
83
84
  file_no_exists: Le fichier n'existe pas
84
85
  notice: Votre export est actuellement en cours. Vous recevrez un email quand il sera complet.
85
86
  delete:
86
- alert: Cette action ne peut pas être annulée. Si vous supprimez votre compte, vous ne pourrez plus vous connecter.
87
+ alert: Cette action ne peut être annulée. Si vous supprimez votre compte, vous ne pourrez pas vous connecter avec vos identifiants. La suppression de votre compte entraînera l'anonymisation de vos contributions. Vous serez toujours en mesure de créer un nouveau compte, mais vos anciennes contributions n'y seront plus associées.
87
88
  confirm:
88
89
  close: Fermer la fenêtre
89
90
  ok: Oui, je souhaite supprimer mon compte
@@ -113,6 +114,8 @@ fr:
113
114
  delete: "%{user_name} a supprimé la fonctionnalité %{resource_name} de l'espace %{space_name}"
114
115
  publish: "%{user_name} a publié la fonctionnalité %{resource_name} dans l'espace %{space_name}"
115
116
  unpublish: "%{user_name} a dépublié la fonctionnalité %{resource_name} de l'espace %{space_name}"
117
+ impersonation_log:
118
+ manage: "%{user_name} a représenté %{resource_name} parce que %{reason}"
116
119
  moderation:
117
120
  hide: "%{user_name} a caché une ressource de type %{resource_type} dans l'espace %{space_name}"
118
121
  unreport: "%{user_name} a annulé le signalement d'une ressource de type %{resource_type} dans l'espace %{space_name}"
@@ -129,7 +132,7 @@ fr:
129
132
  update: "%{user_name} a mis à jour les paramètres de l'organisation"
130
133
  participatory_space_private_user:
131
134
  create: "%{user_name} invité %{resource_name} pour être un utilisateur privé"
132
- create_via_csv: "%{user_name} a invité %{resource_name} via csv à être un utilisateur privé"
135
+ create_via_csv: "%{user_name} a invité %{resource_name} via CSV à être un utilisateur privé"
133
136
  delete: "%{user_name} supprimé l'utilisateur %{resource_name} tant qu'utilisateur privé"
134
137
  scope:
135
138
  create: "%{user_name} a créé le périmètre d'application %{resource_name}"
@@ -143,15 +146,21 @@ fr:
143
146
  delete: "%{user_name} a supprimé la page statique %{resource_name}"
144
147
  update: "%{user_name} a mis à jour la page statique %{resource_name}"
145
148
  user:
149
+ block: "%{user_name} a bloqué l'utilisateur %{resource_name}"
146
150
  invite: "%{user_name} a invité l'utilisateur %{resource_name} avec le rôle : %{role}"
147
151
  officialize: "%{user_name} a officialisé l'utilisateur %{resource_name}"
152
+ promote: "%{user_name} a promu %{resource_name}"
148
153
  remove_from_admin: "%{user_name} a retiré le rôle : %{role} de l'utilisateur %{resource_name}"
149
154
  show_email: "%{user_name} est allé chercher l'email de l'utilisateur %{resource_name}"
155
+ transfer: "%{user_name} a transféré l'utilisateur %{resource_name}"
156
+ unblock: "%{user_name} a débloqué l'utilisateur %{resource_name}"
150
157
  unofficialize: "%{user_name} a retiré l'officialisation de l'utilisateur %{resource_name}"
151
158
  user_group:
152
159
  reject: "%{user_name} a rejeté la vérification du groupe d'utilisateurs %{resource_name}"
153
160
  verify: "%{user_name} a vérifié le groupe d'utilisateurs %{resource_name}"
154
161
  verify_via_csv: "%{user_name} vérifié le groupe %{resource_name} utilisateur via un fichier CSV"
162
+ user_moderation:
163
+ unreport: "%{user_name} a annulé le signalement de %{resource_type} - %{unreported_user_name}"
155
164
  admin_terms_of_use:
156
165
  default_body: "<h2>CONDITIONS D'UTILISATION ADMINISTRATEUR</h2><p>Nous espérons que vous avez reçu les instructions de l'administrateur système de la plateforme. Ils se résument généralement à ces trois choses :</p><ol><li>Respecter la vie privée des autres.</li><li>Réfléchissez avant de cliquer.</li><li>Un grand pouvoir implique de grandes responsabilités.</li></ol>"
157
166
  alert:
@@ -274,7 +283,7 @@ fr:
274
283
  dummy_authorization_workflow:
275
284
  name: Procédure d'autorisation factice
276
285
  errors:
277
- duplicate_authorization: Un utilisateur est déjà autorisé avec les mêmes données.
286
+ duplicate_authorization: Un participant est déjà autorisé avec ces mêmes données. Un administrateur vous contactera pour vérifier vos informations.
278
287
  expired_at: Expiré à %{timestamp}
279
288
  expires_at: Expire à %{timestamp}
280
289
  foo_authorization:
@@ -320,6 +329,13 @@ fr:
320
329
  title: confirmez votre email
321
330
  show:
322
331
  close_modal: Fermer la fenêtre de dialogue
332
+ block_user_mailer:
333
+ notify:
334
+ body_1: Votre compte a été bloqué.
335
+ body_2: 'Motif : %{justification}'
336
+ greetings: Salutations,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
337
+ hello: Bonjour,
338
+ subject: Votre compte a été bloqué par %{organization_name}
323
339
  collapsible_list:
324
340
  hidden_elements_count:
325
341
  one: et %{count} plus
@@ -368,6 +384,13 @@ fr:
368
384
  dummy_step_translatable_text: Texte traduisible de l'étape factice
369
385
  contact: Contact
370
386
  content_blocks:
387
+ cta:
388
+ name: Image, texte et bouton d'appel à l'action
389
+ cta_settings_form:
390
+ background_image: Image d'arrière-plan
391
+ button_text: Texte d'appel à l'action
392
+ button_url: URL du bouton d'appel à l’action
393
+ description: Description
371
394
  footer_sub_hero:
372
395
  name: Section "Bienvenue sur la plateforme" (. footer_sub_hero)
373
396
  hero:
@@ -377,6 +400,11 @@ fr:
377
400
  welcome_text: Texte de bienvenue
378
401
  highlighted_content_banner:
379
402
  name: Bannière de contenu mis en valeur
403
+ highlighted_elements_settings_form:
404
+ orders:
405
+ label: 'Trier les éléments par:'
406
+ random: Aléatoire
407
+ recent: Les plus récents
380
408
  how_to_participate:
381
409
  name: Comment participer
382
410
  html:
@@ -401,7 +429,7 @@ fr:
401
429
  ready: Prêt
402
430
  show:
403
431
  download_data: Télécharger les données
404
- download_data_description: Un fichier avec toutes les informations associées au compte sera envoyé à <strong>%{user_email}</strong>
432
+ download_data_description: Un fichier contenant toutes les informations associées à votre compte sera envoyé à <strong>%{user_email}</strong>. Cet e-mail contiendra un fichier .zip et un mot de passe pour l'ouvrir.<br/><br/>Pour décompresser le fichier, vous aurez besoin de <a href="https://www.7-zip.org/">7-Zip</a> (pour Windows) ou <a href="https://www.keka.io/">Keka</a> (pour MacOS). Si vous utilisez Linux, la plupart du temps, vous l'aurez installé par défaut. Sinon, vous pouvez utiliser <a href="https://gitlab.gnome.org/GNOME/file-roller">File Roller</a> ou <a href="https://peazip.github.io">PeaZip</a>.
405
433
  request_data: Demander les données
406
434
  datepicker:
407
435
  help_text: 'Format attendu : %{datepicker_format}'
@@ -437,6 +465,8 @@ fr:
437
465
  register: Créer un compte
438
466
  sign_in_disabled: Vous pouvez accéder avec un compte externe
439
467
  sign_up_disabled: L'inscription est désactivée, vous pouvez utiliser un utilisateur existant pour accéder
468
+ user:
469
+ timed_out: Vous avez été inactif pendant trop longtemps et vous avez été automatiquement déconnecté du service. Si vous souhaitez continuer à utiliser le service, veuillez vous reconnecter.
440
470
  shared:
441
471
  newsletter_modal:
442
472
  buttons:
@@ -603,6 +633,14 @@ fr:
603
633
  notification_title: Le groupe d'utilisateurs %{user_group_name} a mis à jour son profil, le laissant non vérifié. Vous pouvez maintenant le vérifier dans le <a href="%{groups_admin_path}">panneau d'administration</a>.
604
634
  notification_event:
605
635
  notification_title: Un événement a eu lieu à <a href="%{resource_path}">%{resource_title}</a>.
636
+ reports:
637
+ resource_hidden:
638
+ email_intro: Un administrateur a modéré votre %{resource_type} car il a été signalé comme %{report_reasons}.
639
+ email_outro: Vous avez reçu cette notification parce que vous êtes l'auteur du contenu modéré.
640
+ email_subject: Votre %{resource_type} a été modérée
641
+ notification_title: |-
642
+ Un administrateur a modéré votre %{resource_type} car il a été signalé comme %{report_reasons}.</br>
643
+ <i>%{resource_content}</i>
606
644
  resource_endorsed:
607
645
  email_intro: '%{endorser_name} %{endorser_nickname}, que vous suivez, vient de soutenir "%{resource_title}" et nous pensons que cela pourrait vous intéresser. Découvrez-le et contribuez :'
608
646
  email_outro: Vous avez reçu cette notification parce que vous suivez %{endorser_nickname}. Vous pouvez arrêter de recevoir des notifications en suivant le lien précédent.
@@ -616,7 +654,7 @@ fr:
616
654
  notification_title: Le <a href="%{resource_path}">profil public</a> de %{name} (%{nickname}), que vous suivez, a été mis à jour.
617
655
  export_mailer:
618
656
  data_portability_export:
619
- click_button: 'Cliquez sur le bouton suivant pour télécharger vos données. <br/> Le fichier sera disponible jusqu''au %{date}. <br/> Vous aurez besoin de <a href=''''https://www.7-zip.org/''''>7-Zip</a> pour l''ouvrir. Mot de passe : %{password}'
657
+ click_button: 'Cliquez sur le bouton suivant pour télécharger vos données.<br/>Le fichier sera disponible jusqu''au %{date}.<br/>Vous aurez besoin de <a href="https://www.7-zip.org/">7-Zip</a> (Windows), <a href="https://www.keka.io/en/">Keka</a> (MacOS) ou <a href="https://peazip.github.io">PeaZip</a> (Linux) pour l''ouvrir. Mot de passe : %{password}'
620
658
  download: Télécharger
621
659
  export:
622
660
  ready: Vous trouverez ci-joint une version zippée de votre exportation.
@@ -649,7 +687,7 @@ fr:
649
687
  create:
650
688
  button: Suivre
651
689
  error: Une erreur s'est produite lors du traitement de votre demande de suivre ce contenu.
652
- participatory_space: Déjà abonné <span class="show-for-sr">%{resource_name}</span>
690
+ participatory_space: Suivre <span class="show-for-sr">%{resource_name}</span>
653
691
  destroy:
654
692
  button: Ne plus suivre
655
693
  error: Une erreur s'est produite lors du traitement de votre demande de ne plus suivre ce contenu.
@@ -666,7 +704,7 @@ fr:
666
704
  file:
667
705
  explanation: 'Orientation pour le fichier :'
668
706
  message_1: Doit être une image ou un document.
669
- message_2: Pour les images, utilisez de préférence des images en format paysage, le service recadre l'image.
707
+ message_2: Pour les images, utilisez de préférence des formats paysage, car le service recadre l'image. Pour les fichiers CSV, le séparateur entre les colonnes doit être une virgule (",")
670
708
  image:
671
709
  explanation: 'Orientation pour l''image:'
672
710
  message_1: De préférence une image au format paysage qui n'a pas de texte.
@@ -908,7 +946,7 @@ fr:
908
946
  show:
909
947
  back: Retour à toutes les conversations
910
948
  chat_with: Conversation avec
911
- not_allowed: Cet utilisateur n'accepte plus de messages directs.
949
+ not_allowed: Cet utilisateur ne souhaite pas recevoir de messages directs.
912
950
  title: Conversation avec %{usernames}
913
951
  start:
914
952
  send: Envoyer
@@ -917,7 +955,7 @@ fr:
917
955
  error: 'Erreur : votre message n''a pas pu être envoyé'
918
956
  metrics:
919
957
  download:
920
- csv: Données de téléchargement (csv)
958
+ csv: Télécharger les données (CSV)
921
959
  followers:
922
960
  description: Nombre d'utilisateurs qui suivent cet espace de participation
923
961
  object: suiveurs
@@ -979,8 +1017,10 @@ fr:
979
1017
  no_notifications: Il n'y a pas encore de notifications.
980
1018
  notifications_settings:
981
1019
  show:
1020
+ administrators: Administrateurs
982
1021
  allow_public_contact: Permettre à n'importe quoi de m'envoyer un message direct, même si je ne les suis pas.
983
1022
  direct_messages: Recevoir des messages directs de n'importe qui
1023
+ email_on_moderations: Je veux recevoir un email chaque fois que quelque chose est signalé pour modération.
984
1024
  email_on_notification: Je souhaite recevoir un email à chaque fois que je reçois une notification.
985
1025
  everything_followed: Tout ce que je suis
986
1026
  newsletter_notifications: Je souhaite recevoir une newsletter sur l'actualité de la plateforme
@@ -1076,6 +1116,7 @@ fr:
1076
1116
  not_allowed: Vous n'êtes pas autorisé à voir ce contenu
1077
1117
  profile:
1078
1118
  deleted: Utilisateur ayant supprimé son compte
1119
+ inaccessible_message: Ce profil est inaccessible en raison d'une violation des Conditions Générales d'Utilisation !
1079
1120
  view: Voir
1080
1121
  profiles:
1081
1122
  default_officialization_text_for_user_groups: Ce groupe d'utilisateurs est publiquement vérifié, son nom a été vérifié pour correspondre à son vrai nom.
@@ -1089,6 +1130,7 @@ fr:
1089
1130
  groups: Groupes
1090
1131
  members: Membres
1091
1132
  officialized: Participant officiel
1133
+ send_private_message: Envoyer un message privé
1092
1134
  timeline: Chronologie
1093
1135
  view_full_profile: Voir le profil complet
1094
1136
  sidebar:
@@ -1116,13 +1158,15 @@ fr:
1116
1158
  report:
1117
1159
  authors: Auteurs
1118
1160
  content: Contenu signalé
1161
+ content_original_language: Langue d'origine du contenu
1119
1162
  date: Signalé le
1120
1163
  details: Détails
1121
1164
  hello: Bonjour %{name},
1122
- manage_moderations: Gérer les modérations
1165
+ id: ID
1123
1166
  participatory_space: Espace participatif
1124
1167
  reason: Raison
1125
1168
  report_html: <p>Le <a href="%{url}">contenu</a> suivant a été signalé.</p>
1169
+ see_report: Voir le signalement
1126
1170
  subject: Un contenu a été signalé
1127
1171
  reports:
1128
1172
  create:
@@ -1195,6 +1239,15 @@ fr:
1195
1239
  report: Signaler
1196
1240
  spam: Contient des publicités, des escroqueries, des pièges à clic (clickbait) ou des robots fonctionnant au script (script bots).
1197
1241
  title: Signaler un contenu inapproprié
1242
+ flag_user_modal:
1243
+ already_reported: Ce contenu a déjà été signalé et il sera examiné par un administrateur.
1244
+ close: Fermer
1245
+ description: Qu'est-ce qui est inapproprié à propos de cet utilisateur ?
1246
+ does_not_belong: Rédige des contenus qui vous semblent inappropriés à %{organization_name} (activités illégales, menaces suicidaires, informations personnelles,...).
1247
+ offensive: Rédige des contenus racistes, sexistes, contenant des insultes, attaques personnelles, menaces de mort, incitations au suicide ou toute forme de discours de haine.
1248
+ report: Signaler
1249
+ spam: Rédige des contenus de type publicités, des escroqueries, des pièges à clic (clickbait) ou des robots fonctionnant au script (script bots).
1250
+ title: Signaler un utilisateur inapproprié
1198
1251
  floating_help:
1199
1252
  close: Fermer l'aide
1200
1253
  help: Aidez-moi
@@ -1270,6 +1323,13 @@ fr:
1270
1323
  update:
1271
1324
  error: Une erreur s'est produite lors de la mise à jour de vos centres d'intérêt.
1272
1325
  success: Vos intérêts ont été mis à jour avec succès.
1326
+ user_report_mailer:
1327
+ notify:
1328
+ body_1: L'utilisateur %{user} a été signalé par %{token}
1329
+ body_2: 'Motif : %{reason}'
1330
+ greetings: Salutations,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
1331
+ hello: Bonjour %{admin},
1332
+ subject: Un nouvel utilisateur a été signalé dans %{organization_name}
1273
1333
  version:
1274
1334
  show:
1275
1335
  back_to_resource: Revenir en arrière
@@ -1455,7 +1515,7 @@ fr:
1455
1515
  messages:
1456
1516
  already_confirmed: était déjà confirmé, s'il vous plaît essayez de vous connecter
1457
1517
  confirmation_period_expired: doit être confirmé dans les %{period}, s'il vous plaît demander un nouveau
1458
- content_type_whitelist_error: le type de fichier n'est pas valide
1518
+ content_type_allowlist_error: le type de fichier n'est pas valide
1459
1519
  cycle_detected: un périmètre d'application ne peut pas être du même niveau que ses descendants
1460
1520
  expired: a expiré, s'il vous plaît demander un nouveau
1461
1521
  file_size_is_less_than_or_equal_to: la taille du fichier doit être inférieure ou égale à %{count}
@@ -1515,6 +1575,11 @@ fr:
1515
1575
  instagram: "%{organization} sur Instagram"
1516
1576
  twitter: "%{organization} sur Twitter"
1517
1577
  youtube: "%{organization} sur YouTube"
1578
+ timeout_modal:
1579
+ body: Vous avez été inactif pendant %{minutes} minutes. Si vous continuez à être inactif, vous serez automatiquement déconnecté pour votre propre sécurité.
1580
+ continue_session: Continuer la session
1581
+ sign_out: Se déconnecter
1582
+ title: Voulez-vous poursuivre votre session ?
1518
1583
  user_menu:
1519
1584
  account: 'Compte utilisateur: %{name}'
1520
1585
  admin_dashboard: Tableau de bord des administrateurs