decidim-core 0.15.2 → 0.16.0

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 (354) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +14 -1
  3. data/app/assets/config/decidim_core_manifest.js +14 -12
  4. data/app/assets/images/decidim/pattern.png +0 -0
  5. data/app/assets/javascripts/decidim.js.es6 +4 -0
  6. data/app/assets/javascripts/decidim/floating_help.js.es6 +40 -0
  7. data/app/assets/javascripts/decidim/input_hashtags.js.es6 +6 -4
  8. data/app/assets/javascripts/decidim/notifications.js.es6 +1 -1
  9. data/app/assets/javascripts/decidim/tooltip_keep_on_hover.js.es6 +18 -0
  10. data/app/assets/javascripts/decidim/vizzs/areachart.js.es6 +52 -10
  11. data/app/assets/javascripts/decidim/vizzs/metrics.js.es6 +68 -22
  12. data/app/assets/javascripts/decidim/vizzs/orgchart.js.es6 +10 -13
  13. data/app/assets/stylesheets/decidim/conference-diploma.css.scss +61 -0
  14. data/app/assets/stylesheets/decidim/layouts/_home.scss +1 -1
  15. data/app/assets/stylesheets/decidim/modules/_buttons.scss +4 -0
  16. data/app/assets/stylesheets/decidim/modules/_cards.scss +17 -1
  17. data/app/assets/stylesheets/decidim/modules/_conference-programme.scss +0 -4
  18. data/app/assets/stylesheets/decidim/modules/_filters.scss +37 -2
  19. data/app/assets/stylesheets/decidim/modules/_floating-helper.scss +106 -0
  20. data/app/assets/stylesheets/decidim/modules/_forms.scss +22 -0
  21. data/app/assets/stylesheets/decidim/modules/_help.scss +4 -0
  22. data/app/assets/stylesheets/decidim/modules/_layout.scss +1 -0
  23. data/app/assets/stylesheets/decidim/modules/_margins.scss +1 -0
  24. data/app/assets/stylesheets/decidim/modules/_modules.scss +1 -1
  25. data/app/assets/stylesheets/decidim/modules/_navbar.scss +5 -1
  26. data/app/assets/stylesheets/decidim/modules/_order-by.scss +11 -1
  27. data/app/assets/stylesheets/decidim/modules/_process-header.scss +36 -38
  28. data/app/assets/stylesheets/decidim/modules/_process-nav.scss +61 -10
  29. data/app/assets/stylesheets/decidim/modules/_process-phase.scss +63 -30
  30. data/app/assets/stylesheets/decidim/modules/_share.scss +4 -0
  31. data/app/assets/stylesheets/decidim/modules/_typography.scss +17 -0
  32. data/app/assets/stylesheets/decidim/{modules → vizzs}/_orgchart.scss +2 -10
  33. data/app/cells/decidim/activities_cell.rb +6 -2
  34. data/app/cells/decidim/activity/show.erb +22 -19
  35. data/app/cells/decidim/activity_cell.rb +35 -5
  36. data/app/cells/decidim/amendable/amend_button_card/show.erb +9 -0
  37. data/app/cells/decidim/amendable/amend_button_card_cell.rb +43 -0
  38. data/app/cells/decidim/amendable/amenders_list/show.erb +18 -0
  39. data/app/cells/decidim/amendable/amenders_list_cell.rb +7 -0
  40. data/app/cells/decidim/amendable/announcement_cell.rb +58 -0
  41. data/app/cells/decidim/amendable/emendation_actions/show.erb +13 -0
  42. data/app/cells/decidim/amendable/emendation_actions_cell.rb +52 -0
  43. data/app/cells/decidim/amendable/promote_button_card/show.erb +9 -0
  44. data/app/cells/decidim/amendable/promote_button_card_cell.rb +47 -0
  45. data/app/cells/decidim/author/profile_inline.erb +23 -4
  46. data/app/cells/decidim/author/profile_minicard.erb +25 -0
  47. data/app/cells/decidim/author/show.erb +0 -1
  48. data/app/cells/decidim/author_cell.rb +6 -0
  49. data/app/cells/decidim/card_cell.rb +2 -4
  50. data/app/cells/decidim/card_m/top.erb +1 -1
  51. data/app/cells/decidim/card_m_cell.rb +3 -0
  52. data/app/cells/decidim/content_blocks/last_activity_cell.rb +1 -1
  53. data/app/cells/decidim/follow_button/show.erb +0 -1
  54. data/app/cells/decidim/follow_button_cell.rb +10 -0
  55. data/app/cells/decidim/following/show.erb +1 -1
  56. data/app/cells/decidim/following_cell.rb +1 -1
  57. data/app/cells/decidim/notifications/show.erb +1 -0
  58. data/app/cells/decidim/pad_iframe/show.erb +14 -0
  59. data/app/cells/decidim/pad_iframe_cell.rb +57 -0
  60. data/app/cells/decidim/profile/user_tabs.erb +8 -6
  61. data/app/cells/decidim/profile_cell.rb +1 -1
  62. data/app/cells/decidim/profile_sidebar/show.erb +58 -42
  63. data/app/cells/decidim/profile_sidebar_cell.rb +6 -0
  64. data/app/cells/decidim/search_results/show.erb +8 -0
  65. data/app/cells/decidim/search_results_cell.rb +38 -0
  66. data/app/cells/decidim/search_results_section/show.erb +24 -0
  67. data/app/cells/decidim/search_results_section_cell.rb +35 -0
  68. data/app/cells/decidim/user_activity/show.erb +15 -0
  69. data/app/cells/decidim/user_activity_cell.rb +17 -0
  70. data/app/cells/decidim/user_profile/header.erb +1 -16
  71. data/app/cells/decidim/user_profile/user_data.erb +16 -0
  72. data/app/cells/decidim/user_profile_cell.rb +4 -0
  73. data/app/cells/decidim/user_timeline/show.erb +15 -0
  74. data/app/cells/decidim/user_timeline_cell.rb +17 -0
  75. data/app/commands/decidim/accept_user_group_join_request.rb +1 -1
  76. data/app/commands/decidim/amendable/accept.rb +84 -0
  77. data/app/commands/decidim/amendable/create.rb +103 -0
  78. data/app/commands/decidim/amendable/promote.rb +79 -0
  79. data/app/commands/decidim/amendable/reject.rb +60 -0
  80. data/app/commands/decidim/amendable/withdraw.rb +46 -0
  81. data/app/commands/decidim/create_omniauth_registration.rb +17 -1
  82. data/app/commands/decidim/create_registration.rb +2 -0
  83. data/app/commands/decidim/demote_membership.rb +1 -1
  84. data/app/commands/decidim/invite_user.rb +1 -1
  85. data/app/commands/decidim/invite_user_to_group.rb +1 -1
  86. data/app/commands/decidim/join_user_group.rb +1 -7
  87. data/app/commands/decidim/messaging/reply_to_conversation.rb +1 -1
  88. data/app/commands/decidim/promote_membership.rb +1 -1
  89. data/app/commands/decidim/reject_user_group_join_request.rb +1 -1
  90. data/app/commands/decidim/remove_user_from_group.rb +1 -1
  91. data/app/commands/decidim/search.rb +65 -16
  92. data/app/commands/decidim/update_account.rb +1 -1
  93. data/app/commands/decidim/update_notifications_settings.rb +2 -1
  94. data/app/commands/decidim/update_user_interests.rb +35 -0
  95. data/app/controllers/concerns/decidim/amendments_controller.rb +104 -0
  96. data/app/controllers/concerns/decidim/participatory_space_context.rb +28 -6
  97. data/app/controllers/concerns/decidim/user_groups.rb +23 -0
  98. data/app/controllers/concerns/decidim/user_profile.rb +2 -4
  99. data/app/controllers/decidim/components/base_controller.rb +1 -0
  100. data/app/controllers/decidim/devise/confirmations_controller.rb +9 -0
  101. data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +2 -1
  102. data/app/controllers/decidim/devise/passwords_controller.rb +6 -0
  103. data/app/controllers/decidim/devise/registrations_controller.rb +5 -0
  104. data/app/controllers/decidim/devise/sessions_controller.rb +12 -0
  105. data/app/controllers/decidim/group_admins_controller.rb +3 -0
  106. data/app/controllers/decidim/group_email_confirmations_controller.rb +32 -0
  107. data/app/controllers/decidim/group_invites_controller.rb +3 -0
  108. data/app/controllers/decidim/group_members_controller.rb +3 -0
  109. data/app/controllers/decidim/groups_controller.rb +3 -0
  110. data/app/controllers/decidim/homepage_controller.rb +10 -0
  111. data/app/controllers/decidim/last_activities_controller.rb +1 -1
  112. data/app/controllers/decidim/messaging/conversations_controller.rb +11 -2
  113. data/app/controllers/decidim/open_data_controller.rb +31 -0
  114. data/app/controllers/decidim/own_user_groups_controller.rb +3 -1
  115. data/app/controllers/decidim/pages_controller.rb +7 -15
  116. data/app/controllers/decidim/profiles_controller.rb +13 -2
  117. data/app/controllers/decidim/searches_controller.rb +11 -2
  118. data/app/controllers/decidim/user_activities_controller.rb +28 -0
  119. data/app/controllers/decidim/user_group_join_requests_controller.rb +3 -0
  120. data/app/controllers/decidim/user_interests_controller.rb +32 -0
  121. data/app/controllers/decidim/user_timeline_controller.rb +40 -0
  122. data/app/events/decidim/amendable/amendment_accepted_event.rb +23 -0
  123. data/app/events/decidim/amendable/amendment_base_event.rb +39 -0
  124. data/app/events/decidim/amendable/amendment_created_event.rb +23 -0
  125. data/app/events/decidim/amendable/amendment_rejected_event.rb +23 -0
  126. data/app/events/decidim/amendable/emendation_promoted_event.rb +23 -0
  127. data/app/events/decidim/welcome_notification_event.rb +58 -0
  128. data/app/forms/decidim/amendable/create_form.rb +54 -0
  129. data/app/forms/decidim/amendable/form.rb +22 -0
  130. data/app/forms/decidim/amendable/promote_form.rb +26 -0
  131. data/app/forms/decidim/amendable/reject_form.rb +14 -0
  132. data/app/forms/decidim/amendable/review_form.rb +35 -0
  133. data/app/forms/decidim/notifications_settings_form.rb +19 -6
  134. data/app/forms/decidim/omniauth_registration_form.rb +2 -1
  135. data/app/forms/decidim/user_group_form.rb +1 -2
  136. data/app/forms/decidim/user_interest_scope_form.rb +25 -0
  137. data/app/forms/decidim/user_interests_form.rb +22 -0
  138. data/app/helpers/decidim/amendments_helper.rb +130 -0
  139. data/app/helpers/decidim/application_helper.rb +19 -2
  140. data/app/helpers/decidim/card_helper.rb +0 -2
  141. data/app/helpers/decidim/cells_paginate_helper.rb +4 -0
  142. data/app/helpers/decidim/contextual_help_helper.rb +10 -0
  143. data/app/helpers/decidim/cta_button_helper.rb +3 -1
  144. data/app/helpers/decidim/decidim_form_helper.rb +1 -1
  145. data/app/helpers/decidim/layout_helper.rb +13 -0
  146. data/app/helpers/decidim/multi_translation_helper.rb +0 -0
  147. data/app/helpers/decidim/omniauth_helper.rb +9 -1
  148. data/app/helpers/decidim/pad_helper.rb +16 -0
  149. data/app/helpers/decidim/participatory_space_helpers.rb +15 -0
  150. data/app/helpers/decidim/searches_helper.rb +50 -6
  151. data/app/helpers/decidim/translations_helper.rb +3 -2
  152. data/app/jobs/decidim/email_notification_generator_job.rb +4 -2
  153. data/app/jobs/decidim/metric_job.rb +1 -1
  154. data/app/jobs/decidim/notification_generator_for_recipient_job.rb +2 -2
  155. data/app/jobs/decidim/notification_generator_job.rb +4 -2
  156. data/app/jobs/decidim/open_data_job.rb +16 -0
  157. data/app/mailers/decidim/messaging/conversation_mailer.rb +5 -2
  158. data/app/mailers/decidim/newsletter_mailer.rb +6 -2
  159. data/app/mailers/decidim/notification_mailer.rb +2 -2
  160. data/app/models/decidim/action_log.rb +7 -0
  161. data/app/models/decidim/amendment.rb +17 -0
  162. data/app/models/decidim/component.rb +8 -0
  163. data/app/models/decidim/contextual_help_section.rb +41 -0
  164. data/app/models/decidim/follow.rb +30 -0
  165. data/app/models/decidim/notification.rb +11 -1
  166. data/app/models/decidim/organization.rb +41 -0
  167. data/app/models/decidim/searchable_resource.rb +3 -0
  168. data/app/models/decidim/static_page.rb +11 -0
  169. data/app/models/decidim/static_page_topic.rb +12 -0
  170. data/app/models/decidim/user.rb +25 -2
  171. data/app/models/decidim/user_base_entity.rb +0 -6
  172. data/app/models/decidim/user_group.rb +29 -3
  173. data/app/permissions/decidim/permissions.rb +12 -0
  174. data/app/presenters/decidim/admin_log/organization_presenter.rb +13 -0
  175. data/app/presenters/decidim/admin_log/user_group_presenter.rb +1 -1
  176. data/app/presenters/decidim/admin_log/user_presenter.rb +1 -1
  177. data/app/presenters/decidim/hashtag_presenter.rb +7 -2
  178. data/app/presenters/decidim/metric_charts_presenter.rb +54 -21
  179. data/app/presenters/decidim/user_presenter.rb +4 -8
  180. data/app/queries/decidim/messaging/user_conversations.rb +1 -1
  181. data/app/queries/decidim/metric_manage.rb +16 -2
  182. data/app/queries/decidim/metric_measure.rb +35 -0
  183. data/app/queries/decidim/metrics/followers_metric_manage.rb +64 -0
  184. data/app/queries/decidim/metrics/participants_metric_manage.rb +72 -0
  185. data/app/queries/decidim/metrics/users_metric_manage.rb +1 -1
  186. data/app/queries/decidim/public_components.rb +32 -0
  187. data/app/resolvers/decidim/core/metric_resolver.rb +43 -11
  188. data/app/services/decidim/action_logger.rb +10 -0
  189. data/app/services/decidim/activity_search.rb +88 -13
  190. data/app/services/decidim/email_notification_generator.rb +23 -8
  191. data/app/services/decidim/events_manager.rb +9 -3
  192. data/app/services/decidim/home_activity_search.rb +80 -0
  193. data/app/services/decidim/log/diff_changeset_calculator.rb +3 -1
  194. data/app/services/decidim/notification_generator.rb +19 -7
  195. data/app/services/decidim/notification_generator_for_recipient.rb +6 -9
  196. data/app/services/decidim/open_data_exporter.rb +55 -0
  197. data/app/uploaders/decidim/open_data_uploader.rb +17 -0
  198. data/app/views/decidim/amendments/_form.html.erb +30 -0
  199. data/app/views/decidim/amendments/_review_form.html.erb +19 -0
  200. data/app/views/decidim/amendments/new.html.erb +29 -0
  201. data/app/views/decidim/amendments/review.html.erb +33 -0
  202. data/app/views/decidim/devise/registrations/new.html.erb +2 -2
  203. data/app/views/decidim/devise/sessions/new.html.erb +42 -29
  204. data/app/views/decidim/devise/shared/_links.html.erb +3 -3
  205. data/app/views/decidim/devise/shared/_omniauth_buttons.html.erb +7 -5
  206. data/app/views/decidim/follows/update_button.js.erb +1 -1
  207. data/app/views/decidim/group_members/index.html.erb +1 -1
  208. data/app/views/decidim/groups/_form.html.erb +9 -8
  209. data/app/views/decidim/groups/new.html.erb +3 -0
  210. data/app/views/decidim/{pages/home.html.erb → homepage/show.html.erb} +0 -0
  211. data/app/views/decidim/messaging/conversation_mailer/new_conversation.html.erb +6 -0
  212. data/app/views/decidim/messaging/conversation_mailer/new_message.html.erb +6 -0
  213. data/app/views/decidim/messaging/conversations/_message.html.erb +14 -0
  214. data/app/views/decidim/messaging/conversations/_reply.html.erb +11 -0
  215. data/app/views/decidim/messaging/conversations/_show.html.erb +21 -0
  216. data/app/views/decidim/messaging/conversations/_start.html.erb +12 -0
  217. data/app/views/decidim/messaging/conversations/create.js.erb +1 -1
  218. data/app/views/decidim/messaging/conversations/index.html.erb +51 -1
  219. data/app/views/decidim/messaging/conversations/new.html.erb +5 -1
  220. data/app/views/decidim/messaging/conversations/show.html.erb +9 -1
  221. data/app/views/decidim/messaging/conversations/update.js.erb +1 -1
  222. data/app/views/decidim/notification_mailer/event_received.html.erb +13 -3
  223. data/app/views/decidim/notifications/index.html.erb +5 -1
  224. data/app/views/decidim/notifications_settings/show.html.erb +19 -0
  225. data/app/views/decidim/pages/_standalone.html.erb +21 -0
  226. data/app/views/decidim/pages/_tabbed.html.erb +45 -0
  227. data/app/views/decidim/pages/index.html.erb +68 -29
  228. data/app/views/decidim/pages/show.html.erb +28 -0
  229. data/app/views/decidim/profiles/show.html.erb +1 -1
  230. data/app/views/decidim/searches/_count.html.erb +26 -1
  231. data/app/views/decidim/searches/_filters.html.erb +40 -17
  232. data/app/views/decidim/searches/index.html.erb +5 -16
  233. data/app/views/decidim/searches/index.js.erb +5 -3
  234. data/app/views/decidim/shared/_extended_navigation_bar.html.erb +50 -0
  235. data/app/views/decidim/shared/_floating_help.html.erb +30 -0
  236. data/app/views/decidim/shared/_follow_button.html.erb +1 -1
  237. data/app/views/decidim/shared/_login_modal.html.erb +35 -22
  238. data/app/views/decidim/shared/_results_per_page.html.erb +1 -1
  239. data/app/views/decidim/shared/_share_modal.html.erb +1 -1
  240. data/app/views/decidim/user_activities/index.html.erb +5 -0
  241. data/app/views/decidim/user_interests/_areas.html.erb +14 -0
  242. data/app/views/decidim/user_interests/_scopes.html.erb +15 -0
  243. data/app/views/decidim/user_interests/show.html.erb +12 -0
  244. data/app/views/decidim/user_timeline/index.html.erb +4 -0
  245. data/app/views/layouts/decidim/_user_menu.html.erb +1 -1
  246. data/app/views/layouts/decidim/_wrapper.html.erb +12 -5
  247. data/config/locales/ca.yml +199 -13
  248. data/config/locales/de.yml +200 -13
  249. data/config/locales/en.yml +200 -13
  250. data/config/locales/es-PY.yml +200 -13
  251. data/config/locales/es.yml +200 -13
  252. data/config/locales/eu.yml +200 -13
  253. data/config/locales/fi-pl.yml +200 -13
  254. data/config/locales/fi.yml +200 -13
  255. data/config/locales/fr.yml +200 -13
  256. data/config/locales/gl.yml +200 -13
  257. data/config/locales/hu.yml +200 -13
  258. data/config/locales/id-ID.yml +198 -13
  259. data/config/locales/it.yml +200 -13
  260. data/config/locales/nl.yml +200 -13
  261. data/config/locales/pl.yml +204 -13
  262. data/config/locales/pt-BR.yml +200 -13
  263. data/config/locales/pt.yml +200 -13
  264. data/config/locales/ru.yml +2 -16
  265. data/config/locales/sv.yml +200 -13
  266. data/config/locales/tr-TR.yml +200 -13
  267. data/config/locales/uk.yml +2 -16
  268. data/config/routes.rb +27 -1
  269. data/db/migrate/20171212103803_create_unique_nicknames.rb +1 -1
  270. data/db/migrate/20180221101934_fix_nickname_index.rb +1 -1
  271. data/db/migrate/20180706104107_add_nickname_to_managed_users.rb +1 -1
  272. data/db/migrate/20180720114847_create_decidim_amendments.rb +21 -0
  273. data/db/migrate/20181001124950_move_users_groups_to_users_table.rb +1 -1
  274. data/db/migrate/20181022090732_add_columns_to_pages.rb +20 -0
  275. data/db/migrate/20181023104416_add_static_page_topics.rb +15 -0
  276. data/db/migrate/20181025082245_add_timestamps_to_components.rb +12 -0
  277. data/db/migrate/20181029121244_add_welcome_notification.rb +13 -0
  278. data/db/migrate/20181108131058_add_users_registration_mode_to_organizations.rb +7 -0
  279. data/db/migrate/20181113101935_create_decidim_contextual_help_sections.rb +11 -0
  280. data/db/migrate/20181115102958_add_following_and_followers_counters_to_users.rb +26 -0
  281. data/db/migrate/20181119140636_add_columns_to_static_page_topic.rb +10 -0
  282. data/db/migrate/20181126145142_add_id_documents_fields_to_org.rb +13 -0
  283. data/db/migrate/20181204110723_remove_following_users_count_from_users.rb +17 -0
  284. data/db/migrate/20181211080834_add_scope_to_action_logs.rb +7 -0
  285. data/db/migrate/20181211090933_add_area_to_action_logs.rb +7 -0
  286. data/db/migrate/20181214101250_add_notification_types_to_users.rb +12 -0
  287. data/db/migrate/20181218171503_add_user_groups_switch_to_organizations.rb +8 -0
  288. data/db/seeds.rb +6 -1
  289. data/lib/decidim/amendable.rb +86 -0
  290. data/lib/decidim/api/component_interface.rb +4 -0
  291. data/lib/decidim/api/participatory_space_interface.rb +7 -0
  292. data/lib/decidim/api/scopable_interface.rb +1 -1
  293. data/lib/decidim/coauthorable.rb +16 -7
  294. data/lib/decidim/component_manifest.rb +3 -2
  295. data/lib/decidim/components/export_manifest.rb +13 -2
  296. data/lib/decidim/content_parsers/hashtag_parser.rb +48 -15
  297. data/lib/decidim/content_parsers/user_parser.rb +26 -10
  298. data/lib/decidim/content_renderers/hashtag_renderer.rb +46 -23
  299. data/lib/decidim/core.rb +40 -2
  300. data/lib/decidim/core/engine.rb +46 -12
  301. data/lib/decidim/core/test.rb +11 -0
  302. data/lib/decidim/core/test/factories.rb +44 -15
  303. data/lib/decidim/core/test/shared_examples/amendable/accept_amendment_examples.rb +57 -0
  304. data/lib/decidim/core/test/shared_examples/amendable/amendment_accepted_event_examples.rb +43 -0
  305. data/lib/decidim/core/test/shared_examples/amendable/amendment_created_event_examples.rb +48 -0
  306. data/lib/decidim/core/test/shared_examples/amendable/amendment_form_examples.rb +45 -0
  307. data/lib/decidim/core/test/shared_examples/amendable/amendment_promoted_event_examples.rb +43 -0
  308. data/lib/decidim/core/test/shared_examples/amendable/amendment_rejected_event_examples.rb +43 -0
  309. data/lib/decidim/core/test/shared_examples/amendable/create_amendment_examples.rb +78 -0
  310. data/lib/decidim/core/test/shared_examples/amendable/promote_amendment_examples.rb +43 -0
  311. data/lib/decidim/core/test/shared_examples/amendable/reject_amendment_examples.rb +41 -0
  312. data/lib/decidim/core/test/shared_examples/amendable/withdraw_amendment_examples.rb +29 -0
  313. data/lib/decidim/core/test/shared_examples/has_contextual_help.rb +30 -0
  314. data/lib/decidim/core/test/shared_examples/resourceable.rb +17 -0
  315. data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +1 -1
  316. data/lib/decidim/core/test/shared_examples/simple_event.rb +24 -2
  317. data/lib/decidim/core/version.rb +1 -1
  318. data/lib/decidim/events/base_event.rb +17 -12
  319. data/lib/decidim/events/simple_event.rb +21 -2
  320. data/lib/decidim/form_builder.rb +8 -0
  321. data/lib/decidim/gamification/badge_scorer.rb +3 -3
  322. data/lib/decidim/has_component.rb +1 -1
  323. data/lib/decidim/hashtag.rb +0 -2
  324. data/lib/decidim/hashtaggable.rb +2 -2
  325. data/lib/decidim/metric_manifest.rb +17 -2
  326. data/lib/decidim/metric_operation.rb +59 -0
  327. data/lib/decidim/metric_operation_manifest.rb +20 -0
  328. data/lib/decidim/metric_registry.rb +57 -19
  329. data/lib/decidim/paddable.rb +82 -0
  330. data/lib/decidim/participable.rb +24 -0
  331. data/lib/decidim/participatory_space_resourceable.rb +12 -0
  332. data/lib/decidim/query_extensions.rb +8 -1
  333. data/lib/decidim/resource_manifest.rb +5 -1
  334. data/lib/decidim/resourceable.rb +12 -0
  335. data/lib/decidim/searchable.rb +13 -4
  336. data/lib/decidim/settings_manifest.rb +2 -1
  337. data/lib/tasks/decidim_data_portability_tasks.rake +86 -0
  338. data/lib/tasks/decidim_open_data_tasks.rake +12 -0
  339. data/lib/tasks/decidim_tasks.rake +1 -83
  340. data/vendor/assets/javascripts/tribute.js +307 -145
  341. metadata +156 -22
  342. data/app/cells/decidim/conversation/show.erb +0 -18
  343. data/app/cells/decidim/conversation_cell.rb +0 -23
  344. data/app/cells/decidim/conversation_header/show.erb +0 -17
  345. data/app/cells/decidim/conversation_header_cell.rb +0 -16
  346. data/app/cells/decidim/conversations/show.erb +0 -45
  347. data/app/cells/decidim/conversations_cell.rb +0 -24
  348. data/app/cells/decidim/message/show.erb +0 -15
  349. data/app/cells/decidim/message_cell.rb +0 -23
  350. data/app/cells/decidim/new_conversation/show.erb +0 -19
  351. data/app/cells/decidim/new_conversation_cell.rb +0 -19
  352. data/app/views/decidim/pages/decidim_page.html.erb +0 -31
  353. data/app/views/decidim/searches/_results.html.erb +0 -5
  354. data/app/views/decidim/shared/_author_reference.html.erb +0 -1
