decidim-core 0.23.0 → 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 (469) 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/layouts/_home.scss +5 -0
  25. data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +2 -2
  26. data/app/assets/stylesheets/decidim/modules/_buttons.scss +2 -2
  27. data/app/assets/stylesheets/decidim/modules/_cards.scss +18 -1
  28. data/app/assets/stylesheets/decidim/modules/_collapsible-list.scss +1 -1
  29. data/app/assets/stylesheets/decidim/modules/_comments.scss +5 -1
  30. data/app/assets/stylesheets/decidim/modules/_conference-speaker.scss +4 -3
  31. data/app/assets/stylesheets/decidim/modules/_data-picker.scss +7 -0
  32. data/app/assets/stylesheets/decidim/modules/_extra.scss +4 -0
  33. data/app/assets/stylesheets/decidim/modules/_forms.scss +4 -0
  34. data/app/assets/stylesheets/decidim/modules/_loading-spinner.scss +34 -0
  35. data/app/assets/stylesheets/decidim/modules/_modules.scss +1 -1
  36. data/app/assets/stylesheets/decidim/modules/_opinion-toggle.scss +1 -1
  37. data/app/assets/stylesheets/decidim/modules/_reveal.scss +6 -0
  38. data/app/assets/stylesheets/decidim/modules/_signup.scss +1 -0
  39. data/app/assets/stylesheets/decidim/modules/{_process-stats.scss → _space-stats.scss} +1 -1
  40. data/app/cells/decidim/activity_cell.rb +11 -8
  41. data/app/cells/decidim/announcement/show.erb +4 -4
  42. data/app/cells/decidim/announcement_cell.rb +22 -2
  43. data/app/cells/decidim/author/flag_user.erb +10 -0
  44. data/app/cells/decidim/author/profile_minicard.erb +1 -1
  45. data/app/cells/decidim/author_cell.rb +9 -1
  46. data/app/cells/decidim/card_m/top.erb +1 -1
  47. data/app/cells/decidim/card_m_cell.rb +1 -1
  48. data/app/cells/decidim/content_blocks/cta/show.erb +14 -0
  49. data/app/cells/decidim/content_blocks/cta_cell.rb +35 -0
  50. data/app/cells/decidim/content_blocks/cta_settings_form/show.erb +9 -0
  51. data/app/cells/decidim/content_blocks/cta_settings_form_cell.rb +13 -0
  52. data/app/cells/decidim/content_blocks/hero_cell.rb +14 -0
  53. data/app/cells/decidim/content_blocks/highlighted_elements/elements.erb +0 -0
  54. data/app/cells/decidim/content_blocks/highlighted_elements/heading.erb +0 -0
  55. data/app/cells/decidim/content_blocks/highlighted_elements/show.erb +4 -0
  56. data/app/cells/decidim/content_blocks/highlighted_elements_cell.rb +51 -0
  57. data/app/cells/decidim/content_blocks/highlighted_elements_settings_form/show.erb +3 -0
  58. data/app/cells/decidim/content_blocks/highlighted_elements_settings_form_cell.rb +28 -0
  59. data/app/cells/decidim/content_blocks/last_activity_cell.rb +11 -0
  60. data/app/cells/decidim/content_blocks/metrics_cell.rb +0 -6
  61. data/app/cells/decidim/content_blocks/stats_cell.rb +0 -6
  62. data/app/cells/decidim/content_blocks/sub_hero/show.erb +3 -1
  63. data/app/cells/decidim/date/show.erb +31 -0
  64. data/app/cells/decidim/date_cell.rb +50 -0
  65. data/app/cells/decidim/endorsement_buttons_cell.rb +3 -3
  66. data/app/cells/decidim/flag_modal/flag_user.erb +24 -0
  67. data/app/cells/decidim/flag_modal/show.erb +24 -0
  68. data/app/cells/decidim/flag_modal_cell.rb +25 -0
  69. data/app/cells/decidim/profile/inaccessible.erb +9 -0
  70. data/app/cells/decidim/profile_cell.rb +9 -1
  71. data/app/cells/decidim/profile_sidebar/show.erb +10 -1
  72. data/app/cells/decidim/profile_sidebar_cell.rb +1 -0
  73. data/app/cells/decidim/reported_content/show.erb +5 -0
  74. data/app/cells/decidim/reported_content_cell.rb +44 -0
  75. data/app/cells/decidim/scopes_picker/scope_picker_prompt.erb +3 -0
  76. data/app/cells/decidim/scopes_picker/scope_picker_values.erb +5 -0
  77. data/app/cells/decidim/scopes_picker/show.erb +14 -0
  78. data/app/cells/decidim/scopes_picker_cell.rb +93 -0
  79. data/app/cells/decidim/tos_page/announcement.erb +1 -2
  80. data/app/cells/decidim/tos_page/form.erb +19 -0
  81. data/app/cells/decidim/tos_page_cell.rb +10 -8
  82. data/app/cells/decidim/translation_bar_cell.rb +1 -1
  83. data/app/cells/decidim/user_conversation/conversation_header.erb +1 -1
  84. data/app/cells/decidim/user_conversations_cell.rb +1 -1
  85. data/app/commands/decidim/attachment_methods.rb +8 -0
  86. data/app/commands/decidim/create_report.rb +11 -1
  87. data/app/commands/decidim/create_user_report.rb +67 -0
  88. data/app/commands/decidim/gallery_methods.rb +2 -2
  89. data/app/commands/decidim/multiple_attachments_methods.rb +14 -10
  90. data/app/commands/decidim/search.rb +5 -2
  91. data/app/commands/decidim/update_notifications_settings.rb +1 -0
  92. data/app/commands/decidim/update_user_group.rb +1 -0
  93. data/app/controllers/concerns/decidim/devise_controllers.rb +1 -0
  94. data/app/controllers/concerns/decidim/flaggable.rb +5 -1
  95. data/app/controllers/concerns/decidim/force_authentication.rb +11 -3
  96. data/app/controllers/concerns/decidim/locale_switcher.rb +5 -0
  97. data/app/controllers/concerns/decidim/needs_permission.rb +7 -1
  98. data/app/controllers/concerns/decidim/orderable.rb +3 -1
  99. data/app/controllers/concerns/decidim/user_blocked_checker.rb +26 -0
  100. data/app/controllers/decidim/application_controller.rb +22 -0
  101. data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +3 -1
  102. data/app/controllers/decidim/devise/sessions_controller.rb +10 -6
  103. data/app/controllers/decidim/errors_controller.rb +1 -1
  104. data/app/controllers/decidim/locales_controller.rb +1 -1
  105. data/app/controllers/decidim/profiles_controller.rb +6 -0
  106. data/app/controllers/decidim/report_users_controller.rb +42 -0
  107. data/app/controllers/decidim/scopes_controller.rb +19 -10
  108. data/app/controllers/decidim/timeouts_controller.rb +28 -0
  109. data/app/controllers/decidim/user_activities_controller.rb +5 -0
  110. data/app/controllers/decidim/user_timeline_controller.rb +1 -0
  111. data/app/events/decidim/demoted_membership_event.rb +2 -2
  112. data/app/events/decidim/invited_to_group_event.rb +2 -2
  113. data/app/events/decidim/join_request_accepted_event.rb +2 -2
  114. data/app/events/decidim/join_request_created_event.rb +2 -2
  115. data/app/events/decidim/join_request_rejected_event.rb +2 -2
  116. data/app/events/decidim/promoted_to_admin_event.rb +2 -2
  117. data/app/events/decidim/removed_from_group_event.rb +2 -2
  118. data/app/forms/decidim/account_form.rb +1 -1
  119. data/app/forms/decidim/attachment_form.rb +1 -0
  120. data/app/forms/decidim/invite_user_form.rb +2 -2
  121. data/app/forms/decidim/messaging/conversation_form.rb +1 -1
  122. data/app/forms/decidim/messaging/message_form.rb +1 -1
  123. data/app/forms/decidim/notifications_settings_form.rb +20 -0
  124. data/app/forms/url_validator.rb +20 -0
  125. data/app/helpers/decidim/action_authorization_helper.rb +2 -0
  126. data/app/helpers/decidim/application_helper.rb +1 -2
  127. data/app/helpers/decidim/cells_helper.rb +6 -0
  128. data/app/helpers/decidim/filters_helper.rb +9 -0
  129. data/app/helpers/decidim/messaging/conversation_helper.rb +11 -1
  130. data/app/helpers/decidim/newsletters_helper.rb +7 -9
  131. data/app/helpers/decidim/paginate_helper.rb +1 -10
  132. data/app/helpers/decidim/sanitize_helper.rb +8 -0
  133. data/app/helpers/decidim/scopes_helper.rb +2 -2
  134. data/app/jobs/decidim/block_user_job.rb +11 -0
  135. data/app/jobs/decidim/data_portability_export_job.rb +3 -3
  136. data/app/jobs/decidim/export_job.rb +2 -2
  137. data/app/jobs/decidim/find_and_update_descendants_job.rb +48 -0
  138. data/app/jobs/decidim/machine_translation_resource_job.rb +3 -0
  139. data/app/jobs/decidim/machine_translation_save_job.rb +29 -0
  140. data/app/jobs/decidim/open_data_job.rb +1 -1
  141. data/app/jobs/decidim/update_search_indexes_job.rb +11 -0
  142. data/app/jobs/decidim/user_report_job.rb +11 -0
  143. data/app/mailers/decidim/application_mailer.rb +1 -0
  144. data/app/mailers/decidim/block_user_mailer.rb +21 -0
  145. data/app/mailers/decidim/reported_mailer.rb +33 -3
  146. data/app/mailers/decidim/user_report_mailer.rb +21 -0
  147. data/app/models/decidim/area.rb +0 -1
  148. data/app/models/decidim/area_type.rb +1 -1
  149. data/app/models/decidim/attachment.rb +3 -2
  150. data/app/models/decidim/attachment_collection.rb +1 -1
  151. data/app/models/decidim/authorization.rb +4 -0
  152. data/app/models/decidim/category.rb +6 -1
  153. data/app/models/decidim/impersonation_log.rb +5 -7
  154. data/app/models/decidim/metric.rb +2 -2
  155. data/app/models/decidim/moderation.rb +12 -0
  156. data/app/models/decidim/organization.rb +6 -2
  157. data/app/models/decidim/scope.rb +5 -2
  158. data/app/models/decidim/scope_type.rb +1 -1
  159. data/app/models/decidim/share_token.rb +1 -1
  160. data/app/models/decidim/static_page.rb +11 -1
  161. data/app/models/decidim/static_page_topic.rb +4 -0
  162. data/app/models/decidim/user.rb +23 -4
  163. data/app/models/decidim/user_base_entity.rb +12 -12
  164. data/app/models/decidim/user_block.rb +10 -0
  165. data/app/models/decidim/user_group.rb +1 -0
  166. data/app/models/decidim/user_moderation.rb +22 -0
  167. data/app/models/decidim/user_report.rb +31 -0
  168. data/app/permissions/decidim/permissions.rb +1 -3
  169. data/app/permissions/decidim/report_user_permissions.rb +13 -0
  170. data/app/presenters/decidim/admin_log/component_presenter.rb +2 -2
  171. data/app/presenters/decidim/admin_log/impersonation_log_presenter.rb +39 -0
  172. data/app/presenters/decidim/admin_log/moderation_presenter.rb +2 -2
  173. data/app/presenters/decidim/admin_log/organization_presenter.rb +3 -4
  174. data/app/presenters/decidim/admin_log/user_moderation_presenter.rb +63 -0
  175. data/app/presenters/decidim/admin_log/user_presenter.rb +19 -10
  176. data/app/presenters/decidim/home_stats_presenter.rb +3 -3
  177. data/app/presenters/decidim/log/base_presenter.rb +9 -1
  178. data/app/presenters/decidim/log/diff_presenter.rb +4 -3
  179. data/app/presenters/decidim/log/resource_presenter.rb +4 -4
  180. data/app/presenters/decidim/log/user_presenter.rb +1 -1
  181. data/app/presenters/decidim/menu_presenter.rb +12 -7
  182. data/app/presenters/decidim/nil_presenter.rb +0 -2
  183. data/app/presenters/decidim/user_presenter.rb +1 -1
  184. data/app/queries/decidim/metrics/blocked_users_metric_manage.rb +26 -0
  185. data/app/queries/decidim/metrics/followers_metric_manage.rb +3 -0
  186. data/app/queries/decidim/metrics/participants_metric_manage.rb +3 -0
  187. data/app/queries/decidim/metrics/reported_users_metric_manage.rb +26 -0
  188. data/app/queries/decidim/metrics/user_reports_metric_manage.rb +26 -0
  189. data/app/scrubbers/decidim/newsletter_scrubber.rb +31 -0
  190. data/app/services/decidim/activity_search.rb +1 -3
  191. data/app/services/decidim/base_diff_renderer.rb +1 -1
  192. data/app/services/decidim/data_portability_exporter.rb +1 -0
  193. data/app/services/decidim/email_notification_generator.rb +2 -2
  194. data/app/services/decidim/events_manager.rb +1 -1
  195. data/app/services/decidim/open_data_exporter.rb +36 -7
  196. data/app/services/decidim/tokenizer.rb +38 -0
  197. data/app/services/decidim/traceability.rb +3 -0
  198. data/app/services/decidim/zip_stream/zip_stream_writer.rb +3 -3
  199. data/app/uploaders/decidim/application_uploader.rb +24 -0
  200. data/app/uploaders/decidim/attachment_uploader.rb +2 -4
  201. data/app/uploaders/decidim/downloader.rb +9 -0
  202. data/app/uploaders/decidim/image_uploader.rb +9 -21
  203. data/app/uploaders/decidim/open_data_uploader.rb +5 -0
  204. data/app/uploaders/decidim/record_image_uploader.rb +2 -2
  205. data/app/validators/etiquette_validator.rb +0 -7
  206. data/app/validators/uploader_content_type_validator.rb +4 -2
  207. data/app/views/decidim/block_user_mailer/notify.html.erb +7 -0
  208. data/app/views/decidim/devise/confirmations/new.html.erb +1 -1
  209. data/app/views/decidim/devise/registrations/edit.html.erb +1 -1
  210. data/app/views/decidim/devise/unlocks/new.html.erb +1 -1
  211. data/app/views/decidim/messaging/conversations/_conversation.html.erb +1 -1
  212. data/app/views/decidim/messaging/conversations/_messages.html.erb +1 -1
  213. data/app/views/decidim/messaging/conversations/_show.html.erb +4 -4
  214. data/app/views/decidim/newsletter_mailer/newsletter.html.erb +1 -1
  215. data/app/views/decidim/notifications_settings/show.html.erb +11 -0
  216. data/app/views/decidim/pages/_standalone.html.erb +3 -1
  217. data/app/views/decidim/pages/_tabbed.html.erb +1 -1
  218. data/app/views/decidim/reported_mailer/report.html.erb +8 -8
  219. data/app/views/decidim/shared/_check_boxes_tree.html.erb +3 -3
  220. data/app/views/decidim/shared/_component_announcement.html.erb +2 -2
  221. data/app/views/decidim/shared/participatory_space_filters/_filters.html.erb +1 -1
  222. data/app/views/decidim/user_report_mailer/notify.html.erb +7 -0
  223. data/app/views/decidim/widgets/_data_picker.html.erb +1 -1
  224. data/app/views/layouts/decidim/_application.html.erb +1 -0
  225. data/app/views/layouts/decidim/_js_configuration.html.erb +1 -1
  226. data/app/views/layouts/decidim/_main_footer.html.erb +6 -4
  227. data/app/views/layouts/decidim/_timeout_modal.html.erb +21 -0
  228. data/config/initializers/active_support.rb +7 -0
  229. data/config/initializers/devise.rb +1 -1
  230. data/config/initializers/omniauth.rb +1 -1
  231. data/config/locales/ar.yml +1 -9
  232. data/config/locales/bg.yml +1 -15
  233. data/config/locales/ca.yml +43 -16
  234. data/config/locales/cs.yml +100 -35
  235. data/config/locales/de.yml +212 -138
  236. data/config/locales/el.yml +1 -16
  237. data/config/locales/en.yml +79 -14
  238. data/config/locales/eo.yml +0 -1
  239. data/config/locales/es-MX.yml +31 -16
  240. data/config/locales/es-PY.yml +30 -15
  241. data/config/locales/es.yml +30 -15
  242. data/config/locales/eu.yml +7 -9
  243. data/config/locales/fi-plain.yml +76 -12
  244. data/config/locales/fi.yml +82 -18
  245. data/config/locales/fr-CA.yml +79 -14
  246. data/config/locales/fr.yml +80 -15
  247. data/config/locales/gl.yml +1 -9
  248. data/config/locales/hu.yml +1 -15
  249. data/config/locales/id-ID.yml +1 -9
  250. data/config/locales/is-IS.yml +0 -2
  251. data/config/locales/it.yml +65 -14
  252. data/config/locales/ja.yml +7 -22
  253. data/config/locales/lv.yml +3 -15
  254. data/config/locales/nl.yml +48 -25
  255. data/config/locales/no.yml +24 -18
  256. data/config/locales/pl.yml +98 -23
  257. data/config/locales/pt-BR.yml +1 -9
  258. data/config/locales/pt.yml +1 -16
  259. data/config/locales/ro-RO.yml +20 -16
  260. data/config/locales/ru.yml +1 -10
  261. data/config/locales/si-LK.yml +1 -0
  262. data/config/locales/sk.yml +1 -15
  263. data/config/locales/sr-CS.yml +0 -11
  264. data/config/locales/sv.yml +6 -17
  265. data/config/locales/sw-KE.yml +1 -0
  266. data/config/locales/tr-TR.yml +639 -248
  267. data/config/locales/uk.yml +1 -7
  268. data/config/locales/zh-CN.yml +1 -16
  269. data/config/routes.rb +9 -4
  270. data/db/migrate/20170713131206_add_admin_to_users.rb +1 -1
  271. data/db/migrate/20180206143340_fix_reference_for_all_resources.rb +2 -0
  272. data/db/migrate/20180314085339_rename_maximum_votes_per_proposal_to_threshold_per_proposal.rb +2 -2
  273. data/db/migrate/20200929171508_remove_show_statistics_from_organizations.rb +7 -0
  274. data/db/migrate/20201010124755_create_decidim_user_moderations.rb +12 -0
  275. data/db/migrate/20201010124756_create_decidim_user_reports.rb +16 -0
  276. data/db/migrate/20201010224433_add_suspension_fields_to_decidim_users.rb +8 -0
  277. data/db/migrate/20201011074641_create_decidim_user_suspensions.rb +14 -0
  278. data/db/migrate/20201011081626_add_current_suspension_id_to_decidim_users.rb +7 -0
  279. data/db/migrate/20201013071533_add_reported_content_to_moderations.rb +7 -0
  280. data/db/migrate/20201019074554_add_locale_to_moderation_reports.rb +7 -0
  281. data/db/migrate/20201127114444_encrypt_authorization_metadatas.rb +35 -0
  282. data/db/migrate/20201128130723_add_allow_public_access_to_static_pages.rb +17 -0
  283. data/db/migrate/20201218144706_update_table_block_user_functionality.rb +8 -0
  284. data/db/migrate/20201218145252_rename_decidim_user_fields_for_block_functionality.rb +9 -0
  285. data/db/migrate/20210208134328_add_email_on_moderations_to_users.rb +7 -0
  286. data/db/seeds.rb +18 -12
  287. data/lib/decidim/amendable.rb +3 -2
  288. data/{app/functions/decidim/core → lib/decidim/api/functions}/component_finder_base.rb +1 -1
  289. data/{app/functions/decidim/core → lib/decidim/api/functions}/component_list.rb +4 -4
  290. data/{app/functions/decidim/core → lib/decidim/api/functions}/component_list_base.rb +3 -1
  291. data/lib/decidim/api/functions/needs_api_default_order.rb +24 -0
  292. data/{app/functions/decidim/core → lib/decidim/api/functions}/needs_api_filter_and_order.rb +0 -0
  293. data/{app/functions/decidim/core → lib/decidim/api/functions}/participatory_space_finder_base.rb +2 -2
  294. data/{app/functions/decidim/core → lib/decidim/api/functions}/participatory_space_list_base.rb +3 -1
  295. data/{app/functions/decidim/core → lib/decidim/api/functions}/user_entity_finder.rb +1 -4
  296. data/{app/functions/decidim/core → lib/decidim/api/functions}/user_entity_list.rb +1 -3
  297. data/{app/types/decidim/core → lib/decidim/api/input_filters}/base_input_filter.rb +0 -0
  298. data/{app/types/decidim/core → lib/decidim/api/input_filters}/component_input_filter.rb +20 -22
  299. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_hastaggable_input_filter.rb +1 -1
  300. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_localized_input_filter.rb +3 -3
  301. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_publishable_input_filter.rb +6 -6
  302. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_timestamp_input_filter.rb +12 -12
  303. data/{app/types/decidim/core → lib/decidim/api/input_filters}/participatory_space_input_filter.rb +0 -1
  304. data/lib/decidim/api/input_filters/user_entity_input_filter.rb +89 -0
  305. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/base_input_sort.rb +3 -2
  306. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/component_input_sort.rb +10 -11
  307. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/has_endorsable_input_sort.rb +2 -4
  308. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/has_localized_input_sort.rb +3 -3
  309. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/has_publishable_input_sort.rb +1 -1
  310. data/lib/decidim/api/input_sorts/has_timestamp_input_sort.rb +12 -0
  311. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/participatory_space_input_sort.rb +1 -1
  312. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/user_entity_input_sort.rb +4 -4
  313. data/lib/decidim/api/{amendable_entity_interface.rb → interfaces/amendable_entity_interface.rb} +5 -5
  314. data/lib/decidim/api/interfaces/amendable_interface.rb +17 -0
  315. data/lib/decidim/api/{attachable_interface.rb → interfaces/attachable_interface.rb} +3 -3
  316. data/lib/decidim/api/interfaces/author_interface.rb +32 -0
  317. data/lib/decidim/api/interfaces/authorable_interface.rb +23 -0
  318. data/lib/decidim/api/{categorizable_interface.rb → interfaces/categorizable_interface.rb} +3 -3
  319. data/lib/decidim/api/interfaces/coauthorable_interface.rb +30 -0
  320. data/lib/decidim/api/interfaces/component_interface.rb +22 -0
  321. data/lib/decidim/api/interfaces/endorsable_interface.rb +19 -0
  322. data/lib/decidim/api/{fingerprint_interface.rb → interfaces/fingerprint_interface.rb} +3 -3
  323. data/lib/decidim/api/interfaces/participatory_space_interface.rb +48 -0
  324. data/lib/decidim/api/interfaces/participatory_space_resourceable_interface.rb +25 -0
  325. data/lib/decidim/api/{scopable_interface.rb → interfaces/scopable_interface.rb} +3 -3
  326. data/lib/decidim/api/interfaces/timestamps_interface.rb +15 -0
  327. data/lib/decidim/api/interfaces/traceable_interface.rb +14 -0
  328. data/lib/decidim/api/scalars/date_time_type.rb +17 -0
  329. data/lib/decidim/api/scalars/date_type.rb +17 -0
  330. data/lib/decidim/api/types/amendment_type.rb +19 -0
  331. data/lib/decidim/api/types/area_api_type.rb +16 -0
  332. data/lib/decidim/api/types/area_type_type.rb +13 -0
  333. data/lib/decidim/api/types/attachment_type.rb +13 -0
  334. data/lib/decidim/api/types/category_type.rb +14 -0
  335. data/{app/types/decidim/core → lib/decidim/api/types}/component_type.rb +2 -4
  336. data/lib/decidim/api/types/coordinates_type.rb +21 -0
  337. data/lib/decidim/api/types/decidim_type.rb +13 -0
  338. data/lib/decidim/api/types/fingerprint_type.rb +12 -0
  339. data/lib/decidim/api/types/hashtag_type.rb +13 -0
  340. data/lib/decidim/api/types/localized_string_type.rb +13 -0
  341. data/lib/decidim/api/types/metric_history_type.rb +18 -0
  342. data/lib/decidim/api/types/metric_type.rb +13 -0
  343. data/lib/decidim/api/types/organization_type.rb +17 -0
  344. data/lib/decidim/api/types/participatory_space_link_type.rb +22 -0
  345. data/lib/decidim/api/types/participatory_space_type.rb +10 -0
  346. data/lib/decidim/api/types/scope_api_type.rb +16 -0
  347. data/lib/decidim/api/types/session_type.rb +22 -0
  348. data/lib/decidim/api/types/statistic_type.rb +20 -0
  349. data/lib/decidim/api/types/trace_version_type.rb +21 -0
  350. data/lib/decidim/api/types/translated_field_type.rb +36 -0
  351. data/lib/decidim/api/types/user_group_type.rb +64 -0
  352. data/lib/decidim/api/types/user_type.rb +67 -0
  353. data/lib/decidim/attachment_attributes.rb +57 -0
  354. data/lib/decidim/attributes.rb +1 -0
  355. data/lib/decidim/attributes/clean_string.rb +37 -0
  356. data/lib/decidim/coauthorable.rb +3 -3
  357. data/lib/decidim/component_manifest.rb +17 -0
  358. data/lib/decidim/content_block_manifest.rb +1 -1
  359. data/lib/decidim/content_parsers/hashtag_parser.rb +3 -6
  360. data/lib/decidim/content_parsers/user_group_parser.rb +2 -5
  361. data/lib/decidim/content_parsers/user_parser.rb +2 -5
  362. data/lib/decidim/content_processor.rb +1 -1
  363. data/lib/decidim/content_renderers/hashtag_renderer.rb +3 -6
  364. data/lib/decidim/core.rb +11 -3
  365. data/lib/decidim/core/api.rb +71 -16
  366. data/lib/decidim/core/engine.rb +40 -6
  367. data/lib/decidim/core/test.rb +4 -0
  368. data/lib/decidim/core/test/factories.rb +53 -15
  369. data/lib/decidim/core/test/shared_examples/admin_log_presenter_examples.rb +34 -0
  370. data/lib/decidim/core/test/shared_examples/admin_resource_gallery_examples.rb +1 -1
  371. data/lib/decidim/core/test/shared_examples/amendable/amendment_accepted_event_examples.rb +1 -1
  372. data/lib/decidim/core/test/shared_examples/amendable/amendment_promoted_event_examples.rb +1 -1
  373. data/lib/decidim/core/test/shared_examples/amendable/amendment_rejected_event_examples.rb +1 -1
  374. data/lib/decidim/core/test/shared_examples/comments_examples.rb +11 -9
  375. data/lib/decidim/core/test/shared_examples/component_type.rb +1 -1
  376. data/lib/decidim/core/test/shared_examples/controller_render_views.rb +28 -0
  377. data/lib/decidim/core/test/shared_examples/counts_commentators_as_newsletter_participants.rb +31 -0
  378. data/lib/decidim/core/test/shared_examples/follows_examples.rb +1 -1
  379. data/lib/decidim/core/test/shared_examples/logo_email.rb +1 -1
  380. data/lib/decidim/core/test/shared_examples/map_examples.rb +1 -1
  381. data/lib/decidim/core/test/shared_examples/process_announcements_examples.rb +1 -1
  382. data/lib/decidim/core/test/shared_examples/reportable.rb +8 -0
  383. data/lib/decidim/core/test/shared_examples/rich_text_editor_examples.rb +1 -1
  384. data/lib/decidim/core/test/shared_examples/searchable_participatory_space_examples.rb +2 -3
  385. data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +46 -0
  386. data/lib/decidim/core/test/shared_examples/static_pages_examples.rb +43 -0
  387. data/lib/decidim/core/version.rb +1 -1
  388. data/lib/decidim/diffy_extension.rb +2 -2
  389. data/lib/decidim/events/base_event.rb +18 -2
  390. data/lib/decidim/exporters/csv.rb +3 -2
  391. data/lib/decidim/exporters/export_data.rb +1 -1
  392. data/lib/decidim/faker/internet.rb +17 -0
  393. data/lib/decidim/faker/localized.rb +43 -20
  394. data/lib/decidim/file_validator_humanizer.rb +6 -4
  395. data/lib/decidim/form_builder.rb +36 -24
  396. data/lib/decidim/gamification/badge_scorer.rb +3 -2
  397. data/lib/decidim/gamification/base_event.rb +2 -2
  398. data/lib/decidim/geocodable.rb +2 -0
  399. data/lib/decidim/has_category.rb +1 -1
  400. data/lib/decidim/has_private_users.rb +2 -2
  401. data/lib/decidim/importers/import_manifest.rb +36 -0
  402. data/lib/decidim/map/autocomplete.rb +11 -1
  403. data/lib/decidim/metric_operation.rb +5 -6
  404. data/lib/decidim/newsletter_participant.rb +2 -4
  405. data/lib/decidim/paddable.rb +11 -4
  406. data/lib/decidim/participatory_space_resourceable.rb +1 -3
  407. data/lib/decidim/query_extensions.rb +90 -69
  408. data/lib/decidim/randomable.rb +6 -1
  409. data/lib/decidim/record_encryptor.rb +131 -0
  410. data/lib/decidim/reportable.rb +26 -0
  411. data/lib/decidim/resource_manifest.rb +3 -0
  412. data/lib/decidim/resourceable.rb +6 -6
  413. data/lib/decidim/scopable.rb +1 -1
  414. data/lib/decidim/search_resource_fields_mapper.rb +3 -3
  415. data/lib/decidim/searchable.rb +11 -0
  416. data/lib/decidim/settings_manifest.rb +2 -1
  417. data/lib/decidim/shareable_with_token.rb +0 -1
  418. data/lib/decidim/translatable_attributes.rb +2 -1
  419. data/lib/decidim/translatable_resource.rb +10 -0
  420. data/lib/decidim/user_reportable.rb +33 -0
  421. data/lib/decidim/view_model.rb +26 -0
  422. data/lib/premailer/adapter/decidim.rb +33 -0
  423. data/lib/tasks/decidim_data_portability_tasks.rake +4 -4
  424. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ko.js +18 -0
  425. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.vi.js +14 -0
  426. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.zh-CN.js +14 -0
  427. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.zh-TW.js +14 -0
  428. metadata +203 -105
  429. data/app/cells/decidim/tos_page/sticky_form.erb +0 -29
  430. data/app/functions/decidim/core/participatory_space_finder.rb +0 -11
  431. data/app/functions/decidim/core/participatory_space_list.rb +0 -11
  432. data/app/types/decidim/core/amendment_type.rb +0 -26
  433. data/app/types/decidim/core/area_api_type.rb +0 -16
  434. data/app/types/decidim/core/area_type_type.rb +0 -14
  435. data/app/types/decidim/core/attachment_type.rb +0 -14
  436. data/app/types/decidim/core/category_type.rb +0 -16
  437. data/app/types/decidim/core/coordinates_type.rb +0 -19
  438. data/app/types/decidim/core/date_time_type.rb +0 -12
  439. data/app/types/decidim/core/date_type.rb +0 -13
  440. data/app/types/decidim/core/decidim_type.rb +0 -19
  441. data/app/types/decidim/core/fingerprint_type.rb +0 -15
  442. data/app/types/decidim/core/has_timestamp_input_sort.rb +0 -12
  443. data/app/types/decidim/core/hashtag_type.rb +0 -13
  444. data/app/types/decidim/core/localized_string_type.rb +0 -14
  445. data/app/types/decidim/core/metric_history_type.rb +0 -17
  446. data/app/types/decidim/core/metric_type.rb +0 -14
  447. data/app/types/decidim/core/organization_type.rb +0 -20
  448. data/app/types/decidim/core/participatory_space_link_type.rb +0 -24
  449. data/app/types/decidim/core/participatory_space_type.rb +0 -12
  450. data/app/types/decidim/core/scope_api_type.rb +0 -16
  451. data/app/types/decidim/core/session_type.rb +0 -19
  452. data/app/types/decidim/core/statistic_type.rb +0 -22
  453. data/app/types/decidim/core/trace_version_type.rb +0 -29
  454. data/app/types/decidim/core/translated_field_type.rb +0 -45
  455. data/app/types/decidim/core/user_entity_input_filter.rb +0 -81
  456. data/app/types/decidim/core/user_group_type.rb +0 -51
  457. data/app/types/decidim/core/user_type.rb +0 -52
  458. data/app/views/decidim/shared/_announcement.html.erb +0 -1
  459. data/app/views/decidim/shared/_flag_modal.html.erb +0 -20
  460. data/lib/decidim/api/amendable_interface.rb +0 -18
  461. data/lib/decidim/api/author_interface.rb +0 -29
  462. data/lib/decidim/api/authorable_interface.rb +0 -22
  463. data/lib/decidim/api/coauthorable_interface.rb +0 -29
  464. data/lib/decidim/api/component_interface.rb +0 -20
  465. data/lib/decidim/api/endorsable_interface.rb +0 -22
  466. data/lib/decidim/api/participatory_space_interface.rb +0 -47
  467. data/lib/decidim/api/participatory_space_resourceable_interface.rb +0 -21
  468. data/lib/decidim/api/timestamps_interface.rb +0 -21
  469. data/lib/decidim/api/traceable_interface.rb +0 -14