@@ -0,0 +1,28 @@
1
+ <% add_decidim_meta_tags(
2
+ title: translated_attribute(@page.title),
3
+ description: translated_attribute(@page.content)
4
+ ) %>
5
+
6
+ <%
7
+ edit_link(
8
+ decidim_admin.edit_static_page_path(@page),
9
+ :update,
10
+ :static_page,
11
+ static_page: @page
12
+ )
13
+ %>
14
+
15
+ <% if @topic %>
16
+ <%= render partial: "tabbed", locals: {
17
+ title: translated_attribute(@topic.title),
18
+ description: translated_attribute(@topic.description),
19
+ page: @page,
20
+ pages: @pages
21
+ } %>
22
+ <% else %>
23
+ <%= render partial: "standalone", locals: {
24
+ title: translated_attribute(@page.title),
25
+ description: nil,
26
+ page: @page
27
+ } %>
28
+ <% end %>
@@ -1 +1 @@
1
- <%= cell "decidim/profile", profile_holder, context: { content_cell: @content_cell, current_user: current_user } %>
1
+ <%= cell "decidim/profile", profile_holder, context: { content_cell: @content_cell } %>
@@ -1 +1,26 @@
1
- <%= t("decidim.search.results_found_for_term", count: @results.count, term: term) %>
1
+ <div class="columns mediumlarge-4 large-3">
2
+ <h2 class="section-heading">
3
+ <%= t("decidim.search.results_found_for_term", count: @results_count, term: term) %>
4
+ </h2>
5
+ </div>
6
+ <div class="columns mediumlarge-8 large-9">
7
+ <div>
8
+ <%= form_tag(decidim.search_path, method: :get) do %>
9
+ <div class="input-group">
10
+ <%= text_field_tag(
11
+ :term,
12
+ nil,
13
+ class: "input-group-field",
14
+ id: "input-search",
15
+ value: params[:term] || params.dig(:filter, :term),
16
+ placeholder: t("decidim.search.term_input_placeholder")
17
+ ) %>
18
+ <div class="input-group-button">
19
+ <button type="submit" class="button button--muted">
20
+ <%= icon "magnifying-glass", aria_label: t("decidim.search.term_input_placeholder"), role: "img" %>
21
+ </button>
22
+ </div>
23
+ </div>
24
+ <% end %>
25
+ </div>
26
+ </div>
@@ -1,20 +1,43 @@
1
- <%= filter_form_for filter do |form| %>
2
- <div class="filters-controls">
3
- <div class="filters__section">
4
- <div class="filters__search">
5
- <div class="input-group">
6
- <%= form.search_field :term, label: false, class: "input-group-field", placeholder: t(".search") %>
7
- <div class="input-group-button">
8
- <button type="submit" class="button button--muted">
9
- <%= icon "magnifying-glass", aria_label: t(".search") %>
10
- </button>
11
- </div>
1
+ <label class="text-medium mb-s"><%= t(".jump_to") %></label>
2
+ <% if params.dig(:filter, :resource_type).present? %>
3
+ <p class="text-secondary">
4
+ <%= link_to main_search_path do %>
5
+ <%= icon "caret-left", class: "icon--small" %>&nbsp;<%= t(".back") %>
6
+ <% end %>
7
+ </p>
8
+ <% end %>
9
+ <div class="card card--secondary">
10
+ <div class="filters">
11
+ <% @sections.each do |type, results| %>
12
+ <div class="filters__section--general<%= " no-results" if results[:count].zero? %>">
13
+ <% if results[:count].positive? %>
14
+ <%= link_to search_path_by_resource_type(type), class: "flex--sbc" do %>
15
+ <strong class="section-title"><%= searchable_resource_human_name(type) %></strong>
16
+ <span class="muted">&nbsp;<%= results[:count] %></span>
17
+ <% end %>
18
+ <% else %>
19
+ <div class="flex--sbc">
20
+ <strong class="section-title"><%= searchable_resource_human_name(type) %></strong>
21
+ <span class="muted">&nbsp;<%= results[:count] %></span>
12
22
  </div>
13
- </div>
23
+ <% end %>
14
24
  </div>
15
-
16
- <%= form.collection_radio_buttons :resource_type,searchable_resources_as_options(t("all", scope: "decidim.search.filter")), :first, :last, legend_title: t("component", scope: "decidim.search.filter") %>
17
-
18
- <%= scopes_picker_filter form, :decidim_scope_id %>
25
+ <% end %>
19
26
  </div>
20
- <% end %>
27
+ </div>
28
+ <div class="card card--secondary">
29
+ <%= filter_form_for filter do |form| %>
30
+ <%= scopes_picker_filter form, :decidim_scope_id %>
31
+ <%= form.hidden_field :term %>
32
+ <% end %>
33
+ </div>
34
+ <div class="row collapse order-by">
35
+ <div class="text-uppercase text-right">
36
+ <span class="order-by__tabs">
37
+ <%= search_path_by_state_link(:past) %>
38
+ <%= search_path_by_state_link(:future) %>
39
+ <%= search_path_by_state_link(:active) %>
40
+ <%= search_path_by_state_link(nil) %>
41
+ </span>
42
+ </div>
43
+ </div>
@@ -1,24 +1,13 @@
1
1
  <main class="wrapper">
2
- <div class="row columns">
3
- <h2 id="results-count" class="section-heading">
4
- <%= render partial: "count" %>
5
- </h2>
2
+ <div class="row" id="search-count">
3
+ <%= render partial: "count" %>
6
4
  </div>