@@ -35,7 +35,6 @@ el:
35
35
  decidim/profile_updated_event: Το προφίλ ενημερώθηκε
36
36
  decidim/promote_to_admin: Αναβάθμιση σε διαχειριστής ομάδας
37
37
  decidim/removed_from_group: Αφαιρέθηκε από την ομάδα
38
- decidim/resource_endorsed_event: Το στοιχείο επιδοκιμάστηκε
39
38
  activerecord:
40
39
  attributes:
41
40
  decidim/user:
@@ -82,7 +81,6 @@ el:
82
81
  file_no_exists: Το αρχείο δεν υπάρχει
83
82
  notice: Η λήψη των δεδομένων σας είναι σε εξέλιξη. Θα λάβετε email όταν ολοκληρωθεί.
84
83
  delete:
85
- alert: Αυτή η ενέργεια δεν μπορεί να αναιρεθεί. Αν διαγράψετε τον λογαριασμό σας δεν θα μπορείτε να συνδεθείτε.
86
84
  confirm:
87
85
  close: Κλείσιμο παραθύρου
88
86
  ok: Ναι, θέλω να διαγράψω τον λογαριασμό μου
@@ -128,7 +126,6 @@ el:
128
126
  update: "Ο χρήστης %{user_name} ενημέρωσε τις ρυθμίσεις του οργανισμού"