7
5
  <div class="row">
8
- <div class="columns mediumlarge-4 large-3">
9
- <%= render partial: "filters_small_view" %>
10
- <div class="card card--secondary show-for-mediumlarge">
11
- <%= render partial: "filters" %>
12
- </div>
6
+ <div class="columns mediumlarge-4 large-3 search-filters">
7
+ <%= render partial: "filters" %>
13
8
  </div>
14
- <div class="collection-sort-controls row small-up-1 medium-up-3 card-grid">
15
- <div class="column">
16
- <%= render partial: "decidim/shared/results_per_page" %>
17
- </div>
18
- </div>
19
9
  <div id="results" class="columns mediumlarge-8 large-9">
20
- <%= render partial: "results" %>
21
- <%= paginate @results, theme: "decidim" %>
10
+ <%= cell "decidim/search_results", @sections, params: params %>
22
11
  </div>
23
12
  </div>
24
13
  </main>
@@ -1,5 +1,7 @@
1
1
  var $results = $('#results');
2
- var $resultsCount = $('#results-count');
2
+ var $filters = $('.search-filters');
3
+ var $count = $('#search-count');
3
4
 
4
- $results.html('<%= j(render partial: "results").strip.html_safe %>');
5
- $resultsCount.html('<%= j(render partial: "count").strip.html_safe %>');
5
+ $results.html('<%= j(cell("decidim/search_results", @sections, params: params).show).strip.html_safe %>');
6
+ $filters.html('<%= j(render partial: "filters").strip.html_safe %>');
7
+ $count.html('<%= j(render partial: "count").strip.html_safe %>');
@@ -0,0 +1,50 @@
1
+ <div class="row expanded">
2
+ <div class="process-nav">
3
+ <div class="row">
4
+ <button class="process-nav__trigger hide-for-medium" data-toggle="process-nav-content">
5
+ <%= icon "caret-bottom", class: "icon--small process-nav__trigger__icon", aria_label: t(".unfold"), role: "img" %>
6
+ <% default_item = active_item || items.first %>
7
+ <div class="process-nav__link">
8
+ <%= default_item[:name] %>
9
+ </div>
10
+ </button>
11
+ <div class="row column process-nav__content" id="process-nav-content" data-toggler=".is-active">
12
+ <ul>
13
+ <% items.each_with_index do |item, index| %>
14
+ <li class="<%= "is-active" if item[:active] %> <%= "hide-for-medium" if index > max_items %>">
15
+ <%= link_to item[:url], class: "process-nav__link #{item[:active] ? 'active' : nil}" do %>
16
+ <%= item[:name] %>
17
+ <% end %>
18
+ </li>
19
+ <% end %>
20
+ </ul>
21
+
22
+ <% if extra_items.any? %>
23
+ <button class="button tiny process-nav__more show-for-medium" data-toggle="process-nav__hide-content">
24
+ <%= t ".more" %> <i></i><i></i><i></i>
25
+ </button>
26
+ <div class="dropdown-pane process-nav__hidden-content" id="process-nav__hide-content"
27
+ data-dropdown
28
+ data-hover="true"
29
+ data-hover-pane="true"
30
+ data-v-offset="-25"
31
+ data-position="bottom"
32
+ data-alignment="right">
33
+ <div class="process-nav__hidden-content__more">
34
+ <%= t ".more" %> <i></i><i></i><i></i>
35
+ </div>
36
+ <ul>
37
+ <% extra_items.each do |item| %>
38
+ <li class="<%= "is-active" if item[:active] %>">
39
+ <%= link_to item[:url], class: "process-nav__link #{item[:active] ? 'active' : nil}" do %>
40
+ <%= item[:name] %>
41
+ <% end %>
42
+ </li>
43
+ <% end %>
44
+ </ul>
45
+ </div>
46
+ <% end %>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ </div>
@@ -0,0 +1,30 @@
1
+ <div class="floating-helper-container" data-help-id="floating-help-<%= id %>">
2
+ <div class="floating-helper" id="floating-helper-tip" data-toggler=".hide">
3
+ <div class="floating-helper__layout">
4
+ <div class="floating-helper__trigger" data-toggle="floating-helper-block floating-helper-tip">
5
+ <div class="floating-helper__text">
6
+ <%= t ".help" %>
7
+ </div>
8
+ <div class="floating-helper__icon">
9
+ <%= icon "question-mark", class: "icon--small" %>
10
+ </div>
11
+ </div>
12
+ </div>
13
+ </div>
14
+
15
+ <div id="floating-helper-block" class="floating-helper__wrapper row column hide" data-toggler=".hide">
16
+ <div class="floating-helper__content">
17
+ <div class="floating-helper__content-inner">
18
+ <div class="floating-helper__icon-big show-for-medium">
19
+ <%= icon "question-mark", class: "icon--large" %>
20
+ </div>
21
+ <div class="mb-s">
22
+ <%= content %>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ <div class="floating-helper__content-close" data-toggle="floating-helper-block floating-helper-tip">
27
+ <%= icon "x", class: "icon--small" %>
28
+ </div>
29
+ </div>
30
+ </div>
@@ -1 +1 @@
1
- <%= cell "decidim/follow_button", followable, inline: false, context: { current_user: current_user } %>
1
+ <%= cell "decidim/follow_button", followable, inline: false, large: large %>
@@ -6,28 +6,41 @@
6
6
  <span aria-hidden="true">&times;</span>