129
127
  participatory_space_private_user:
130
128
  create: "Ο χρήστης %{user_name} προσκάλεσε τον χρήστη %{resource_name} να γίνει ιδιωτικός συμμετέχων"
131
- create_via_csv: "Ο χρήστης %{user_name} προσκάλεσε τον χρήστη %{resource_name} μέσω csv να γίνει ιδιωτικός συμμετέχων"
132
129
  delete: "Ο χρήστης %{user_name} κατάργησε τον συμμετέχοντα %{resource_name} ως ιδιωτικό συμμετέχων"
133
130
  scope:
134
131
  create: "Ο χρήστης %{user_name} δημιούργησε το πεδίο εφαρμογής %{resource_name}"
@@ -266,8 +263,6 @@ el:
266
263
  name: Παράδειγμα εξουσιοδότησης
267
264
  dummy_authorization_workflow:
268
265
  name: Ροή εργασίας εικονικής εξουσιοδότησης
269
- errors:
270
- duplicate_authorization: Ένας συμμετέχων έχει ήδη εξουσιοδοτηθεί με τα ίδια δεδομένα.
271
266
  expired_at: Έληξε στις %{timestamp}
272
267
  expires_at: Λήγει στις %{timestamp}
273
268
  foo_authorization:
@@ -391,7 +386,6 @@ el:
391
386
  ready: Έτοιμο
392
387
  show:
393
388
  download_data: Πραγματοποιήστε λήψη των δεδομένων
394
- download_data_description: Ένα αρχείο με όλες τις πληροφορίες που σχετίζονται με τον λογαριασμό θα σταλεί στη διεύθυνση <strong>%{user_email}</strong>
395
389
  request_data: Αίτηση για δεδομένα
396
390
  datepicker:
397
391
  help_text: 'Αναμενόμενη μορφή: %{datepicker_format}'
@@ -401,7 +395,6 @@ el:
401
395
  email_already_exists: Ένας άλλος λογαριασμός χρησιμοποιεί την ίδια διεύθυνση email
402
396
  new:
403
397
  complete_profile: Πλήρες προφίλ
404
- nickname_help: Το ψευδώνυμό σας στον οργανισμό %{organization}
405
398
  sign_up: Συμπληρώστε το προφίλ σας
406
399
  subtitle: Συμπληρώστε την παρακάτω φόρμα για να ολοκληρώσετε την εγγραφή
407
400
  username_help: Το δημόσιο όνομα που εμφανίζεται στις δημοσιεύσεις σας. Με σκοπό τη διασφάλιση της ανωνυμίας, μπορεί να είναι οποιοδήποτε όνομα.
@@ -410,7 +403,6 @@ el:
410
403
  already_have_an_account?: Έχετε ήδη λογαριασμό;