7
7
  </button>
8
8
  </div>
9
- <div class="row">
10
- <div class="columns medium-8 medium-centered">
11
- <%= decidim_form_for(Decidim::User.new, as: :user, url: session_path(:user), html: { class: "register-form new_user" }) do |f| %>
12
- <div>
13
- <div class="field">
14
- <%= f.email_field :email, autofocus: true %>
15
- </div>
16
- <div class="field">
17
- <%= f.password_field :password, autocomplete: "off" %>
18
- </div>
19
- </div>
20
- <div class="actions">
21
- <%= f.submit t("devise.sessions.new.sign_in"), class: "button expanded" %>
22
- </div>
23
- <% end %>
24
- <p class="text-center">
25
- <%= link_to t(".sign_up"), decidim.new_user_registration_path, class: "sign-up-link" %>
26
- </p>
27
- <p class="text-center">
28
- <%= link_to t("devise.shared.links.forgot_your_password"), new_password_path(:user) %>
29
- </p>
9
+ <% if current_organization.sign_in_enabled? %>
10
+ <div class="row">
11
+ <div class="columns medium-8 medium-centered">
12
+ <%= decidim_form_for(Decidim::User.new, as: :user, url: session_path(:user), html: { class: "register-form new_user" }) do |f| %>
13
+ <div>
14
+ <div class="field">
15
+ <%= f.email_field :email, autofocus: true %>
16
+ </div>
17
+ <div class="field">
18
+ <%= f.password_field :password, autocomplete: "off" %>
19
+ </div>
20
+ </div>
21
+ <div class="actions">
22
+ <%= f.submit t("devise.sessions.new.sign_in"), class: "button expanded" %>
23
+ </div>
24
+ <% end %>
25
+ <% if current_organization.sign_up_enabled? %>
26
+ <p class="text-center">
27
+ <%= link_to t(".sign_up"), decidim.new_user_registration_path, class: "sign-up-link" %>
28
+ </p>
29
+ <% end %>
30
+ <p class="text-center">
31
+ <%= link_to t("devise.shared.links.forgot_your_password"), new_password_path(:user) %>
32
+ </p>
33
+ </div>
30
34
  </div>
31
35
  <%= render "decidim/devise/shared/omniauth_buttons_mini" %>
32
- </div>
36
+ <% else %>
37
+ <div class="row">
38
+ <div class="columns medium-8 medium-centered">
39
+ <p>
40
+ <%= t("sign_in_disabled", scope: "decidim.devise.sessions.new") %>
41
+ </p>
42
+ </div>
43
+ </div>
44
+ <%= render "decidim/devise/shared/omniauth_buttons" %>
45
+ <% end %>
33
46
  </div>
@@ -1,6 +1,6 @@
1
1
  <div class="results-per-page">
2
2
  <div class="results-per-page__dropdown">
3
- <span class="results-per-page__text"><%= t(".label") %></span>
3
+ <span class="results-per-page__text"><%= t("decidim.shared.results_per_page.label") %></span>
4
4
  <ul class="dropdown menu" data-dropdown-menu>
5
5
  <li class="is-dropdown-submenu-parent">
6
6
  <a><%= per_page %></a>
@@ -29,5 +29,5 @@
29
29
  <span aria-hidden="true">&times;</span>
30
30
  </button>
31
31
  </div>
32
- <h4 class="heading4"><%= "#{decidim_meta_url}" %></h4>
32
+ <input type="text" value="<%= "#{decidim_meta_url}" %>" readonly />
33
33
  </div>
@@ -0,0 +1,5 @@
1
+ <%= cell "decidim/profile", user, context: {
2
+ content_cell: "decidim/user_activity",
3
+ activities: activities,
4
+ user: user
5
+ } %>
@@ -0,0 +1,14 @@
1
+ <ul>
2
+ <% areas.each do |area| %>
3
+ <li class="switch tiny switch-with-label">
4
+ <%= f.fields_for "areas[]", area do |form| %>
5
+ <label>
6
+ <%= form.check_box "checked", label: false, class: "switch-input" %>
7
+ <span class="switch-paddle"></span>
8
+ <span class="switch-label"><%= translated_attribute area.name %></span>
9
+ </label>
10
+ <%= form.hidden_field "id", value: area.id %>
11
+ <% end %>
12
+ </li>
13
+ <% end %>
14
+ </ul>
@@ -0,0 +1,15 @@
1
+ <ul>
2
+ <% scopes.each do |scope| %>
3
+ <li class="switch tiny switch-with-label">
4
+ <%= f.fields_for "scopes[]", scope do |form| %>
5
+ <label>
6
+ <%= form.check_box "checked", label: false, class: "switch-input" %>
7
+ <span class="switch-paddle"></span>
8
+ <span class="switch-label"><%= translated_attribute scope.name %></span>
9
+ </label>
10
+ <%= form.hidden_field "id", value: scope.id %>
11
+ <% end %>
12
+ </li>
13
+ <%= render partial: "scopes", locals: { scopes: scope.children, f: f } %>
14
+ <% end %>
15
+ </ul>
@@ -0,0 +1,12 @@
1
+ <div class="row">
2
+ <p><%= t(".select_your_interests") %></p>
3
+ <%= form_for(@user_interests, url: user_interests_path, method: :put, class: "user-form") do |f| %>
4
+ <p><strong><%= t(".my_interests") %></strong></p>
5
+ <% if @user_interests.scopes.any? %>
6
+ <%= render partial: "scopes", locals: { scopes: @user_interests.scopes, f: f } %>
7
+ <%= f.submit t(".update_my_interests"), disable_with: true %>
8
+ <% else %>
9
+ <p><%= t(".no_scopes") %></p>
10
+ <% end %>
11
+ <% end %>
12
+ </div>
@@ -0,0 +1,4 @@
1
+ <%= cell "decidim/profile", user, context: {
2
+ content_cell: "decidim/user_activity",
3
+ activities: activities
4
+ } %>
@@ -1,6 +1,6 @@
1
1
  <li><%= link_to t(".profile"), decidim.account_path %></li>