411
404
  newsletter: Λάβετε ένα περιστασιακό ενημερωτικό δελτίο με σχετικές πληροφορίες
412
405
  newsletter_title: Άδεια επικοινωνίας
413
- nickname_help: Το ψευδώνυμό σας στον οργανισμό %{organization}
414
406
  password_help: "Τουλάχιστον %{minimun_characters} χαρακτήρες, δεν πρέπει να είναι πολύ συνηθισμένο (π.χ. 123456) και πρέπει να διαφέρει από το ψευδώνυμο και το email σας."
415
407
  sign_in: Σύνδεση
416
408
  sign_up: Εγγραφή
@@ -614,7 +606,6 @@ el:
614
606
  notification_title: Η <a href="%{resource_path}">σελίδα προφίλ</a> του υποστηρικτή %{name} (%{nickname}), τον οποίο ακολουθείτε, έχει ενημερωθεί.
615
607
  export_mailer:
616
608
  data_portability_export:
617
- click_button: 'Κάντε κλικ στο επόμενο κουμπί για να πραγματοποιήσετε λήψη των δεδομένων σας. <br/> Θα έχετε το αρχείο διαθέσιμο έως τις %{date}. <br/> Θα χρειαστείτε το <a href=''https://www.7-zip.org/''>7-Zip</a> για να το ανοίξετε. Κωδικός πρόσβασης: %{password}'
618
609
  download: Λήψη
619
610
  export:
620
611
  ready: Επισυνάπτεται μια συμπιεσμένη έκδοση της εξαγωγής σας.
@@ -647,7 +638,6 @@ el:
647
638
  create:
648
639
  button: Παρακολούθηση
649
640
  error: Υπήρξε ένα πρόβλημα κατά την παρακολούθηση αυτού του πόρου.
650
- participatory_space: Ακολουθείτε ήδη το <span class="show-for-sr">%{resource_name}</span>
651
641
  destroy:
652
642
  button: Διακοπή παρακολούθησης
653
643
  error: Υπήρξε ένα πρόβλημα κατά τη διακοπή παρακολούθησης αυτού του πόρου.
@@ -664,7 +654,6 @@ el:
664
654
  file:
665
655
  explanation: 'Οδηγίες για αρχείο:'
666
656
  message_1: Πρέπει να είναι εικόνα ή έγγραφο.
667
- message_2: Για εικόνες, χρησιμοποιήστε κατά προτίμηση οριζόντιας διάταξης, η υπηρεσία περικόπτει την εικόνα.
668
657
  image:
669
658
  explanation: 'Οδηγίες για εικόνα:'
670
659
  message_1: Προτιμώμενη εικόνα οριζόντιας διάταξης που δεν περιέχει κείμενο.
@@ -901,14 +890,11 @@ el:
901
890
  show:
902
891
  back: Πίσω σε όλες τις συνομιλίες
903
892
  chat_with: Συνομιλία με
904
- not_allowed: Αυτός ο χρήστης δεν δέχεται πλέον άμεσα μηνύματα.
905
893
  title: Συνομιλία με τους χρήστες %{usernames}
906
894
  start:
907
895
  send: Αποστολή
908
896
  title: Έναρξη συνομιλίας
909
897
  metrics:
910
- download:
911
- csv: Λήψη δεδομένων (csv)
912
898
  followers:
913
899
  description: Αριθμός συμμετεχόντων που ακολουθούν αυτόν τον χώρο συμμετοχής
914
900
  object: ακόλουθοι
@@ -1105,7 +1091,6 @@ el:
1105
1091
  subject: Ένας πόρος αποκρύφτηκε αυτόματα
1106
1092
  report:
1107
1093
  hello: Γεια σας %{name},
1108
- manage_moderations: Διαχείριση εποπτεύσεων
1109
1094
  report_html: <p>Το παρακάτω <a href="%{url}">περιεχόμενο</a> αναφέρθηκε.</p>
1110
1095
  subject: Έχει αναφερθεί ένας πόρος
1111
1096
  reports:
@@ -1430,7 +1415,7 @@ el:
1430
1415
  messages:
1431
1416
  already_confirmed: έχει ήδη επιβεβαιωθεί, δοκιμάστε να συνδεθείτε
1432
1417
  confirmation_period_expired: πρέπει να επιβεβαιωθεί εντός %{period}, ζητήστε έναν νέο
1433
- content_type_whitelist_error: ο τύπος αρχείου δεν είναι έγκυρος
1418
+ content_type_allowlist_error: ο τύπος αρχείου δεν είναι έγκυρος
1434
1419
  cycle_detected: το γονικό στοιχείο ενός πεδίου εφαρμογής δεν μπορεί να είναι ένα απογονικό στοιχείο του
1435
1420
  expired: έχει λήξει, ζητήστε έναν νέο
1436
1421
  file_size_is_less_than_or_equal_to: το μέγεθος του αρχείου πρέπει να είναι μικρότερο ή ίσο με %{count}
@@ -36,7 +36,7 @@ en:
36
36
  decidim/profile_updated_event: Profile updated
37
37
  decidim/promote_to_admin: Promoted to group admin
38
38
  decidim/removed_from_group: Removed from group
39
- decidim/resource_endorsed_event: Resurce endorsed
39
+ decidim/resource_endorsed_event: Resource endorsed
40
40
  activerecord:
41
41
  attributes:
42
42
  decidim/user:
@@ -80,11 +80,12 @@ en:
80
80
  logo: "%{organization}'s official logo"
81
81
  skip_button: Skip to main content
82
82
  account:
83
+ blocked: This account has been blocked due to Terms and Conditions violation
83
84
  data_portability_export:
84
85
  file_no_exists: File does not exist
85
86
  notice: The download of your data is currently in progress. You'll receive an email when it's complete.
86
87
  delete:
87
- alert: This action cannot be undone. If you delete your account you won't be able to log in.
88
+ alert: This action cannot be undone. If you delete your account you won't be able to log in with your credentials. The deletion of your account will result in the anonymization of your contributions. You will still be able to create a new account, but these contributions will not be associated with it.
88
89
  confirm:
89
90
  close: Close window
90
91
  ok: Yes, I want to delete my account
@@ -114,6 +115,8 @@ en:
114
115
  delete: "%{user_name} removed the %{resource_name} component from the %{space_name} space"
115
116
  publish: "%{user_name} published the %{resource_name} component in the %{space_name} space"
116
117
  unpublish: "%{user_name} unpublished the %{resource_name} component from the %{space_name} space"
118
+ impersonation_log:
119
+ manage: "%{user_name} has managed %{resource_name} because %{reason}"
117
120
  moderation:
118
121
  hide: "%{user_name} hid a resource of type %{resource_type} in the %{space_name} space"
119
122
  unreport: "%{user_name} unreported a resource of type %{resource_type} in the %{space_name} space"