2
2
  <% unless current_user.managed? %>
3
- <li><%= link_to t(".public_profile"), decidim.profile_following_path(current_user.nickname) %></li>
3
+ <li><%= link_to t(".public_profile"), decidim.profile_path(current_user.nickname) %></li>
4
4
  <% end %>
5
5
  <li><%= link_to t(".notifications"), decidim.notifications_path %></li>
6
6
  <li><%= link_to t(".conversations"), decidim.conversations_path %></li>
@@ -73,7 +73,9 @@ end
73
73
  <% else %>
74
74
  <div class="topbar__user show-for-medium" data-set="nav-login-holder">
75
75
  <div class="topbar__user__login js-append">
76
- <%= link_to t("layouts.decidim.header.sign_up"), decidim.new_user_registration_path, class: "sign-up-link" %>
76
+ <% if current_organization.sign_up_enabled? %>
77
+ <%= link_to t("layouts.decidim.header.sign_up"), decidim.new_user_registration_path, class: "sign-up-link" %>
78
+ <% end %>
77
79
  <%= link_to t("layouts.decidim.header.sign_in"), decidim.new_user_session_path, class: "sign-in-link" %>
78
80
  </div>
79
81
  </div>
@@ -102,13 +104,18 @@ end
102
104
  <% end %>
103
105
  <div class="row">
104
106
  <div class="medium-8 large-6 large-offset-3 column main__footer__nav">
105
- <% if current_organization.static_pages.any? %>
106
107
  <ul class="footer-nav">
107
- <% current_organization.static_pages.sorted_by_i18n_title.each do |page| %>
108
- <li><%= link_to translated_attribute(page.title), decidim.page_path(page) %></li>
108
+ <% if current_organization.static_pages.any? %>
109
+ <% current_organization.static_page_topics.where(show_in_footer: true).each do |page_topic| %>
110
+ <li><%= link_to translated_attribute(page_topic.title), decidim.page_path(page_topic.pages.first) %></li>
111
+ <% end %>
112
+
113
+ <% current_organization.static_pages.where(show_in_footer: true).each do |page| %>
114
+ <li><%= link_to translated_attribute(page.title), decidim.page_path(page) %></li>
115
+ <% end %>
109
116
  <% end %>
117
+ <li><%= link_to t("layouts.decidim.footer.download_open_data"), decidim.open_data_download_path %></li>
110
118
  </ul>
111
- <% end %>
112
119
  </div>
113
120
  <%= render partial: "layouts/decidim/social_media_links" %>
114
121
  </div>
@@ -35,6 +35,9 @@ ca:
35
35
  password_confirmation: Confirmació de la contrasenya
36
36
  remember_me: Recorda'm
37
37
  models:
38
+ decidim/amendment:
39
+ one: Esmena
40
+ other: Esmenes
38
41
  decidim/user:
39
42
  one: Sense usuaris
40
43
  other: Usuaris
@@ -125,6 +128,58 @@ ca:
125
128
  user_group:
126
129
  reject: "%{user_name} ha rebutjat la verificació del grup d'usuaris %{resource_name}"
127
130
  verify: "%{user_name} ha verificat el grup d'usuaris %{resource_name}"
131
+ verify_via_csv: "%{user_name} va verificar el %{resource_name} grup d'usuaris a través d'un fitxer CSV"
132
+ amendments:
133
+ accepted:
134
+ error: S'ha produït un error en acceptar l'esmena, torneu-ho a provar més tard.
135
+ success: Aquesta esmena ha estat acceptada amb èxit.
136
+ amendable:
137
+ amended_by: Esmenat per
138
+ button: Esmenar %{model_name}
139
+ promote_button: Promociona't a %{model_name}
140
+ error: S'ha produït un error en modificar aquest recurs.
141
+ help_text: Milloreu aquest %{model_name} modificant la seva %{amendable_fields}
142
+ promote_help_text: Podeu promocionar aquesta esmena i publicar-lo com a independent %{model_name}
143
+ no_amenders: No hi ha cap esmenador
144
+ no_amendments: No hi ha cap esmena
145
+ section_heading: Esmenes (%{count})
146
+ created:
147
+ error: S'ha produït un error en crear aquesta esmena, torneu-ho a provar més tard
148
+ success: L'esmena s'ha creat correctament
149
+ emendation:
150
+ actions:
151
+ button_accept: Acceptar
152
+ button_reject: Rebutjar
153
+ help_text: Revisa els canvis i accepta o rebutja aquesta esmena. S'enviarà una notificació al seu autor(s).
154
+ announcement:
155
+ accepted: |-
156
+ Aquesta esmena per al %{amendable_type} %{amendable_link} ha estat
157
+ acceptada en <strong>%{announcement_date}</strong>.
158
+ evaluating: |-
159
+ Aquesta esmena pel %{amendable_type} %{amendable_link} s'està avaluant.
160
+ rejected: |-
161
+ Aquesta esmena del %{amendable_type} %{amendable_link}
162
+ va ser rebutjada en <strong>%{announcement_date}</strong>.
163
+ withdrawn: |-
164
+ Aquesta esmena del %{amendable_type} %{amendable_link}
165
+ ha estat retirada per l'autor.
166
+ new:
167
+ amendment_author: Autor de l'esmena
168
+ back: Tornar
169
+ heading: Crea la teva esmena
170
+ help_text: Estàs modificant el %{model_name}
171
+ send: Envia l'esmena
172
+ rejected:
173
+ error: S'ha produït un error en rebutjar aquesta esmena, torneu-ho a provar més tard
174
+ success: S'ha rebutjat l'esmena amb èxit
175
+ promoted:
176
+ success: S'ha promogut l'emissió amb èxit
177
+ error: Hi ha hagut errors en promoure l'esmena
178
+ review:
179
+ back: Tornar
180
+ heading: Revisa l'esmena
181
+ help_text: Estàs modificant el %{model_name}
182
+ send: Accepta l'esmena
128
183
  anonymous_user: Anònim
129
184
  application:
130
185
  collection:
@@ -163,6 +218,9 @@ ca:
163
218
  foo: Foo
164
219
  name: Autorització foo
165
220
  granted_at: Atorgada el %{timestamp}
221
+ sms:
222
+ explanation: Envia el número de telèfon mòbil per poder comprovar la teva identitat.
223
+ name: Codi per SMS
166
224
  started_at: Iniciat el %{timestamp}
167
225
  authorization_modals:
168
226
  show:
@@ -208,9 +266,11 @@ ca:
208
266
  name: Component de prova
209
267
  settings:
210
268
  global:
269
+ amendments_enabled: Esmenes habilitades
211
270
  comments_enabled: Comentaris habilitats
212
271
  dummy_global_attribute_1: Atribut de prova 1
213
272
  dummy_global_attribute_2: Atribut de prova 2
273
+ enable_pads_creation: Activar la creació de pads
214
274
  resources_permissions_enabled: Permisos de recursos habilitats
215
275
  step:
216
276
  comments_blocked: Comentaris bloquejats
@@ -280,6 +340,8 @@ ca:
280
340
  new:
281
341
  are_you_new?: Ets nou a la plataforma?
282
342
  register: Crea't un compte
343
+ sign_in_disabled: Pots accedir amb un compte extern
344
+ sign_up_disabled: El registre està deshabilitat, pots accedir a un usuari existent
283
345
  shared:
284
346
  newsletter_modal:
285
347
  buttons:
@@ -320,6 +382,51 @@ ca:
320
382
  content_doesnt_exist: Aquesta adreça és incorrecta o ha estat eliminada.
321
383
  title: No s'ha trobat la pàgina que busques
322
384
  events:
385
+ amendments:
386
+ amendment_created:
387
+ affected_user:
388
+ email_intro: 'S''ha creat una nova esmena per a %{amendable_title}. Podeu veure-ho des d''aquesta pàgina:'
389
+ email_outro: Heu rebut aquesta notificació perquè sou un autor de %{amendable_title}.
390
+ email_subject: Una nova esmena per a %{amendable_title} de %{emendation_author_nickname}
391
+ notification_title: A <a href="%{emendation_path}">nova esmena</a> ha estat creat per <a href="%{emendation_author_path}">%{emendation_author_nickname}</a> per <a href="%{amendable_path}">%{amendable_title}</a> %{amendable_type}.
392
+ follower:
393
+ email_intro: 'S''ha creat una nova esmena per a %{amendable_title}. Podeu veure-ho des d''aquesta pàgina:'
394
+ email_outro: Heu rebut aquesta notificació perquè esteu seguint %{amendable_title}. Podeu deixar de rebre notificacions seguint l'enllaç anterior.
395
+ email_subject: Una nova esmena per a %{amendable_title} de %{emendation_author_nickname}
396
+ notification_title: A <a href="%{emendation_path}">nova esmena</a> ha estat creat per <a href="%{emendation_author_path}">%{emendation_author_nickname}</a> per <a href="%{amendable_path}">%{amendable_title}</a> %{amendable_type}.
397
+ amendment_rejected:
398
+ affected_user:
399
+ email_intro: 'S''ha rebutjat una esmena per %{amendable_title}. Podeu veure-ho des d''aquesta pàgina:'
400
+ email_outro: Heu rebut aquesta notificació perquè sou un autor de %{amendable_title}.
401
+ email_subject: Una esmena rebutjada per %{amendable_title} de l' %{emendation_author_nickname}
402
+ notification_title: La <a href="%{emendation_path}">esmena</a> creada per <a href="%{emendation_author_path}">%{emendation_author_nickname}</a> ha estat rebutjada per <a href="%{amendable_path}">%{amendable_title}</a> %{amendable_type}.
403
+ follower:
404
+ email_intro: 'S''ha rebutjat una esmena per %{amendable_title}. Podeu veure-ho des d''aquesta pàgina:'
405
+ email_outro: Heu rebut aquesta notificació perquè esteu seguint %{amendable_title}. Podeu deixar de rebre notificacions seguint l'enllaç anterior.
406
+ email_subject: Una esmena rebutjada per %{amendable_title} de l' %{emendation_author_nickname}
407
+ notification_title: La <a href="%{emendation_path}">esmena</a> creada per <a href="%{emendation_author_path}">%{emendation_author_nickname}</a> ha estat rebutjada per <a href="%{amendable_path}">%{amendable_title}</a> %{amendable_type}.
408
+ amendment_promoted:
409
+ affected_user:
410
+ email_intro: 'Una esmena rebutjada per %{amendable_title} ha estat promoguda a una independent %{amendable_type}. Podeu veure-ho des d''aquesta pàgina:'
411
+ email_outro: Heu rebut aquesta notificació perquè sou un autor de %{amendable_title}.
412
+ email_subject: S'ha promogut una esmena de %{emendation_author_nickname}
413
+ notification_title: S'ha promogut una esmena de <a href="%{emendation_path}">rebuig</a> per <a href="%{amendable_path}">%{amendable_title}</a> %{amendable_type} per <a href="%{emendation_author_path}">%{emendation_author_nickname}</a>.
414
+ follower:
415
+ email_intro: 'Una esmena rebutjada per %{amendable_title} ha estat promoguda a una independent %{amendable_type}. Podeu veure-ho des d''aquesta pàgina:'
416
+ email_outro: Heu rebut aquesta notificació perquè esteu seguint %{amendable_title}. Podeu deixar de rebre notificacions seguint l'enllaç anterior.
417
+ email_subject: S'ha promogut una esmena de %{emendation_author_nickname}
418
+ notification_title: S'ha promogut una esmena de <a href="%{emendation_path}">rebuig</a> per <a href="%{amendable_path}">%{amendable_title}</a> %{amendable_type} per <a href="%{emendation_author_path}">%{emendation_author_nickname}</a>.
419
+ amendment_accepted:
420
+ affected_user:
421
+ email_intro: 'S''ha acceptat una esmena per %{amendable_title}. Podeu veure-ho des d''aquesta pàgina:'
422
+ email_outro: Heu rebut aquesta notificació perquè sou un autor de %{amendable_title}.
423
+ email_subject: Una esmena acceptada per %{amendable_title} de %{emendation_author_nickname}
424
+ notification_title: S'ha acceptat la <a href="%{emendation_path}">esmena</a> creada per <a href="%{emendation_author_path}">%{emendation_author_nickname}</a> per a <a href="%{amendable_path}">%{amendable_title}</a> %{amendable_type}.
425
+ follower:
426
+ email_intro: 'S''ha acceptat una esmena per %{amendable_title}. Podeu veure-ho des d''aquesta pàgina:'
427
+ email_outro: Heu rebut aquesta notificació perquè esteu seguint %{amendable_title}. Podeu deixar de rebre notificacions seguint l'enllaç anterior.
428
+ email_subject: Una esmena acceptada per %{amendable_title} de %{emendation_author_nickname}
429
+ notification_title: S'ha acceptat la <a href="%{emendation_path}">esmena</a> creada per <a href="%{emendation_author_path}">%{emendation_author_nickname}</a> per a <a href="%{amendable_path}">%{amendable_title}</a> %{amendable_type}.
323
430
  attachments:
324
431
  attachment_created:
325
432
  email_intro: 'S''ha afegit un nou document a %{resource_title}. Pots veure-ho des d''aquesta pàgina:'
@@ -532,6 +639,13 @@ ca:
532
639
  edit:
533
640
  edit_user_group: Editar el grup
534
641
  update_user_group: Actualitzar el grup
642
+ form:
643
+ document_number_help: No utilitzis guionets ni espais
644
+ email_help: Correu electrònic de la teva organització, associació, col·lectiu, grup, etc.
645
+ fill_in_for_verification: 'Omple aquests camps si vols que el teu grup sigui verificat:'
646
+ name_help: Nom de la teva organització, associació, col·lectiu, grup, etc.
647
+ nickname_help: Nom d'usuari de la teva organització, associació, col·lectiu, grup, etc. No utilitzis espais ni accents.
648
+ phone_help: No utilitzis guionets ni espais
535
649
  join:
536
650
  error: Hi ha hagut un problema en unir-se al grup
537
651
  success: La sol·licitud per a formar-ne part s'ha creat correctament. Un administrador revisarà la teva sol·licitud abans d'acceptar-te al grup.
@@ -545,6 +659,7 @@ ca:
545
659
  new:
546
660
  create_user_group: Crea un grup
547
661
  new_user_group: Nou grup
662
+ subtitle: Crea un grup i convida altres usuaris a unir-se per participar a nivell col·lectiu.
548
663
  no_user_groups: Encara no pertanys a cap grup.
549
664
  roles:
550
665
  admin: Administrador
@@ -553,6 +668,13 @@ ca:
553
668
  update:
554
669
  error: S'ha produït un problema en actualitzar el grup
555
670
  success: S'ha actualitzat el grup amb èxit
671
+ help:
672
+ main_topic:
673
+ default_page:
674
+ content: "<p>A %{organization} pots participar i decidir sobre diferents temes, a través dels espais que veus al menú superior: Processos, Assemblees, Iniciatives, Consultes.</p> <p>Dins de cada un trobaràs diferents opcions per participar: fer propostes - a nivell individual o amb altres persones -, prendre part en debats, prioritzar projectes a executar, assistir a trobades presencials i altres accions.</p>\n"
675
+ title: Què puc fer a %{organization}?
676
+ description: Llegeix més sobre %{organization}
677
+ title: Ajuda general
556
678
  last_activities:
557
679
  activities:
558
680
  no_activities_warning: Sense activitat
@@ -584,8 +706,8 @@ ca:
584
706
  members:
585
707
  no_members: Aquest grup d'usuaris encara no té cap membre.
586
708
  menu:
709
+ help: Ajuda
587
710
  home: Inici
588
- more_information: Més informació
589
711
  messaging:
590
712
  conversation_mailer:
591
713
  new_conversation:
@@ -602,20 +724,31 @@ ca:
602
724
  create:
603
725
  error: No s'ha iniciat la conversa. Torna-ho a provar més tard
604
726
  index:
605
- from: Des de
606
- last_message_html: Últim missatge <strong>fa %{time}</strong>
607
727
  no_conversations: Encara no tens converses
608
- show:
609
- conversation_with_html: Conversa amb <strong>%{name}</strong>
610
- reply: Respon
728
+ title: Converses
729
+ reply:
611
730
  send: Enviar
731
+ title: Respon
732
+ show:
733
+ title: Conversa amb %{usernames}
612
734
  start:
613
735
  send: Enviar
614
736
  title: Comença una conversa
615
737
  update:
616
738
  error: Missatge no enviat. Torna-ho a provar més tard
617
739
  metrics:
740
+ download:
741
+ csv: Baixeu les dades (csv)
742
+ followers:
743
+ description: Nombre d'usuaris que segueixen aquest espai de participació
744
+ object: seguidors
745
+ title: Seguidors
746
+ participants:
747
+ description: Nombre d'usuaris actius de l'organització
748
+ object: participants
749
+ title: Participants
618
750
  users:
751
+ description: Nombre d'usuaris de l'organització
619
752
  object: usuaris
620
753
  title: Usuaris