@@ -130,7 +133,7 @@ en:
130
133
  update: "%{user_name} updated the organization settings"
131
134
  participatory_space_private_user:
132
135
  create: "%{user_name} invited %{resource_name} to be a private participant"
133
- create_via_csv: "%{user_name} invited %{resource_name} via csv to be a private participant"
136
+ create_via_csv: "%{user_name} invited %{resource_name} via CSV to be a private participant"
134
137
  delete: "%{user_name} removed the participant %{resource_name} as a private participant"
135
138
  scope:
136
139
  create: "%{user_name} created the %{resource_name} scope"
@@ -144,15 +147,21 @@ en:
144
147
  delete: "%{user_name} deleted the %{resource_name} static page"
145
148
  update: "%{user_name} updated the %{resource_name} static page"
146
149
  user:
150
+ block: "%{user_name} blocked user %{resource_name}"
147
151
  invite: "%{user_name} invited the participant %{resource_name} with role: %{role}"
148
152
  officialize: "%{user_name} officialized the participant %{resource_name}"
153
+ promote: "%{user_name} has promoted %{resource_name}"
149
154
  remove_from_admin: "%{user_name} removed the participant %{resource_name} with role: %{role}"
150
155
  show_email: "%{user_name} retrieved the email of the participant %{resource_name}"
156
+ transfer: "%{user_name} transfered the participant %{resource_name}"
157
+ unblock: "%{user_name} unblocked user %{resource_name}"
151
158
  unofficialize: "%{user_name} unofficialized the participant %{resource_name}"
152
159
  user_group:
153
160
  reject: "%{user_name} rejected the %{resource_name} group verification"
154
161
  verify: "%{user_name} verified the group %{resource_name}"
155
162
  verify_via_csv: "%{user_name} verified the group %{resource_name} via a CSV file"
163
+ user_moderation:
164
+ unreport: "%{user_name} unreported an %{resource_type} - %{unreported_user_name}"
156
165
  admin_terms_of_use:
157
166
  default_body: "<h2>ADMIN TERMS OF USE</h2><p>We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:</p><ol><li>Respect the privacy of others.</li><li>Think before you click.</li><li>With great power comes great responsibility.</li></ol>"
158
167
  alert:
@@ -275,7 +284,7 @@ en:
275
284
  dummy_authorization_workflow:
276
285
  name: Dummy authorization workflow
277
286
  errors:
278
- duplicate_authorization: A participant is already authorized with the same data.
287
+ duplicate_authorization: A participant is already authorized with the same data. An administrator will contact you to verify your details.
279
288
  expired_at: Expired at %{timestamp}
280
289
  expires_at: Expires at %{timestamp}
281
290
  foo_authorization:
@@ -321,6 +330,13 @@ en:
321
330
  title: Confirm your email
322
331
  show:
323
332
  close_modal: Close modal
333
+ block_user_mailer:
334
+ notify:
335
+ body_1: Your account was blocked.
336
+ body_2: 'Reason: %{justification}'
337
+ greetings: Greetings,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
338
+ hello: Hello,
339
+ subject: Your account was blocked by %{organization_name}
324
340
  collapsible_list:
325
341
  hidden_elements_count:
326
342
  one: and %{count} more
@@ -369,6 +385,13 @@ en:
369
385
  dummy_step_translatable_text: Dummy Step Translatable Text
370
386
  contact: Contact
371
387
  content_blocks:
388
+ cta:
389
+ name: Image, text and Call To Action button
390
+ cta_settings_form:
391
+ background_image: Background image
392
+ button_text: Call To Action text
393
+ button_url: Call To Action URL
394
+ description: Description
372
395
  footer_sub_hero:
373
396
  name: Footer sub hero banner
374
397
  hero:
@@ -378,6 +401,11 @@ en:
378
401
  welcome_text: Welcome text
379
402
  highlighted_content_banner:
380
403
  name: Highlighted content banner
404
+ highlighted_elements_settings_form:
405
+ orders:
406
+ label: 'Sort elements by:'
407
+ random: Random
408
+ recent: Most recent
381
409
  how_to_participate:
382
410
  name: How to participate
383
411
  html:
@@ -402,7 +430,7 @@ en:
402
430
  ready: Ready
403
431
  show:
404
432
  download_data: Download the data
405
- download_data_description: A file with all the information associated with the account will be sent to <strong>%{user_email}</strong>
433
+ download_data_description: A file containing all the information associated with your account will be sent to <strong>%{user_email}</strong>. This email will contain a .zip file and a password to open it.<br/><br/>To unzip the file, you will need <a href="https://www.7-zip.org/">7-Zip</a> (for Windows) or <a href="https://www.keka.io/">Keka</a> (for MacOS). If you use Linux, most of the time you will have it installed by default. If not, you can use <a href="https://gitlab.gnome.org/GNOME/file-roller">File Roller</a> or <a href="https://peazip.github.io">PeaZip</a>).
406
434
  request_data: Request data
407
435
  datepicker:
408
436
  help_text: 'Expected format: %{datepicker_format}'
@@ -412,7 +440,7 @@ en:
412
440
  email_already_exists: Another account is using the same email address
413
441
  new:
414
442
  complete_profile: Complete profile
415
- nickname_help: Your alias in %{organization}
443
+ nickname_help: Your alias in %{organization}. Can only contain letters, numbers, '-' and '_'.
416
444
  sign_up: Please complete your profile
417
445
  subtitle: Please fill in the following form in order to complete the sign up
418
446
  username_help: Public name that appears on your posts. With the aim of guaranteeing the anonymity, can be any name.
@@ -421,7 +449,7 @@ en:
421
449
  already_have_an_account?: Already have an account?
422
450
  newsletter: Receive an occasional newsletter with relevant information
423
451
  newsletter_title: Contact permission
424
- nickname_help: Your alias in %{organization}
452
+ nickname_help: Your alias in %{organization}. Can only contain letters, numbers, '-' and '_'.
425
453
  password_help: "%{minimun_characters} characters minimum, must not be too common (e.g. 123456) and must be different from your nickname and your email."
426
454
  sign_in: Log in
427
455
  sign_up: Sign up
@@ -438,6 +466,8 @@ en:
438
466
  register: Create an account
439
467
  sign_in_disabled: You can access with an external account
440
468
  sign_up_disabled: Sign up is disabled, you can use an existing account to access
469
+ user:
470
+ timed_out: You were inactive for too long and you have been automatically signed out from the service. If you would like to continue using the service, please sign in again.
441
471
  shared:
442
472
  newsletter_modal:
443
473
  buttons:
@@ -613,6 +643,14 @@ en:
613
643
  notification_title: The %{user_group_name} user group has updated its profile, leaving it unverified. You can now verify it in the <a href="%{groups_admin_path}">admin panel</a>.
614
644
  notification_event:
615
645
  notification_title: An event occured to <a href="%{resource_path}">%{resource_title}</a>.
646
+ reports:
647
+ resource_hidden:
648
+ email_intro: An administrator removed your %{resource_type} because it has been reported as %{report_reasons}.
649
+ email_outro: You have received this notification because you are an author of the removed content.
650
+ email_subject: Your %{resource_type} has been removed
651
+ notification_title: |-
652
+ An administrator removed your %{resource_type} because it has been reported as %{report_reasons}.</br>
653
+ <i>%{resource_content}</i>
616
654
  resource_endorsed:
617
655
  email_intro: '%{endorser_name} %{endorser_nickname}, who you are following, has just endorsed "%{resource_title}" and we think it may be interesting to you. Check it out and contribute:'
618
656
  email_outro: You have received this notification because you are following %{endorser_nickname}. You can stop receiving notifications following the previous link.
@@ -626,7 +664,7 @@ en:
626
664
  notification_title: The <a href="%{resource_path}">profile page</a> of %{name} (%{nickname}), who you are following, has been updated.
627
665
  export_mailer:
628
666
  data_portability_export:
629
- click_button: 'Click the next button to download your data. <br/> You will have the file available until %{date}. <br/> You will need <a href=''https://www.7-zip.org/''>7-Zip</a> to open it. Password: %{password}'
667
+ click_button: 'Click the next link to download your data.<br/>The file will be available until %{date}.<br/>You will need <a href="https://www.7-zip.org/">7-Zip</a> (for Windows), <a href="https://www.keka.io/en/">Keka</a> (for MacOS) or <a href="https://peazip.github.io">PeaZip</a> (for Linux) to open it. Password: %{password}'
630
668
  download: Download
631
669
  export:
632
670
  ready: Please find attached a zipped version of your export.
@@ -659,7 +697,7 @@ en:
659
697
  create:
660
698
  button: Follow
661
699
  error: There was a problem following this resource.
662
- participatory_space: Already following <span class="show-for-sr">%{resource_name}</span>
700
+ participatory_space: Following <span class="show-for-sr">%{resource_name}</span>
663
701
  destroy:
664
702
  button: Stop following
665
703
  error: There was a problem unfollowing this resource.
@@ -676,7 +714,7 @@ en:
676
714
  file:
677
715
  explanation: 'Guidance for file:'
678
716
  message_1: Has to be an image or a document.
679
- message_2: For images, use preferrably landscape images, the service crops the image.
717
+ message_2: For images, use preferrably landscape images, the service crops the image. For CSV files, the separator between columns must be a comma (",")
680
718
  image:
681
719
  explanation: 'Guidance for image:'
682
720
  message_1: Preferrably a landscape image that does not have any text.
@@ -918,7 +956,7 @@ en:
918
956
  show:
919
957
  back: Back to all conversations
920
958
  chat_with: Conversation with
921
- not_allowed: This user does not accept any more direct messages.
959
+ not_allowed: This participant does not accept direct messages.
922
960
  title: Conversation with %{usernames}
923
961
  start:
924
962
  send: Send
@@ -927,7 +965,7 @@ en:
927
965
  error: Message was not sent due to an error
928
966
  metrics:
929
967
  download:
930
- csv: Download data (csv)
968
+ csv: Download data (CSV)
931
969
  followers:
932
970
  description: Number of participants that follow this participation space
933
971
  object: followers
@@ -989,8 +1027,10 @@ en:
989
1027
  no_notifications: No notifications yet.
990
1028
  notifications_settings:
991
1029
  show:
1030
+ administrators: Administrators
992
1031
  allow_public_contact: Allow anyone to send me a direct message, even if I don't follow them.
993
1032
  direct_messages: Receive direct messages from anyone
1033
+ email_on_moderations: I want to receive an email every time something is reported for moderation.
994
1034
  email_on_notification: I want to receive an email every time I receive a notification.
995
1035
  everything_followed: Everything I follow
996
1036
  newsletter_notifications: I want to receive newsletters
@@ -1086,6 +1126,7 @@ en:
1086
1126
  not_allowed: You are not allowed to view this content
1087
1127
  profile:
1088
1128
  deleted: Participant deleted
1129
+ inaccessible_message: This profile is inaccessible due to Terms and Conditions violation!
1089
1130
  view: View
1090
1131
  profiles:
1091
1132
  default_officialization_text_for_user_groups: This group is publicly verified, its name has been verified to correspond with its real name
@@ -1099,6 +1140,7 @@ en:
1099
1140
  groups: Groups
1100
1141
  members: Members
1101
1142
  officialized: Official participant
1143
+ send_private_message: Send private message
1102
1144
  timeline: Timeline
1103
1145
  view_full_profile: View full profile
1104
1146
  sidebar:
@@ -1126,13 +1168,15 @@ en:
1126
1168
  report:
1127
1169
  authors: Authors
1128
1170
  content: Reported content
1171
+ content_original_language: Content original language
1129
1172
  date: Reported on
1130
1173
  details: Details
1131
1174
  hello: Hello %{name},
1132
- manage_moderations: Manage moderations
1175
+ id: ID
1133
1176
  participatory_space: Participatory space
1134
1177
  reason: Reason
1135
1178
  report_html: <p>The following <a href="%{url}">content</a> has been reported.</p>
1179
+ see_report: See report
1136
1180
  subject: A resource has been reported
1137
1181
  reports:
1138
1182
  create:
@@ -1205,6 +1249,15 @@ en:
1205
1249
  report: Report
1206
1250
  spam: Contains clickbait, advertising, scams or script bots.
1207
1251
  title: Report inappropriate content
1252
+ flag_user_modal:
1253
+ already_reported: This content is already reported and it will be reviewed by an admin.
1254
+ close: Close
1255
+ description: What is inappropriate about the user?
1256
+ does_not_belong: Contains illegal activity, suicide threats, personal information, or something else you think doesn't belong on %{organization_name}.
1257
+ offensive: Contains racism, sexism, slurs, personal attacks, death threats, suicide requests or any form of hate speech.
1258
+ report: Report
1259
+ spam: Contains clickbait, advertising, scams or script bots.
1260
+ title: Report inappropriate User
1208
1261
  floating_help:
1209
1262
  close: Close help
1210
1263
  help: Help
@@ -1280,6 +1333,13 @@ en:
1280
1333
  update:
1281
1334
  error: There was a problem updating your interests.
1282
1335
  success: Your interests have been successfully updated.
1336
+ user_report_mailer:
1337
+ notify:
1338
+ body_1: User %{user} has been reported by %{token}
1339
+ body_2: 'Reason: %{reason}'
1340
+ greetings: Greetings,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
1341
+ hello: Hello %{admin},
1342
+ subject: A new user has been reported in %{organization_name}
1283
1343
  version:
1284
1344
  show:
1285
1345
  back_to_resource: Go back
@@ -1465,7 +1525,7 @@ en:
1465
1525
  messages:
1466
1526
  already_confirmed: was already confirmed, please try signing in
1467
1527
  confirmation_period_expired: needs to be confirmed within %{period}, please request a new one
1468
- content_type_whitelist_error: the file type is not valid
1528
+ content_type_allowlist_error: the file type is not valid
1469
1529
  cycle_detected: a scope's parent can't be one of its descendants
1470
1530
  expired: has expired, please request a new one
1471
1531
  file_size_is_less_than_or_equal_to: file size must be less than or equal to %{count}
@@ -1525,6 +1585,11 @@ en:
1525
1585
  instagram: "%{organization} at Instagram"
1526
1586
  twitter: "%{organization} at Twitter"
1527
1587
  youtube: "%{organization} at YouTube"
1588
+ timeout_modal:
1589
+ body: You have been inactive for %{minutes} minutes. If you continue being inactive, you will be automatically signed out for your own security.
1590
+ continue_session: Continue session
1591
+ sign_out: Sign out
1592
+ title: Would you like to continue your session?
1528
1593
  user_menu:
1529
1594
  account: 'User account: %{name}'
1530
1595
  admin_dashboard: Admin dashboard
@@ -61,7 +61,6 @@ eo:
61
61
  file_no_exists: Dosiero ne ekzistas
62
62
  notice: La malŝarĝo de viaj datumoj nuntempe progresas. Vi ricevos retpoŝton kiam ĝi estos kompleta.
63
63
  delete:
64
- alert: Ĉi tiu ago ne eblas. Se vi forigas vian konton, vi ne povos ensaluti.
65
64
  confirm:
66
65
  close: Fermu la fenestron
67
66
  amendments:
@@ -35,7 +35,6 @@ es-MX:
35
35
  decidim/profile_updated_event: Perfil actualizado
36
36
  decidim/promote_to_admin: Promovido a administrador de grupo
37
37
  decidim/removed_from_group: Eliminado del grupo
38
- decidim/resource_endorsed_event: Adhesión a recurso realizada
39
38
  activerecord:
40
39
  attributes:
41
40
  decidim/user:
@@ -79,11 +78,11 @@ es-MX:
79
78
  logo: "Logo oficial de %{organization}"
80
79
  skip_button: Saltar al contenido principal
81
80
  account:
81
+ blocked: Esta cuenta ha sido bloqueada por una violación de los Términos y Condiciones de uso
82
82
  data_portability_export:
83
83
  file_no_exists: El archivo no existe
84
84
  notice: Tus datos están actualmente en progreso. Recibirás un correo electrónico cuando se complete.
85
85
  delete:
86
- alert: Esta acción no se puede deshacer. Si eliminas tu cuenta, no podrás iniciar sesión.
87
86
  confirm:
88
87
  close: Cerrar ventana
89
88
  ok: Sí, quiero eliminar mi cuenta
@@ -113,6 +112,8 @@ es-MX:
113
112
  delete: "%{user_name} eliminó el componente %{resource_name} del espacio %{space_name}"
114
113
  publish: "%{user_name} publicó el componente %{resource_name} en el espacio %{space_name}"
115
114
  unpublish: "%{user_name} ha despublicado el componente %{resource_name} del espacio %{space_name}"
115
+ impersonation_log:
116
+ manage: "%{user_name} ha gestionado a %{resource_name} porque %{reason}"
116
117
  moderation:
117
118
  hide: "%{user_name} escondió un recurso de tipo %{resource_type} en el espacio %{space_name}"
118
119
  unreport: "%{user_name} publicó un recurso de tipo %{resource_type} en el espacio %{space_name}"
@@ -129,7 +130,7 @@ es-MX:
129
130
  update: "%{user_name} actualizó la configuración de la organización"
130
131
  participatory_space_private_user:
131
132
  create: "%{user_name} ha invitado a %{resource_name} a ser un usuario privado"
132
- create_via_csv: "%{user_name} ha invitado a %{resource_name} como participante privada"
133
+ create_via_csv: "%{user_name} invitó a %{resource_name} vía CSV a ser un participante privada"
133
134
  delete: "%{user_name} ha eliminado el usuario %{resource_name} como usuario privado"
134
135
  scope:
135
136
  create: "%{user_name} creó el ámbito %{resource_name}"