621
754
  newsletter_mailer:
@@ -649,16 +782,27 @@ ca:
649
782
  notifications_settings:
650
783
  show:
651
784
  email_on_notification: Vull rebre un correu electrònic cada vegada que rebi una notificació.
785
+ everything_followed: Tot el que segueixo
786
+ newsletters: Butlletins informatius
652
787
  newsletter_notifications: Vull rebre butlletins
788
+ own_activity: La meva pròpia activitat, com quan algú fa comentaris a la meva proposta o em menciona
789
+ receive_notifications_about: Vull rebre notificacions
790
+ send_notifications_by_email: Enviar notificacions per correu electrònic
653
791
  update_notifications_settings: Guardar canvis
654
792
  update:
655
793
  error: Hi ha hagut un error en actualitzar la configuració de les notificacions.
656
794
  success: La configuració de les notificacions s'han actualitzat correctament.
795
+ open_data:
796
+ not_available_yet: Els fitxers Open Data encara no estan disponibles, torna-ho a provar d'aquí a uns minuts.
657
797
  own_user_groups:
658
798
  index:
659
799
  pending: Pendents
660
800
  rejected: Rebutjades
661
801
  verified: Verificada
802
+ pad_iframe:
803
+ disclaimer: Els continguts d'aquest pad han estat escrits per usuaris registrats i expressen les seves opinions. %{organization} no es fa responsable dels seus contingut.
804
+ explanation: Utilitzeu aquest pad per prendre notes durant la trobada de manera col·laborativa, així és més fàcil escriure l'acta després.
805
+ pad: Pad
662
806
  pages:
663
807
  home:
664
808
  extended:
@@ -701,7 +845,15 @@ ca:
701
845
  sub_hero:
702
846
  register: Registra't
703
847
  index:
704
- title: Més informació
848
+ read_more: Llegir més
849
+ standalone_pages: Pàgines
850
+ subheading: Navega per les pàgines d'ajuda de %{name}
851
+ title: Ajuda
852
+ topics: Temes
853
+ participatory_space:
854
+ metrics:
855
+ headline: Participació en xifres
856
+ link: Mostra totes les estadístiques
705
857
  terms_and_conditions:
706
858
  accept:
707
859
  error: S'ha produït un error en acceptar els Termes i Condicions.
@@ -729,26 +881,30 @@ ca:
729
881
  default_officialization_text_for_user_groups: Aquest grup d'usuaris es verifica públicament, el teu nom s'ha verificat per correspondre amb el teu nom real
730
882
  default_officialization_text_for_users: Aquesta persona participant està verificada públicament. S'ha verificat que el seu nom o la seva funció es correspon amb el seu nom i funció reals
731
883
  show:
884
+ activity: Activitat
732
885
  badges: Insígnies
733
- conversations: Converses
734
886
  followers: Seguidors
735
887
  following: Segueix
736
888
  groups: Grups
737
889
  members: Membres
738
- notifications: Notificacions
890
+ timeline: Línia de temps
891
+ view_full_profile: Mostra el perfil complet
739
892
  sidebar:
740
893
  badges:
741
894
  info: Els distintius s'aconsegueixen mitjançant la realització d'activitats específiques a la plataforma.
742
895
  title: Distintius
743
896
  user:
897
+ confirmation_instructions_sent: S'han enviat instruccions de confirmació de correu electrònic
744
898
  create_user_group: Crea un grup
745
899
  edit_profile: Edita el perfil
746
900
  edit_user_group: Edita el perfil del grup
901
+ fill_in_email_to_confirm_it: Ompliu el correu electrònic del vostre grup per confirmar-lo
747
902
  invite_user: Convida l'usuari
748
903
  join_user_group: Sol·licitud per unir-se al grup
749
904
  leave_user_group: Marxar del grup
750
905
  manage_user_group_admins: Administra els administradors
751
906
  manage_user_group_users: Gestiona els membres
907
+ resend_email_confirmation_instructions: Reenvia les instruccions de confirmació de correu electrònic
752
908
  reported_mailer:
753
909
  hide:
754
910
  hello: Hola %{name},
@@ -773,24 +929,35 @@ ca:
773
929
  prompt: Seleccioneu un àmbit
774
930
  scopes: Àmbits
775
931
  search:
776
- filter:
777
- all: Tots
778
- component: Component
779
932
  results_found_for_term: '%{count} resultats de la cerca: "%{term}"'
780
933
  term_input_placeholder: Cerca
781
934
  searches:
782
935
  filters:
783
- search: Cerca
936
+ back: Torna als resultats
937
+ jump_to: 'Salta a:'
938
+ state:
939
+ active: Actius
940
+ all: Tots
941
+ future: Futurs
942
+ past: Passats
784
943
  filters_small_view:
785
944
  close_modal: Tanca el modal
786
945
  filter: Filtre
787
946
  filter_by: Filtra per
788
947
  unfold: Desplegar
948
+ results:
949
+ results:
950
+ one: "%{count} resultat"
951
+ other: "%{count} resultats"
952
+ view_all: Mostra-ho tot (%{count})
789
953
  shared:
790
954
  embed_modal:
791
955
  close_window: Tanca la finestra
792
956
  embed: Si us plau, enganxa aquest codi a la teva pàgina
793
957
  embed_link: Incrustar
958
+ extended_navigation_bar:
959
+ more: Més
960
+ unfold: Desplegar
794
961
  flag_modal:
795
962
  already_reported: Aquest contingut ja ha estat denunciat i serà revisat per un administrador.
796
963
  close: Tancar
@@ -800,6 +967,8 @@ ca:
800
967
  report: Denuncia
801
968
  spam: Conté "clickbait", publicitat o estafes.
802
969
  title: Denuncia un problema
970
+ floating_help:
971
+ help: Ajuda
803
972
  follow_button:
804
973
  sign_in_before_follow: Inicia sessió abans de realitzar aquesta acció
805
974
  login_modal:
@@ -815,6 +984,21 @@ ca:
815
984
  share_link: Comparteix l'enllaç
816
985
  version_author:
817
986
  deleted: Usuari eliminat
987
+ user_activity:
988
+ index:
989
+ no_activities_warning: Aquest usuari encara no ha tingut cap activitat.
990
+ user_interests:
991
+ show:
992
+ no_scopes: Aquesta organització encara no té cap abast.
993
+ my_interests: Els meus interessos
994
+ select_your_interests: Seleccioneu els temes als quals us interessa rebre esdeveniments relacionats amb ells a la pestanya Timeline del perfil.
995
+ update_my_interests: Actualitzeu els meus interessos
996
+ update:
997
+ error: S'ha produït un error en actualitzar els vostres interessos.
998
+ success: Els vostres interessos s'han actualitzat correctament.
999
+ welcome_notification:
1000
+ default_body: <p>Hola {{name}}, gràcies per unir-te a {{organization}} i benvingut/da!</p><ul><li>Si vols fer-te una idea ràpida del que pots fer aquí, fes un cop d'ull a la secció d'<a href="{{help_url}}">Ajuda</a>.</li><li>Un cop l'hagis llegit obtindràs la teva primera insígnia. Aquí tens la <a href="{{badges_url}}">llista</a> de totes les que pots anar aconseguint a mesura que participis a {{organization}}</li><li>Finalment, però no per això menys important, uneix-te a altres persones, comparteix amb elles l'experiència d'implicar-se i participar a {{organization}}. Fes propostes, comenta, debat, pensa en com contribuir al bé comú, aporta arguments per convèncer, escolta i llegeix per convèncer-te, expressa les teves idees de manera concreta i directa, respon amb paciència i decisió, defensa les teves idees i manté la ment oberta a col·laborar i sumar-te a les idees d'altres persones.</li></ul>
1001
+ default_subject: Gràcies per unir-te a {{organization}}!
818
1002
  devise:
819
1003
  confirmations:
820
1004
  confirmed: La teva adreça de correu electrònic s'ha confirmat correctament.
@@ -992,6 +1176,7 @@ ca:
992
1176
  edit_link:
993
1177
  edit: Edita
994
1178
  footer:
1179
+ download_open_data: Descarrega els fitxers de dades obertes
995
1180
  made_with_open_source: Web feta amb <a target="_blank" href="https://github.com/decidim/decidim">programari lliure</a>.
996
1181
  header:
997
1182
  close_menu: Tancar menú
@@ -1016,6 +1201,7 @@ ca:
1016
1201
  authorizations: Autoritzacions
1017
1202
  delete_my_account: Eliminar el meu compte
1018
1203
  my_data: Les meves dades
1204
+ my_interests: Els meus interessos
1019
1205
  notifications_settings: Configuració de les notificacions
1020
1206
  title: Configuració d'usuari
1021
1207
  user_groups: Grups