@@ -143,10 +144,14 @@ es-MX:
143
144
  delete: "%{user_name} eliminó la página estática %{resource_name}"
144
145
  update: "%{user_name} actualizó la página estática %{resource_name}"
145
146
  user:
147
+ block: "%{user_name} ha bloqueado a la usuaria %{resource_name}"
146
148
  invite: "%{user_name} invitó al usuario %{resource_name} con el rol: %{role}"
147
149
  officialize: "%{user_name} oficializó al usuario %{resource_name}"
150
+ promote: "%{user_name} ha promocionado a %{resource_name}"
148
151
  remove_from_admin: "%{user_name} eliminó al usuario %{resource_name} con el rol: %{role}"
149
152
  show_email: "%{user_name} ha recuperado el correo electrónico de la participante %{resource_name}"
153
+ transfer: "%{user_name} ha transferido a la participante %{resource_name}"
154
+ unblock: "%{user_name} desoficializó a la usuaria %{resource_name}"
150
155
  unofficialize: "%{user_name} desoficializó al usuario %{resource_name}"
151
156
  user_group:
152
157
  reject: "%{user_name} rechazó la verificación del grupo de usuarios %{resource_name}"
@@ -274,7 +279,7 @@ es-MX:
274
279
  dummy_authorization_workflow:
275
280
  name: Flujo de trabajo de autorización de ejemplo
276
281
  errors:
277
- duplicate_authorization: Un usuario ya está autorizado con los mismos datos.
282
+ duplicate_authorization: Ya hay una participante autorizada con los mismos datos. Una administradora se pondrá en contacto contigo para verificar tus datos.
278
283
  expired_at: Caducado el %{timestamp}
279
284
  expires_at: Caduca en %{timestamp}
280
285
  foo_authorization:
@@ -320,6 +325,13 @@ es-MX:
320
325
  title: Confirma tu email
321
326
  show:
322
327
  close_modal: Cerrar el modal
328
+ block_user_mailer:
329
+ notify:
330
+ body_1: Tu cuenta ha sido bloqueda.
331
+ body_2: 'Motivo: %{justification}'
332
+ greetings: Saludos, <br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
333
+ hello: Hola,
334
+ subject: Tu cuenta fue bloqueada por %{organization_name}
323
335
  collapsible_list:
324
336
  hidden_elements_count:
325
337
  one: y %{count} más
@@ -368,6 +380,13 @@ es-MX:
368
380
  dummy_step_translatable_text: Fase de ejemplo traducible
369
381
  contact: Contacto
370
382
  content_blocks:
383
+ cta:
384
+ name: Imagen, texto y botón de acción
385
+ cta_settings_form:
386
+ background_image: Imagen de fondo
387
+ button_text: Texto del botón de acción
388
+ button_url: URL del botón de acción
389
+ description: Descripción
371
390
  footer_sub_hero:
372
391
  name: Banner de sub-hero de pie de página
373
392
  hero:
@@ -377,6 +396,11 @@ es-MX:
377
396
  welcome_text: Texto de bienvenida
378
397
  highlighted_content_banner:
379
398
  name: Banner de contenido resaltado
399
+ highlighted_elements_settings_form:
400
+ orders:
401
+ label: 'Ordenar elementos por:'
402
+ random: Aleatorio
403
+ recent: Más recientes
380
404
  how_to_participate:
381
405
  name: Como participar
382
406
  html:
@@ -401,7 +425,6 @@ es-MX:
401
425
  ready: Listo
402
426
  show:
403
427
  download_data: Descargar los datos
404
- download_data_description: Un archivo con toda la información asociada con la cuenta se enviará a <strong>%{user_email}</strong>
405
428
  request_data: Solicitar datos
406
429
  datepicker:
407
430
  help_text: 'Formato esperado: %{datepicker_format}'
@@ -411,7 +434,6 @@ es-MX:
411
434
  email_already_exists: Otra cuenta utiliza la misma dirección de correo electrónico
412
435
  new:
413
436
  complete_profile: Completar perfil
414
- nickname_help: Tu alias en %{organization}
415
437
  sign_up: Por favor, completa tu perfil
416
438
  subtitle: Por favor, rellena el siguiente formulario con el fin de completar la inscripción
417
439
  username_help: Nombre público que aparece en tus mensajes. Con el objetivo de garantizar el anonimato, puede ser cualquier nombre.
@@ -420,7 +442,6 @@ es-MX:
420
442
  already_have_an_account?: '¿Ya tienes una cuenta?'
421
443
  newsletter: Quiero recibir un boletín ocasional con información relevante
422
444
  newsletter_title: Permiso de contacto
423
- nickname_help: Tu alias en %{organization}
424
445
  password_help: "%{minimun_characters} caracteres mínimos, no debe ser demasiado común (por ejemplo, 123456) y debe ser diferente de tu apodo y tu correo electrónico."
425
446
  sign_in: Entra
426
447
  sign_up: Regístrate
@@ -621,7 +642,6 @@ es-MX:
621
642
  notification_title: La página <a href="%{resource_path}">de perfil</a> de %{name} (%{nickname}), a quien estás siguiendo, se ha actualizado.
622
643
  export_mailer:
623
644
  data_portability_export:
624
- click_button: 'Haz clic en el siguiente botón para descargar tus datos. <br/> Tendrás el archivo disponible hasta %{date}.'
625
645
  download: Descargar
626
646
  export:
627
647
  ready: Adjunto encontrará una versión comprimida de su exportación.
@@ -654,7 +674,6 @@ es-MX:
654
674
  create:
655
675
  button: Seguir
656
676
  error: Ha habido un error siguiendo este recurso.
657
- participatory_space: Siguiendo
658
677
  destroy:
659
678
  button: Dejar de seguir
660
679
  error: Ha habido un error dejando de seguir este recurso.
@@ -671,7 +690,6 @@ es-MX:
671
690
  file:
672
691
  explanation: 'Instrucciones para el archivo:'
673
692
  message_1: Tiene que ser una imagen o un documento.
674
- message_2: Para las imágenes, utilizar imágenes apaisadas preferiblemente, el servicio recorta la imagen.
675
693
  image:
676
694
  explanation: 'Instrucciones para la imagen:'
677
695
  message_1: Preferiblemente una imagen de paisaje que no tenga ningún texto.
@@ -913,7 +931,6 @@ es-MX:
913
931
  show:
914
932
  back: Volver a todas las conversaciones
915
933
  chat_with: Conversación con
916
- not_allowed: Esta participante no acepta mensajes directos.
917
934
  title: Conversación con %{usernames}
918
935
  start:
919
936
  send: Enviar
@@ -921,8 +938,6 @@ es-MX:
921
938
  update:
922
939
  error: El mensaje no fue enviado debido a un error
923
940
  metrics:
924
- download:
925
- csv: Descargar datos (csv)
926
941
  followers:
927
942
  description: Número de usuarios que siguen este espacio de participación.
928
943
  object: seguidores
@@ -1081,6 +1096,7 @@ es-MX:
1081
1096
  not_allowed: No puedes ver este contenido
1082
1097
  profile:
1083
1098
  deleted: Usuario eliminado
1099
+ inaccessible_message: '¡Este perfil es inaccesible debido a la violación de Términos y Condiciones de uso!'
1084
1100
  view: Ver
1085
1101
  profiles:
1086
1102
  default_officialization_text_for_user_groups: Este grupo de usuarios se verifica públicamente, tu nombre se ha verificado para que se corresponda con tu nombre real
@@ -1124,7 +1140,6 @@ es-MX:
1124
1140
  date: Reportado el
1125
1141
  details: Detalles
1126
1142
  hello: Hola %{name},
1127
- manage_moderations: Gestionar moderaciones
1128
1143
  participatory_space: Espacio de participación
1129
1144
  reason: Motivo
1130
1145
  report_html: <p>El siguiente <a href="%{url}">contenido</a> ha sido reportado.</p>
@@ -1460,7 +1475,7 @@ es-MX:
1460
1475
  messages:
1461
1476
  already_confirmed: Ya fuiste confirmado, intenta iniciar sesión
1462
1477
  confirmation_period_expired: Necesitas ser confirmado dentro de %{period}, por favor solicita uno nuevo.
1463
- content_type_whitelist_error: el tipo de archivo no es válido
1478
+ content_type_allowlist_error: el tipo de archivo no es válido
1464
1479
  cycle_detected: el padre de un ámbito no puede ser uno de sus descendientes
1465
1480
  expired: Ha expirado, solicita uno nuevo
1466
1481
  file_size_is_less_than_or_equal_to: el tamaño del archivo debe ser menor que o igual a %{count}
@@ -1540,7 +1555,7 @@ es-MX:
1540
1555
  widget:
1541
1556
  see_more: Ver más
1542
1557
  locale:
1543
- name: Castellano
1558
+ name: Español
1544
1559
  name_with_error: Inglés (¡error!)
1545
1560
  password_validator:
1546
1561
  domain_included_in_password: Es muy similar a este nombre de dominio