decidim-elections 0.23.3 → 0.24.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (326) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -0
  3. data/app/assets/config/admin/decidim_votings_manifest.css +0 -0
  4. data/app/assets/config/admin/decidim_votings_manifest.js +4 -0
  5. data/app/assets/config/decidim_elections_manifest.css +3 -0
  6. data/app/assets/config/decidim_elections_manifest.js +6 -0
  7. data/app/assets/config/decidim_votings_manifest.css +3 -0
  8. data/app/assets/config/decidim_votings_manifest.js +0 -0
  9. data/app/assets/images/decidim/votings/icon.svg +1 -0
  10. data/app/assets/javascripts/decidim/elections/admin/pending_action.js.es6 +16 -0
  11. data/app/assets/javascripts/decidim/elections/admin/vote_statistics.js.es6 +11 -0
  12. data/app/assets/javascripts/decidim/elections/trustee_zone.js.es6 +54 -0
  13. data/app/assets/javascripts/decidim/elections/trustee_zone/key_ceremony.js.es6 +126 -0
  14. data/app/assets/javascripts/decidim/elections/trustee_zone/tally.js.es6 +104 -0
  15. data/app/assets/javascripts/decidim/elections/vote.js.es6 +107 -160
  16. data/app/assets/javascripts/decidim/elections/vote_questions.component.js.es6 +129 -0
  17. data/app/assets/javascripts/decidim/elections/vote_verify.js.es6 +71 -0
  18. data/app/assets/javascripts/decidim/votings/admin/monitoring_committee_members_form.js.es6 +35 -0
  19. data/app/assets/javascripts/decidim/votings/admin/polling_officers_form.js.es6 +35 -0
  20. data/app/assets/javascripts/decidim/votings/admin/polling_officers_picker.js.es6 +35 -0
  21. data/app/assets/javascripts/decidim/votings/admin/polling_stations_form.js.es6 +5 -0
  22. data/app/assets/stylesheets/decidim/elections/elections.scss +0 -4
  23. data/app/assets/stylesheets/decidim/elections/focus/_accordion.scss +36 -0
  24. data/app/assets/stylesheets/decidim/elections/focus/_evote.scss +58 -0
  25. data/app/assets/stylesheets/decidim/elections/trustee_zone.scss +24 -0
  26. data/app/assets/stylesheets/decidim/votings/votings.scss +1 -0
  27. data/app/assets/stylesheets/decidim/votings/votings/_votings-header.scss +99 -0
  28. data/app/assets/stylesheets/decidim/votings/votings/_votings-home-banner.scss +11 -0
  29. data/app/cells/decidim/votings/content_block_cell.rb +17 -0
  30. data/app/cells/decidim/votings/content_blocks/highlighted_votings/show.erb +30 -0
  31. data/app/cells/decidim/votings/content_blocks/highlighted_votings_cell.rb +33 -0
  32. data/app/cells/decidim/votings/content_blocks/highlighted_votings_settings_form/show.erb +3 -0
  33. data/app/cells/decidim/votings/content_blocks/highlighted_votings_settings_form_cell.rb +19 -0
  34. data/app/cells/decidim/votings/content_blocks/landing_page/attachments_and_folders_cell.rb +15 -0
  35. data/app/cells/decidim/votings/content_blocks/landing_page/description_cell.rb +15 -0
  36. data/app/cells/decidim/votings/content_blocks/landing_page/elections_cell.rb +15 -0
  37. data/app/cells/decidim/votings/content_blocks/landing_page/header_cell.rb +15 -0
  38. data/app/cells/decidim/votings/content_blocks/landing_page/metrics_cell.rb +15 -0
  39. data/app/cells/decidim/votings/content_blocks/landing_page/polling_stations_cell.rb +15 -0
  40. data/app/cells/decidim/votings/content_blocks/landing_page/stats_cell.rb +15 -0
  41. data/app/cells/decidim/votings/content_blocks/landing_page/timeline_cell.rb +15 -0
  42. data/app/cells/decidim/votings/polling_officers/polling_officers_picker/polling_officers.erb +12 -0
  43. data/app/cells/decidim/votings/polling_officers/polling_officers_picker/show.erb +14 -0
  44. data/app/cells/decidim/votings/polling_officers/polling_officers_picker_cell.rb +73 -0
  45. data/app/cells/decidim/votings/voting_cell.rb +19 -0
  46. data/app/cells/decidim/votings/voting_m/data.erb +21 -0
  47. data/app/cells/decidim/votings/voting_m/footer.erb +5 -0
  48. data/app/cells/decidim/votings/voting_m_cell.rb +94 -0
  49. data/app/commands/decidim/elections/admin/add_user_as_trustee.rb +81 -0
  50. data/app/commands/decidim/elections/admin/create_election.rb +2 -1
  51. data/app/commands/decidim/elections/admin/end_vote.rb +63 -0
  52. data/app/commands/decidim/elections/admin/publish_results.rb +59 -0
  53. data/app/commands/decidim/elections/admin/remove_trustee_from_participatory_space.rb +37 -0
  54. data/app/commands/decidim/elections/admin/setup_election.rb +160 -0
  55. data/app/commands/decidim/elections/admin/start_key_ceremony.rb +63 -0
  56. data/app/commands/decidim/elections/admin/start_tally.rb +63 -0
  57. data/app/commands/decidim/elections/admin/start_vote.rb +63 -0
  58. data/app/commands/decidim/elections/admin/update_action_status.rb +47 -0
  59. data/app/commands/decidim/elections/admin/update_answer_selection.rb +41 -0
  60. data/app/commands/decidim/elections/admin/update_trustee_participatory_space.rb +40 -0
  61. data/app/commands/decidim/elections/trustee_zone/update_election_bulletin_board_status.rb +39 -0
  62. data/app/commands/decidim/elections/trustee_zone/update_trustee.rb +41 -0
  63. data/app/commands/decidim/elections/voter/cast_vote.rb +59 -0
  64. data/app/commands/decidim/elections/voter/update_vote_status.rb +70 -0
  65. data/app/commands/decidim/votings/admin/create_monitoring_committee_member.rb +99 -0
  66. data/app/commands/decidim/votings/admin/create_polling_officer.rb +99 -0
  67. data/app/commands/decidim/votings/admin/create_polling_station.rb +59 -0
  68. data/app/commands/decidim/votings/admin/create_voting.rb +59 -0
  69. data/app/commands/decidim/votings/admin/destroy_monitoring_committee_member.rb +51 -0
  70. data/app/commands/decidim/votings/admin/destroy_polling_officer.rb +52 -0
  71. data/app/commands/decidim/votings/admin/destroy_polling_station.rb +40 -0
  72. data/app/commands/decidim/votings/admin/manage_polling_station.rb +64 -0
  73. data/app/commands/decidim/votings/admin/publish_voting.rb +40 -0
  74. data/app/commands/decidim/votings/admin/unpublish_voting.rb +40 -0
  75. data/app/commands/decidim/votings/admin/update_polling_station.rb +50 -0
  76. data/app/commands/decidim/votings/admin/update_voting.rb +85 -0
  77. data/app/constraints/decidim/votings/current_component.rb +28 -0
  78. data/app/constraints/decidim/votings/current_voting.rb +43 -0
  79. data/app/controllers/concerns/decidim/elections/orderable.rb +2 -2
  80. data/app/controllers/concerns/decidim/polling_officers/admin/filterable.rb +58 -0
  81. data/app/controllers/concerns/decidim/polling_stations/admin/filterable.rb +57 -0
  82. data/app/controllers/concerns/decidim/votings/admin/filterable.rb +27 -0
  83. data/app/controllers/concerns/decidim/votings/admin/voting_admin.rb +48 -0
  84. data/app/controllers/concerns/decidim/votings/needs_voting.rb +44 -0
  85. data/app/controllers/concerns/decidim/votings/orderable.rb +32 -0
  86. data/app/controllers/decidim/elections/admin/answers_controller.rb +32 -0
  87. data/app/controllers/decidim/elections/admin/elections_controller.rb +2 -2
  88. data/app/controllers/decidim/elections/admin/feedback_forms_controller.rb +55 -0
  89. data/app/controllers/decidim/elections/admin/steps_controller.rb +96 -0
  90. data/app/controllers/decidim/elections/admin/trustees_participatory_spaces_controller.rb +89 -0
  91. data/app/controllers/decidim/elections/elections_controller.rb +5 -1
  92. data/app/controllers/decidim/elections/feedbacks_controller.rb +38 -0
  93. data/app/controllers/decidim/elections/trustee_zone/application_controller.rb +45 -0
  94. data/app/controllers/decidim/elections/trustee_zone/elections_controller.rb +35 -0
  95. data/app/controllers/decidim/elections/trustee_zone/trustees_controller.rb +36 -0
  96. data/app/controllers/decidim/elections/votes_controller.rb +54 -2
  97. data/app/controllers/decidim/votings/admin/application_controller.rb +26 -0
  98. data/app/controllers/decidim/votings/admin/component_permissions_controller.rb +13 -0
  99. data/app/controllers/decidim/votings/admin/components_controller.rb +15 -0
  100. data/app/controllers/decidim/votings/admin/monitoring_committee_members_controller.rb +62 -0
  101. data/app/controllers/decidim/votings/admin/polling_officers_controller.rb +66 -0
  102. data/app/controllers/decidim/votings/admin/polling_stations_controller.rb +92 -0
  103. data/app/controllers/decidim/votings/admin/voting_attachment_collections_controller.rb +22 -0
  104. data/app/controllers/decidim/votings/admin/voting_attachments_controller.rb +21 -0
  105. data/app/controllers/decidim/votings/admin/votings_controller.rb +124 -0
  106. data/app/controllers/decidim/votings/admin/votings_landing_page_content_blocks_controller.rb +44 -0
  107. data/app/controllers/decidim/votings/admin/votings_landing_page_controller.rb +46 -0
  108. data/app/controllers/decidim/votings/application_controller.rb +26 -0
  109. data/app/controllers/decidim/votings/polling_officer_zone/application_controller.rb +33 -0
  110. data/app/controllers/decidim/votings/polling_officer_zone/polling_officers_controller.rb +17 -0
  111. data/app/controllers/decidim/votings/polling_officer_zone/polling_stations_controller.rb +22 -0
  112. data/app/controllers/decidim/votings/votings_controller.rb +98 -0
  113. data/app/events/decidim/elections/trustees/notify_new_trustee_event.rb +28 -0
  114. data/app/events/decidim/elections/trustees/notify_trustee_new_election_event.rb +14 -0
  115. data/app/events/decidim/elections/votes/vote_accepted_event.rb +24 -0
  116. data/app/events/decidim/votings/polling_officers/polling_station_assigned_event.rb +44 -0
  117. data/app/forms/decidim/elections/admin/action_form.rb +34 -0
  118. data/app/forms/decidim/elections/admin/answer_form.rb +3 -2
  119. data/app/forms/decidim/elections/admin/election_form.rb +3 -2
  120. data/app/forms/decidim/elections/admin/setup_form.rb +79 -0
  121. data/app/forms/decidim/elections/admin/trustees_participatory_space_form.rb +22 -0
  122. data/app/forms/decidim/elections/admin/vote_period_form.rb +37 -0
  123. data/app/forms/decidim/elections/ballot/verify_vote_form.rb +29 -0
  124. data/app/forms/decidim/elections/trustee_zone/trustee_form.rb +26 -0
  125. data/app/forms/decidim/elections/voter/encrypted_vote_form.rb +49 -0
  126. data/app/forms/decidim/votings/admin/monitoring_committee_member_form.rb +27 -0
  127. data/app/forms/decidim/votings/admin/polling_officer_form.rb +27 -0
  128. data/app/forms/decidim/votings/admin/polling_station_form.rb +58 -0
  129. data/app/forms/decidim/votings/admin/voting_form.rb +71 -0
  130. data/app/helpers/decidim/elections/admin/answers_helper.rb +19 -0
  131. data/app/helpers/decidim/elections/admin/steps_helper.rb +23 -0
  132. data/app/helpers/decidim/elections/admin/trustees_participatory_spaces_helper.rb +31 -0
  133. data/app/helpers/decidim/elections/elections_helper.rb +29 -0
  134. data/app/helpers/decidim/votings/admin/polling_officers_picker_helper.rb +29 -0
  135. data/app/helpers/decidim/votings/votings_helper.rb +20 -0
  136. data/app/models/decidim/elections/action.rb +13 -0
  137. data/app/models/decidim/elections/election.rb +54 -3
  138. data/app/models/decidim/elections/elections_trustee.rb +11 -0
  139. data/app/models/decidim/elections/question.rb +19 -0
  140. data/app/models/decidim/elections/trustee.rb +26 -0
  141. data/app/models/decidim/elections/trustees_participatory_space.rb +13 -0
  142. data/app/models/decidim/elections/vote.rb +15 -0
  143. data/app/models/decidim/votings/monitoring_committee_member.rb +24 -0
  144. data/app/models/decidim/votings/polling_officer.rb +76 -0
  145. data/app/models/decidim/votings/polling_station.rb +64 -0
  146. data/app/models/decidim/votings/voting.rb +138 -0
  147. data/app/permissions/decidim/elections/admin/permissions.rb +50 -10
  148. data/app/permissions/decidim/elections/permissions.rb +20 -2
  149. data/app/permissions/decidim/elections/trustee_zone/permissions.rb +32 -0
  150. data/app/permissions/decidim/votings/admin/permissions.rb +127 -0
  151. data/app/permissions/decidim/votings/permissions.rb +40 -0
  152. data/app/permissions/decidim/votings/polling_officer_zone/permissions.rb +32 -0
  153. data/app/presenters/decidim/elections/admin_log/election_presenter.rb +1 -1
  154. data/app/presenters/decidim/elections/trustee_presenter.rb +24 -0
  155. data/app/presenters/decidim/votings/admin_log/voting_presenter.rb +45 -0
  156. data/app/presenters/decidim/votings/polling_station_presenter.rb +27 -0
  157. data/app/presenters/decidim/votings/voting_presenter.rb +36 -0
  158. data/app/queries/decidim/elections/admin/pending_actions.rb +20 -0
  159. data/app/queries/decidim/elections/admin/votes_for_statistics.rb +24 -0
  160. data/app/queries/decidim/elections/elections_finished_to_end.rb +19 -0
  161. data/app/queries/decidim/elections/elections_ready_to_start.rb +25 -0
  162. data/app/queries/decidim/elections/trustees/by_participatory_space.rb +24 -0
  163. data/app/queries/decidim/elections/trustees/by_participatory_space_trustee_ids.rb +24 -0
  164. data/app/queries/decidim/elections/votes/election_votes.rb +19 -0
  165. data/app/queries/decidim/elections/votes/pending_votes.rb +20 -0
  166. data/app/queries/decidim/elections/votes/user_election_last_vote.rb +26 -0
  167. data/app/queries/decidim/elections/votes/user_votes.rb +19 -0
  168. data/app/queries/decidim/votings/admin/admin_users.rb +39 -0
  169. data/app/queries/decidim/votings/admin/polling_officers_join_polling_stations.rb +33 -0
  170. data/app/queries/decidim/votings/admin/polling_officers_join_polling_stations_and_user.rb +34 -0
  171. data/app/queries/decidim/votings/admin/polling_officers_join_user.rb +32 -0
  172. data/app/queries/decidim/votings/organization_prioritized_votings.rb +21 -0
  173. data/app/queries/decidim/votings/organization_promoted_votings.rb +16 -0
  174. data/app/queries/decidim/votings/organization_published_votings.rb +19 -0
  175. data/app/queries/decidim/votings/organization_votings.rb +16 -0
  176. data/app/queries/decidim/votings/prioritized_votings.rb +13 -0
  177. data/app/queries/decidim/votings/published_votings.rb +12 -0
  178. data/app/services/decidim/votings/voting_search.rb +46 -0
  179. data/app/views/decidim/elections/admin/answers/index.html.erb +12 -0
  180. data/app/views/decidim/elections/admin/elections/index.html.erb +13 -1
  181. data/app/views/decidim/elections/admin/proposals_imports/new.html.erb +1 -1
  182. data/app/views/decidim/elections/admin/questions/index.html.erb +5 -1
  183. data/app/views/decidim/elections/admin/shared/_trustees_secondary_nav.html.erb +3 -0
  184. data/app/views/decidim/elections/admin/steps/_create_election.html.erb +38 -0
  185. data/app/views/decidim/elections/admin/steps/_created.html.erb +16 -0
  186. data/app/views/decidim/elections/admin/steps/_key_ceremony.html.erb +16 -0
  187. data/app/views/decidim/elections/admin/steps/_key_ceremony_ended.html.erb +15 -0
  188. data/app/views/decidim/elections/admin/steps/_tally.html.erb +17 -0
  189. data/app/views/decidim/elections/admin/steps/_tally_ended.html.erb +9 -0
  190. data/app/views/decidim/elections/admin/steps/_vote.html.erb +21 -0
  191. data/app/views/decidim/elections/admin/steps/_vote_ended.html.erb +15 -0
  192. data/app/views/decidim/elections/admin/steps/_vote_stats.html.erb +31 -0
  193. data/app/views/decidim/elections/admin/steps/index.html.erb +43 -0
  194. data/app/views/decidim/elections/admin/trustees_participatory_spaces/_form.html.erb +19 -0
  195. data/app/views/decidim/elections/admin/trustees_participatory_spaces/index.html.erb +64 -0
  196. data/app/views/decidim/elections/admin/trustees_participatory_spaces/new.html.erb +7 -0
  197. data/app/views/decidim/elections/elections/_filters_small_view.html.erb +1 -1
  198. data/app/views/decidim/elections/elections/_preview.html.erb +26 -0
  199. data/app/views/decidim/elections/elections/_results.html.erb +47 -0
  200. data/app/views/decidim/elections/elections/show.html.erb +43 -18
  201. data/app/views/decidim/elections/trustee_zone/elections/_backup_modal.html.erb +24 -0
  202. data/app/views/decidim/elections/trustee_zone/elections/_key_ceremony_steps.html.erb +44 -0
  203. data/app/views/decidim/elections/trustee_zone/elections/_restore_modal.html.erb +25 -0
  204. data/app/views/decidim/elections/trustee_zone/elections/_tally_steps.html.erb +43 -0
  205. data/app/views/decidim/elections/trustee_zone/elections/show.html.erb +38 -0
  206. data/app/views/decidim/elections/trustee_zone/elections/update.js.erb +5 -0
  207. data/app/views/decidim/elections/trustee_zone/trustees/show.html.erb +102 -0
  208. data/app/views/decidim/elections/votes/_election_votes_confirmed.html.erb +38 -17
  209. data/app/views/decidim/elections/votes/_election_votes_failed.html.erb +21 -0
  210. data/app/views/decidim/elections/votes/_election_votes_question.html.erb +4 -4
  211. data/app/views/decidim/elections/votes/cast_failed.js.erb +1 -0
  212. data/app/views/decidim/elections/votes/cast_success.js.erb +1 -0
  213. data/app/views/decidim/elections/votes/new.html.erb +41 -33
  214. data/app/views/decidim/elections/votes/verify.html.erb +78 -0
  215. data/app/views/decidim/votings/admin/monitoring_committee_members/_form.html.erb +27 -0
  216. data/app/views/decidim/votings/admin/monitoring_committee_members/index.html.erb +41 -0
  217. data/app/views/decidim/votings/admin/monitoring_committee_members/new.html.erb +7 -0
  218. data/app/views/decidim/votings/admin/polling_officers/_form.html.erb +27 -0
  219. data/app/views/decidim/votings/admin/polling_officers/index.html.erb +50 -0
  220. data/app/views/decidim/votings/admin/polling_officers/new.html.erb +7 -0
  221. data/app/views/decidim/votings/admin/polling_stations/_form.html.erb +40 -0
  222. data/app/views/decidim/votings/admin/polling_stations/edit.html.erb +7 -0
  223. data/app/views/decidim/votings/admin/polling_stations/index.html.erb +55 -0
  224. data/app/views/decidim/votings/admin/polling_stations/new.html.erb +7 -0
  225. data/app/views/decidim/votings/admin/votings/_form.html.erb +63 -0
  226. data/app/views/decidim/votings/admin/votings/edit.html.erb +31 -0
  227. data/app/views/decidim/votings/admin/votings/index.html.erb +87 -0
  228. data/app/views/decidim/votings/admin/votings/new.html.erb +13 -0
  229. data/app/views/decidim/votings/admin/votings/polling_officers_picker.html.erb +2 -0
  230. data/app/views/decidim/votings/polling_officer_zone/polling_officers/show.html.erb +42 -0
  231. data/app/views/decidim/votings/polling_officer_zone/polling_stations/show.html.erb +1 -0
  232. data/app/views/decidim/votings/votings/_count.html.erb +1 -0
  233. data/app/views/decidim/votings/votings/_filters.html.erb +25 -0
  234. data/app/views/decidim/votings/votings/_filters_small_view.html.erb +23 -0
  235. data/app/views/decidim/votings/votings/_promoted_voting.html.erb +27 -0
  236. data/app/views/decidim/votings/votings/_voting_details.html.erb +7 -0
  237. data/app/views/decidim/votings/votings/_votings.html.erb +25 -0
  238. data/app/views/decidim/votings/votings/index.html.erb +42 -0
  239. data/app/views/decidim/votings/votings/index.js.erb +10 -0
  240. data/app/views/decidim/votings/votings/show.html.erb +20 -0
  241. data/app/views/layouts/decidim/_voting_header.html.erb +16 -0
  242. data/app/views/layouts/decidim/admin/voting.html.erb +101 -0
  243. data/app/views/layouts/decidim/voting.html.erb +16 -0
  244. data/config/initializers/decidim_bulletin_board.rb +23 -0
  245. data/config/locales/ca.yml +636 -6
  246. data/config/locales/cs.yml +645 -7
  247. data/config/locales/de.yml +636 -6
  248. data/config/locales/el.yml +4 -2
  249. data/config/locales/en.yml +636 -6
  250. data/config/locales/es-MX.yml +637 -7
  251. data/config/locales/es-PY.yml +637 -7
  252. data/config/locales/es.yml +637 -7
  253. data/config/locales/fi-plain.yml +637 -7
  254. data/config/locales/fi.yml +638 -8
  255. data/config/locales/fr-CA.yml +423 -6
  256. data/config/locales/fr.yml +423 -6
  257. data/config/locales/gl.yml +85 -5
  258. data/config/locales/it.yml +98 -6
  259. data/config/locales/ja.yml +12 -6
  260. data/config/locales/lv.yml +4 -2
  261. data/config/locales/nl.yml +503 -6
  262. data/config/locales/no.yml +2 -5
  263. data/config/locales/pl.yml +655 -10
  264. data/config/locales/pt.yml +4 -6
  265. data/config/locales/ro-RO.yml +214 -6
  266. data/config/locales/sv.yml +258 -7
  267. data/config/locales/tr-TR.yml +111 -6
  268. data/config/locales/zh-CN.yml +4 -6
  269. data/db/migrate/20200915142713_add_questionnaire_to_existing_elections.rb +29 -0
  270. data/db/migrate/20200918153813_create_decidim_elections_trustees_participatory_spaces.rb +13 -0
  271. data/db/migrate/20200918153824_create_decidim_elections_elections_trustees.rb +10 -0
  272. data/db/migrate/20200918153835_create_decidim_elections_trustees.rb +12 -0
  273. data/db/migrate/20201026163334_add_blocked_at_and_bb_status_to_elections.rb +8 -0
  274. data/db/migrate/20201028090110_add_votes_to_decidim_elections_answers.rb +7 -0
  275. data/db/migrate/20201028135614_add_selected_to_decidim_elections_answers.rb +7 -0
  276. data/db/migrate/20201209110653_create_decidim_elections_votes.rb +14 -0
  277. data/db/migrate/20201216091123_add_name_to_trustees.rb +7 -0
  278. data/db/migrate/20210113113818_add_message_id_to_decidim_elections_votes.rb +7 -0
  279. data/db/migrate/20210113120115_create_decidim_elections_votings.rb +20 -0
  280. data/db/migrate/20210114100749_add_published_at_to_decidim_votings_votings.rb +7 -0
  281. data/db/migrate/20210114111850_add_user_to_decidim_elections_votes.rb +7 -0
  282. data/db/migrate/20210120164634_add_promoted_to_voting.rb +7 -0
  283. data/db/migrate/20210125124801_add_voting_type_to_voting_voting.rb +7 -0
  284. data/db/migrate/20210129124956_create_decidim_elections_actions.rb +14 -0
  285. data/db/migrate/20210204132111_add_votings_polling_stations.rb +19 -0
  286. data/db/migrate/20210208090441_add_polling_officers_to_votings.rb +12 -0
  287. data/db/migrate/20210210090738_add_votings_polling_station_references_to_votings_polling_officer.rb +8 -0
  288. data/db/migrate/20210216074707_add_monitoring_committee_member.rb +12 -0
  289. data/db/migrate/20210310120708_add_followable_counter_cache_to_votings.rb +16 -0
  290. data/db/seeds/city.jpeg +0 -0
  291. data/lib/decidim/api/election_answer_type.rb +23 -0
  292. data/lib/decidim/api/election_question_type.rb +22 -0
  293. data/lib/decidim/api/election_type.rb +27 -0
  294. data/lib/decidim/api/elections_type.rb +32 -0
  295. data/lib/decidim/api/trustee_type.rb +16 -0
  296. data/lib/decidim/api/voting_type.rb +20 -0
  297. data/lib/decidim/elections.rb +19 -2
  298. data/lib/decidim/elections/admin_engine.rb +42 -1
  299. data/lib/decidim/elections/answer_serializer.rb +48 -0
  300. data/lib/decidim/elections/api.rb +11 -0
  301. data/lib/decidim/elections/component.rb +367 -24
  302. data/lib/decidim/elections/engine.rb +8 -1
  303. data/lib/decidim/elections/test/factories.rb +201 -4
  304. data/lib/decidim/elections/trustee_zone.rb +10 -0
  305. data/lib/decidim/elections/trustee_zone_engine.rb +35 -0
  306. data/lib/decidim/elections/version.rb +1 -1
  307. data/lib/decidim/votings.rb +16 -0
  308. data/lib/decidim/votings/admin.rb +10 -0
  309. data/lib/decidim/votings/admin_engine.rb +71 -0
  310. data/lib/decidim/votings/api.rb +7 -0
  311. data/lib/decidim/votings/engine.rb +147 -0
  312. data/lib/decidim/votings/participatory_space.rb +92 -0
  313. data/lib/decidim/votings/polling_officer_zone.rb +10 -0
  314. data/lib/decidim/votings/polling_officer_zone_engine.rb +33 -0
  315. data/lib/decidim/votings/query_extensions.rb +43 -0
  316. data/lib/decidim/votings/test/capybara_polling_officers_picker.rb +49 -0
  317. data/lib/decidim/votings/test/factories.rb +83 -0
  318. data/lib/decidim/votings/voting_serializer.rb +54 -0
  319. data/lib/tasks/decidim_elections.rake +68 -5
  320. metadata +303 -19
  321. data/app/types/decidim/elections/election_answer_type.rb +0 -24
  322. data/app/types/decidim/elections/election_question_type.rb +0 -25
  323. data/app/types/decidim/elections/election_type.rb +0 -27
  324. data/app/types/decidim/elections/elections_type.rb +0 -32
  325. data/config/i18n-tasks.yml +0 -10
  326. data/lib/decidim/elections/bulletin_board_client.rb +0 -35
@@ -0,0 +1,7 @@
1
+ <div class="row section" id="voting-details">
2
+ <div class="columns medium-6 large-5 large-push-1">
3
+ <p class="lead"><%= decidim_sanitize translated_attribute(voting.description), strip_tags: true %></p>
4
+ </div>
5
+ <div class="columns medium-6 large-5 large-pull-1">
6
+ </div>
7
+ </div>
@@ -0,0 +1,25 @@
1
+ <div class="collection-sort-controls row small-up-1 medium-up-3 card-grid">
2
+ <div class="column">
3
+ <%= order_selector available_orders, i18n_scope: "decidim.votings.votings.orders" %>
4
+ </div>
5
+
6
+ <div class="column">
7
+ <%= render partial: "decidim/shared/results_per_page" %>
8
+ </div>
9
+ </div>
10
+
11
+ <% if paginated_votings.empty? %>
12
+ <%= cell("decidim/announcement", t(:no_votings, scope: "decidim.votings.votings.index")) %>
13
+ <% else %>
14
+ <% if only_finished_votings? %>
15
+ <%= cell("decidim/announcement", t(:only_finished, scope: "decidim.votings.votings.index"), callout_class: "warning") %>
16
+ <% end %>
17
+
18
+ <div class="row small-up-1 medium-up-2 card-grid">
19
+ <% paginated_votings.each do |voting| %>
20
+ <%= card_for voting %>
21
+ <% end %>
22
+ </div>
23
+
24
+ <%= decidim_paginate paginated_votings %>
25
+ <% end %>
@@ -0,0 +1,42 @@
1
+ <% add_decidim_meta_tags(title: t("votings.index.title", scope: "decidim.votings")) %>
2
+
3
+ <%
4
+ edit_link(
5
+ decidim_admin_votings.votings_path,
6
+ :read,
7
+ :voting
8
+ )
9
+ %>
10
+
11
+ <%= participatory_space_wrapper do %>
12
+ <% if promoted_votings.any? %>
13
+ <section id="highlighted-votings" class="row section">
14
+ <h1 class="section-heading"><%= t("votings.index.promoted_votings", scope: "layouts.decidim") %></h1>
15
+ <%= render partial: "promoted_voting", collection: promoted_votings, as: :promoted_voting %>
16
+ </section>
17
+ <% end %>
18
+
19
+ <div class="row columns">
20
+ <div class="title-action">
21
+ <div class="row collapse">
22
+ <h1 id="votings-count" class="title-action__title section-heading">
23
+ <%= render partial: "count", locals: { count: published_votings.count } %>
24
+ </h1>
25
+ </div>
26
+ </div>
27
+ </div>
28
+
29
+ <div class="row">
30
+ <div class="columns mediumlarge-4 large-3">
31
+ <%= render partial: "filters_small_view" %>
32
+ <div class="card card--secondary show-for-mediumlarge">
33
+ <%= render partial: "filters" %>
34
+ </div>
35
+ </div>
36
+ <div id="votings" class="columns mediumlarge-8 large-9">
37
+ <%= render partial: "votings" %>
38
+ </div>
39
+ </div>
40
+ <% end %>
41
+
42
+ <%= javascript_include_tag "decidim/filters" %>
@@ -0,0 +1,10 @@
1
+ var $votings = $('#votings');
2
+ var $votingsCount = $('#votings-count');
3
+ var $orderFilterInput = $('.order_filter');
4
+
5
+ $votings.html('<%= j(render partial: "votings") %>');
6
+ $votingsCount.html('<%= j(render partial: "count", locals: { count: paginated_votings.count }) %>');
7
+ $orderFilterInput.val('<%= order %>');
8
+
9
+ var $dropdownMenu = $('.dropdown.menu', $votings);
10
+ $dropdownMenu.foundation();
@@ -0,0 +1,20 @@
1
+ <%
2
+ edit_link(
3
+ resource_locator(current_voting).edit,
4
+ :update,
5
+ :voting,
6
+ voting: current_voting
7
+ )
8
+ %>
9
+
10
+ <div class="wrapper">
11
+ <div class="row column">
12
+ <% Decidim::ContentBlock.published.for_scope(:voting_landing_page, organization: current_organization).where(scoped_resource_id: current_voting.id).each do |content_block| %>
13
+ <% next unless content_block.manifest %>
14
+
15
+ <%= cell content_block.manifest.cell, content_block %>
16
+ <% end %>
17
+ </div>
18
+ </div>
19
+
20
+ <%= render partial: "voting_details", locals: { voting: current_voting } %>
@@ -0,0 +1,16 @@
1
+ <%= participatory_space_floating_help %>
2
+
3
+ <div class="votings-header votings-home-banner row column">
4
+ <div class="row column votings-header__main"
5
+ style="background-image:url(<%= current_voting.banner_image.url %>);">
6
+ <div class="votings-header__container row">
7
+ <div class="columns mediumlarge-9 votings-header__info">
8
+ <div>
9
+ <h1 class="heading2 text-highlight">
10
+ <%= translated_attribute(current_voting.title) %>
11
+ </h1>
12
+ </div>
13
+ </div>
14
+ </div>
15
+ </div>
16
+ </div>
@@ -0,0 +1,101 @@
1
+ <% content_for :secondary_nav do %>
2
+ <div class="secondary-nav secondary-nav--subnav">
3
+ <ul>
4
+ <%= public_page_link decidim_votings.voting_path(current_participatory_space) %>
5
+ <% if allowed_to? :update, :voting, voting: current_participatory_space %>
6
+ <li <% if is_active_link?(decidim_admin_votings.edit_voting_path(current_participatory_space)) %> class="is-active" <% end %>>
7
+ <%= aria_selected_link_to t("info", scope: "decidim.votings.admin.menu.votings_submenu"),
8
+ decidim_admin_votings.edit_voting_path(current_participatory_space) %>
9
+ </li>
10
+
11
+ <li <% if is_active_link?(decidim_admin_votings.voting_landing_page_path(current_participatory_space)) %> class="is-active" <% end %>>
12
+ <%= aria_selected_link_to t("landing_page", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.edit_voting_landing_page_path(current_participatory_space) %>
13
+ </li>
14
+ <% end %>
15
+
16
+ <% if allowed_to? :read, :component, voting: current_participatory_space %>
17
+ <li <% if is_active_link?(decidim_admin_votings.components_path(current_participatory_space)) %> class="is-active" <% end %>>
18
+ <%= aria_selected_link_to t("components", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.components_path(current_participatory_space) %>
19
+ <ul>
20
+ <% current_participatory_space.components.each do |component| %>
21
+ <% if component.manifest.admin_engine %>
22
+ <li <% if is_active_link?(manage_component_path(component)) %> class="is-active" <% end %>>
23
+ <%= link_to manage_component_path(component) do %>
24
+ <%= translated_attribute component.name %>
25
+ <% if component.primary_stat.present? %>
26
+ <span class="component-counter <%= "component-counter--off" if component.primary_stat.zero? %>">
27
+ <%= component.primary_stat %>
28
+ </span>
29
+ <% end %>
30
+ <% end %>
31
+ </li>
32
+ <% end %>
33
+ <% end %>
34
+ </ul>
35
+ </li>
36
+ <% end %>
37
+
38
+ <% if allowed_to?(:read, :attachment_collection) || allowed_to?(:read, :attachment) %>
39
+ <li>
40
+ <span class="secondary-nav__subtitle"><%= t("attachments", scope: "decidim.votings.admin.menu.votings_submenu") %></span>
41
+ <ul>
42
+ <% if allowed_to? :read, :attachment_collection %>
43
+ <li <% if is_active_link?(decidim_admin_votings.voting_attachment_collections_path(current_participatory_space)) %> class="is-active" <% end %>>
44
+ <%= aria_selected_link_to t("attachment_collections", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.voting_attachment_collections_path(current_participatory_space) %>
45
+ </li>
46
+ <% end %>
47
+ <% if allowed_to? :read, :attachment %>
48
+ <li <% if is_active_link?(decidim_admin_votings.voting_attachments_path(current_participatory_space)) %> class="is-active" <% end %>>
49
+ <%= aria_selected_link_to t("attachment_files", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.voting_attachments_path(current_participatory_space) %>
50
+ </li>
51
+ <% end %>
52
+ </ul>
53
+ </li>
54
+ <% end %>
55
+
56
+ <% if allowed_to?(:read, :polling_stations) %>
57
+ <% if !current_participatory_space.online_voting? %>
58
+ <li <% if is_active_link?(decidim_admin_votings.voting_polling_stations_path(current_participatory_space)) %> class="is-active" <% end %>>
59
+ <%= aria_selected_link_to t("polling_stations", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.voting_polling_stations_path(current_participatory_space) %>
60
+ </li>
61
+ <% end %>
62
+ <% end %>
63
+
64
+ <% if allowed_to?(:read, :polling_officers) %>
65
+ <% if !current_participatory_space.online_voting? %>
66
+ <li <% if is_active_link?(decidim_admin_votings.voting_polling_officers_path(current_participatory_space)) %> class="is-active" <% end %>>
67
+ <%= aria_selected_link_to t("polling_officers", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.voting_polling_officers_path(current_participatory_space) %>
68
+ </li>
69
+ <% end %>
70
+ <% end %>
71
+
72
+ <% if allowed_to?(:read, :monitoring_committee_members) %>
73
+ <% if !current_participatory_space.online_voting? %>
74
+ <li <% if is_active_link?(decidim_admin_votings.voting_monitoring_committee_members_path(current_participatory_space)) %> class="is-active" <% end %>>
75
+ <%= aria_selected_link_to t("monitoring_committee_members", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.voting_monitoring_committee_members_path(current_participatory_space) %>
76
+ </li>
77
+ <% end %>
78
+ <% end %>
79
+
80
+ <%= Decidim::Admin.view_hooks.render(:admin_secondary_nav, deep_dup) %>
81
+ </ul>
82
+ </div>
83
+ <% end %>
84
+
85
+ <%= render "layouts/decidim/admin/application" do %>
86
+ <div class="voting-title">
87
+ <div class="voting-title-content">
88
+ <%= link_to translated_attribute(current_participatory_space.title), decidim_votings.voting_path(current_participatory_space), target: "_blank" %>
89
+ </div>
90
+ </div>
91
+
92
+ <div class="voting-content">
93
+ <% if current_participatory_space.needs_elections? %>
94
+ <%= cell("decidim/announcement", t("votings.edit.add_election_component", scope: "decidim.votings.admin"), callout_class: "alert") %>
95
+ <% end %>
96
+ <% if current_participatory_space.polling_stations_with_missing_officers? %>
97
+ <%= cell("decidim/announcement", t("votings.edit.assign_missing_officers", scope: "decidim.votings.admin"), callout_class: "alert") %>
98
+ <% end %>
99
+ <%= yield %>
100
+ </div>
101
+ <% end %>
@@ -0,0 +1,16 @@
1
+ <%= render "layouts/decidim/application" do %>
2
+ <div class="wrapper">
3
+ <%= render partial: "layouts/decidim/voting_header" %>
4
+ <%= cell "decidim/translation_bar", current_organization %>
5
+ <%= yield %>
6
+ </div>
7
+ <% if content_for? :expanded %>
8
+ <div class="expanded">
9
+ <div class="wrapper wrapper--inner">
10
+ <div class="row">
11
+ <%= yield :expanded %>
12
+ </div>
13
+ </div>
14
+ </div>
15
+ <% end %>
16
+ <% end %>
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ return if Rails.application.secrets.bulletin_board.blank?
4
+
5
+ Decidim::BulletinBoard.configure do |config|
6
+ # Exposes a configuration option: the bulletin board server
7
+ config.server = Rails.application.secrets.bulletin_board[:server]
8
+
9
+ # Exposes a configuration option: the api key generated by the Bulletin Board for the Decidim instance
10
+ config.api_key = Rails.application.secrets.bulletin_board[:api_key]
11
+
12
+ # Exposes a configuration option: the scheme to be used for messages
13
+ config.scheme = Rails.application.secrets.bulletin_board[:scheme]
14
+
15
+ # Exposes a configuration option: the authority name String
16
+ config.authority_name = Rails.application.secrets.bulletin_board[:authority_name]
17
+
18
+ # Exposes a configuration option: number of trustees for an election
19
+ config.number_of_trustees = Rails.application.secrets.bulletin_board[:number_of_trustees]
20
+
21
+ # Exposes a configuration option: private key, that got generated by the Decidim instance
22
+ config.identification_private_key = Rails.application.secrets.bulletin_board[:identification_private_key]
23
+ end
@@ -16,6 +16,9 @@ ca:
16
16
  max_selections: Número màxim d'opcions
17
17
  min_selections: Cap de les anteriors
18
18
  title: Títol
19
+ voting:
20
+ end_time: Finalitza
21
+ start_time: Comença
19
22
  errors:
20
23
  models:
21
24
  answer:
@@ -26,7 +29,25 @@ ca:
26
29
  attributes:
27
30
  attachment:
28
31
  needs_to_be_reattached: És necessari tornar a adjuntar l'arxiu
32
+ trustee:
33
+ attributes:
34
+ name:
35
+ cant_be_changed: no es pot canviar
36
+ public_key:
37
+ cant_be_changed: no es pot canviar
29
38
  activerecord:
39
+ errors:
40
+ models:
41
+ decidim/votings/polling_officer:
42
+ attributes:
43
+ presided_polling_station:
44
+ president_and_manager: El gestor de mesa ja es president/gestor del punt de votació
45
+ voting:
46
+ different_organization: La votació ha d'estar a la mateixa organització que l'usuària
47
+ decidim/votings/polling_station:
48
+ attributes:
49
+ polling_station_president:
50
+ different_voting: El gestor de mesa ha d'estar a la mateixa votació que el punt de votació
30
51
  models:
31
52
  decidim/elections/answer:
32
53
  one: Resposta
@@ -37,7 +58,33 @@ ca:
37
58
  decidim/elections/question:
38
59
  one: Pregunta
39
60
  other: Preguntes
61
+ decidim/votings/polling_officer:
62
+ one: Gestor de mesa
63
+ other: Gestors de mesa
64
+ decidim/votings/polling_station:
65
+ one: Punt de votació
66
+ other: Punts de votació
67
+ decidim/votings/voting:
68
+ one: Votació
69
+ other: Votacions
40
70
  decidim:
71
+ admin:
72
+ filters:
73
+ officers_assigned_eq:
74
+ label: Gestors
75
+ values:
76
+ assigned: Assignat
77
+ unassigned: No assignat
78
+ role_eq:
79
+ label: Rol
80
+ values:
81
+ manager: Gestor
82
+ president: Presidenta
83
+ unassigned: Sense assignar
84
+ search_placeholder:
85
+ name_or_email_or_nickname_or_presided_station_title_or_managed_station_title_cont: Cerca a %{collection} per nom/adreça electrònica/àlies o punt de votació.
86
+ ? title_or_address_or_manager_name_or_manager_email_or_manager_nickname_or_president_name_or_president_email_or_president_nickname_cont
87
+ : Cercar %{collection} per títol, adreça o nom del gestor/email/àlies.
41
88
  components:
42
89
  elections:
43
90
  actions:
@@ -53,9 +100,11 @@ ca:
53
100
  confirm_destroy: N'estàs segura?
54
101
  destroy: Eliminar
55
102
  edit: Editar
56
- edit_answers: Edita les respostes
57
- edit_questions: Edita les preguntes
103
+ feedback: Feedback del votant
58
104
  import: Importar propostes com a respostes
105
+ manage_answers: Administrar respostes
106
+ manage_questions: Administrar preguntes
107
+ manage_steps: Administrar passos
59
108
  new: Nova %{name}
60
109
  preview: Previsualitzar
61
110
  publish: Publicar
@@ -78,6 +127,14 @@ ca:
78
127
  new:
79
128
  create: Crear resposta
80
129
  title: Nova resposta
130
+ select:
131
+ disable: Deseleccionar resposta
132
+ enable: Marcar resposta com seleccionada
133
+ invalid: S'ha produït un error en seleccionar aquesta resposta
134
+ success: Resposta seleccionada correctament
135
+ unselect:
136
+ invalid: Hi ha hagut un problema en deseleccionar aquesta resposta
137
+ success: Resposta deseleccionada correctament
81
138
  update:
82
139
  invalid: Hi ha hagut un problema en actualitzar aquesta resposta
83
140
  success: Resposta actualitzada amb èxit
@@ -104,6 +161,9 @@ ca:
104
161
  update:
105
162
  invalid: S'ha produït un error en actualitzar aquesta votació
106
163
  success: S'ha actualitzat la votació correctament
164
+ exports:
165
+ elections: Eleccions
166
+ feedback_form_answers: Feedback de les respostes
107
167
  models:
108
168
  answer:
109
169
  name: Resposta
@@ -111,6 +171,8 @@ ca:
111
171
  name: Votació
112
172
  question:
113
173
  name: Pregunta
174
+ trustee:
175
+ name: Garant
114
176
  proposals_imports:
115
177
  create:
116
178
  invalid: S'ha produït un error en importar les propostes a respostes
@@ -119,6 +181,7 @@ ca:
119
181
  create: Importa propostes a respostes
120
182
  no_components: No hi ha cap altre component de propostes en aquest espai participatiu per importar les propostes a respostes.
121
183
  select_component: Selecciona un component
184
+ title: Importar propostes
122
185
  questions:
123
186
  create:
124
187
  invalid: S'ha produït un error en crear aquesta pregunta
@@ -137,9 +200,107 @@ ca:
137
200
  update:
138
201
  invalid: S'ha produït un error en actualitzar aquesta pregunta
139
202
  success: La pregunta s'ha actualitzat correctament
203
+ steps:
204
+ create_election:
205
+ errors:
206
+ max_selections: Les preguntes no tenen un <strong>valor correcte per quantitat de respostes</strong>
207
+ minimum_answers: Les preguntes han de tenir <strong>almenys dues respostes</strong>.
208
+ minimum_questions: L'elecció <strong>ha de tenir almenys una pregunta</strong>.
209
+ published: L'elecció <strong>no està publicada</strong>.
210
+ time_before: L'hora d'inici és en <strong>menys de 3 hores</strong> abans de que comenci l'elecció.
211
+ trustees_number: L'espai de participació <strong>ha de tenir almenys %{number} garants amb clau pública</strong>.
212
+ invalid: S'ha produït un error en configurar aquesta elecció
213
+ no_trustees: No hi ha garants configurats per aquest espai de participació
214
+ not_used_trustee: "(no utilitzat)"
215
+ public_key:
216
+ 'false': no té una <strong>clau pública</strong>
217
+ 'true': té una <strong>clau pública</strong>
218
+ requirements:
219
+ max_selections: Totes les preguntes tenen un valor correcte per <strong>màxim de respostes</strong>.
220
+ minimum_answers: Cada pregunta té <strong>almenys 2 respostes</strong>.
221
+ minimum_questions: L'elecció té <strong>almenys 1 pregunta</strong>.
222
+ published: L'elecció està <strong>publicada</strong>.
223
+ time_before: La configuració s'està fent <strong>almenys %{hours} hores</strong> abans de que comenci l'elecció.
224
+ trustees_number: L'espai de participació té <strong>almenys %{number} garants amb clau pública</strong>.
225
+ submit: Configurar elecció
226
+ success: L'elecció s'ha enviat correctament al Bulletin Board
227
+ title: Configurar elecció
228
+ trustees: Garants de l'elecció
229
+ created:
230
+ invalid: S'ha produït un error en començar la cerimònia de claus
231
+ submit: Començar la cerimònia de claus
232
+ success: La sol·licitud per iniciar la cerimònia de claus s'ha enviat correctament al Bulletin Board
233
+ title: Elecció creada
234
+ trustees: Garants
235
+ key_ceremony:
236
+ title: Cerimònia de claus
237
+ trustees: Garants
238
+ key_ceremony_ended:
239
+ errors:
240
+ time_before: L'elecció està llesta per començar. Has d'esperar fins a %{hours} hores abans de l'hora d'inici (%{start_time}) per iniciar el període de votació.
241
+ invalid: S'ha produït un error en iniciar el període de votació
242
+ requirements:
243
+ time_before: L'elecció començarà aviat. Pots iniciar el període de votació manualment, o començarà automàticament abans de l'hora d'inici, a les %{start_time}.
244
+ submit: Iniciar període de votació
245
+ success: La sol·licitud per iniciar el període de votació s'ha enviat correctament al Bulletin Board
246
+ title: A punt per començar
247
+ processing: Processant...
248
+ results_published:
249
+ title: Resultats publicats
250
+ tally:
251
+ title: Procés de recompte
252
+ trustees: Garants
253
+ tally_ended:
254
+ submit: Publicar resultats
255
+ title: Resultats calculats
256
+ vote:
257
+ errors:
258
+ time_after: L'elecció està en curs encara. Has d'esperar fins l'hora de fi (%{end_time}) per finalitzar el període de votació.
259
+ invalid: S'ha produït un error en finalitzar el període de votació
260
+ requirements:
261
+ time_after: L'elecció s'ha acabat. Pots finalitzar el període de votació manualment, o finalitzarà automàticament en breus instants.
262
+ submit: Finalitzar període de votació
263
+ success: La sol·licitud per finalitzar el període de votació s'ha enviat correctament al Bulletin Board
264
+ title: Període de votació
265
+ vote_ended:
266
+ invalid: S'ha produït un error en començar el recompte
267
+ submit: Començar recompte
268
+ success: La sol·licitud per iniciar el recompte s'ha enviat correctament al Bulletin Board
269
+ title: Període de votació finalitzat
270
+ vote_stats:
271
+ no_vote_statistics_yet: Les estadístiques de votacions encara no estan disponibles
272
+ title: Estadístiques de les votacions
273
+ voters: Votants
274
+ votes: Vots
275
+ trustees_participatory_spaces:
276
+ actions:
277
+ disable: Desactivar
278
+ enable: Considerar
279
+ create:
280
+ exists: El garant existeix per aquest espai participatiu
281
+ invalid: S'ha produït un error en crear un nou garant
282
+ success: Garant creat correctament
283
+ delete:
284
+ invalid: S'ha produït un error en creant aquest garant
285
+ success: Garant eliminat correctament
286
+ form:
287
+ select_user: Selecciona l'usuari
288
+ index:
289
+ title: Garants
290
+ new:
291
+ create: Crear garant
292
+ title: Nou garant
293
+ update:
294
+ invalid: S'ha produït un error en actualitzar el garant %{trustee}
295
+ success: El garant %{trustee} s'ha actualitzat correctament
140
296
  admin_log:
141
297
  election:
298
+ end_vote: "%{user_name} ha finalittzat el període de votació per l'elecció %{resource_name} al Bulletin Board"
142
299
  publish: "%{user_name} ha publicat la votació %{resource_name}"
300
+ setup: "%{user_name} ha creat l'elecció %{resource_name} al Bulletin Board"
301
+ start_key_ceremony: "%{user_name} va començar la cerimònia de claus per l'elecció %{resource_name} al Bulletin Board"
302
+ start_tally: "%{user_name} ha iniciat el recompte per a l'elecció %{resource_name} al Bulletin Board"
303
+ start_vote: "%{user_name} ha iniciat el període de votació per a l'elecció %{resource_name} al Bulletin Board"
143
304
  unpublish: "%{user_name} ha despublicat la votació %{resource_name}"
144
305
  election_m:
145
306
  badge_name:
@@ -172,14 +333,41 @@ ca:
172
333
  filter: Filtrar
173
334
  filter_by: Filtra per
174
335
  unfold: Desplegar
336
+ preview:
337
+ available_answers: Respostes disponibles
338
+ description: Aquestes són les preguntes que trobaràs al procés de votació
339
+ title: Preguntes de l'elecció
340
+ results:
341
+ description: Aquests són els resultats de la votació, per a cada pregunta
342
+ selected: Seleccionat
343
+ title: Resultats de l'elecció
344
+ votes:
345
+ one: "%{count} vot"
346
+ other: "%{count} vots"
347
+ zero: "%{count} vots"
175
348
  show:
176
- back: Totes les votacions
349
+ action-button:
350
+ change-vote: Canvia el teu vot
351
+ vote: Començar a votar
352
+ vote-again: Votar de nou
353
+ back: Eleccions disponibles
354
+ callout:
355
+ already-voted: Ja has votat en aquesta elecció. Pots canviar el teu vot o verificar-lo.
356
+ vote-rejected: No ha estat possible verificar el teu vot. Si us plau, fes-ho de nou.
177
357
  preview: Previsualitzar
178
- vote: Votar
358
+ verify:
359
+ already-voted: Ja has votat?
360
+ verify-here: Comprova el teu vot aquí.
361
+ will-verify: Podràs verificar el teu vot una vegada comenci l'elecció.
179
362
  voting_period_status:
180
363
  finished: La votació va començar el %{start_time} i va acabar el %{end_time}
181
- ongoing: La votació finalitza el %{end_time}
364
+ ongoing: 'Votació activa fins: %{end_time}'
182
365
  upcoming: La votació comença el %{start_time}
366
+ feedback:
367
+ answer:
368
+ invalid: S'ha produït un error en enviar els teus comentaris.
369
+ spam_detected: Hi ha hagut un problema contestant el formulari. Potser has anat massa ràpid, ho pots tornar a intentar?
370
+ success: Comentaris enviats amb èxit.
183
371
  models:
184
372
  answer:
185
373
  fields:
@@ -187,6 +375,7 @@ ca:
187
375
  title: Títol
188
376
  election:
189
377
  fields:
378
+ bb_status: Estat del tBulletin Board
190
379
  end_time: Finalitza el
191
380
  start_time: Comença el
192
381
  title: Títol
@@ -195,10 +384,114 @@ ca:
195
384
  answers: Respostes
196
385
  max_selections: Número màxim d'elements a seleccionar
197
386
  title: Títol
387
+ trustees_participatory_space:
388
+ fields:
389
+ considered: considerat
390
+ email: Correu electrònic
391
+ inactive: inactiu
392
+ name: Nom
393
+ notification: Notificació enviada a les
394
+ public_key: Clau pública
395
+ status: Estat
198
396
  orders:
199
397
  label: Ordena votacions per
200
398
  older: Més antiga
201
399
  recent: Recent
400
+ trustee_zone:
401
+ elections:
402
+ backup_modal:
403
+ description: Aquesta elecció s'està creant al Bulletin Board. És molt important que cada garant que hi participa creï una còpia de seguretat d'aquestes claus i les guardi en un lloc segur. Després d'això, el procés continuarà.
404
+ download_election_keys: Descarregar claus
405
+ download_icon: Icona que indica una acció de descàrrega
406
+ title: Còpia de seguretat de les claus per l'elecció %{election}
407
+ key_ceremony_steps:
408
+ back: Tornar
409
+ description: Aquesta elecció s'està creant al Bulletin Board. Per completar aquest procés, es necessita la teva participació com a garant.
410
+ keys:
411
+ create_election: Generació de claus
412
+ key_ceremony:
413
+ joint_election_key: Generació conjunta de claus
414
+ step_1: Publicant claus
415
+ list:
416
+ status: Estat
417
+ task: Tasca
418
+ process_warning: Un cop ha començat el procés, no hauries de sortir d'aquesta pàgina fins que aquest acabi. Trigarà varis minuts, ja que tots els garants han de connectar-se al mateix temps per completar-lo.
419
+ start: Començar
420
+ start_icon: Icona que indica un botó d'inici per a la generació de claus d'una elecció
421
+ status:
422
+ completed: Completada
423
+ pending: Pendent
424
+ processing: Processant
425
+ title: Crear claus per l'elecció %{election}
426
+ restore_modal:
427
+ description: El Bulletin Board té informació teva com a garant d'aquesta elecció. Per continuar amb el procés, primer puja l'arxiu generat com a còpia de seguretat durant la sessió anterior.
428
+ title: Restaurar claus per l'elecció %{election}
429
+ upload_election_keys: Pujar claus de l'elecció
430
+ upload_icon: Icona que indica una acció de descàrrega
431
+ tally_steps:
432
+ back: Tornar
433
+ description: Els resultats d'aquesta elecció s'estan computant al Bulletin Board. Per completar aquest procés, és necessària la teva participació com a garant.
434
+ keys:
435
+ end_tally: Recompte finalitzat
436
+ tally:
437
+ cast: Enviament del recompte
438
+ share: Compartició del recompte
439
+ list:
440
+ status: Estat
441
+ task: Tasca
442
+ process_warning: Un cop ha començat el procés, no hauries de sortir d'aquesta pàgina fins que aquest acabi. Trigarà varis minuts, ja que tots els garants han de connectar-se al mateix temps per completar-lo.
443
+ start: Començar
444
+ start_icon: Icona que indica un botó d'inici per començar la generació de claus d'una elecció
445
+ status:
446
+ completed: Completada
447
+ pending: Pendent
448
+ processing: Processant
449
+ title: Recompte per %{election}
450
+ update:
451
+ error: L'estat de l'elecció no s'havia actualitzat.
452
+ success: 'L''estat de l''elecció és: %{status}'
453
+ menu:
454
+ trustee_zone: Zona de garants
455
+ no_bulletin_board:
456
+ body: Es requereix disposar d'un Bulletin Board configurat per a aquesta secció. Contacta amb l'administradora per més detalls.
457
+ title: Ho sentim, el Bulletin Board no s'ha configurat encara.
458
+ trustees:
459
+ show:
460
+ elections:
461
+ list:
462
+ action_required:
463
+ 'false': 'No'
464
+ name: Acció requerida?
465
+ 'true': Realitzar acció
466
+ bb_status: Estat
467
+ election: Elecció
468
+ voting_period: Període de votació
469
+ no_elections: No hi ha eleccions en les que actuïs com a garant.
470
+ title: Eleccions
471
+ identification_keys:
472
+ cancel: Cancel·lar
473
+ generate: Generar claus d'identificació
474
+ generate_error: Hi ha hagut un error generant les claus d'identificació.
475
+ generate_legend: Has de generar un parell de claus d'identificació per participar en les eleccions com a garant.
476
+ generate_legend_1: Després de prémer el botó has de descarregar l'arxiu amb les claus d'identificació generades.
477
+ generate_legend_2: Copia l'arxiu descarregat a un dispositiu USB net
478
+ generate_legend_3: Assegura't de que el teu equip no tingui una còpia de l'arxiu (per exemple, comprova les carpetes de Baixades i Escriptori).
479
+ generate_legend_4: Fes una altra copia de l'arxiu en un dispositiu extern diferent i guarda'l a un lloc molt segur.
480
+ submit: Enviar
481
+ submit_legend: Després de seguir tots els passos explicats anteriorment, completa el procés enviant la clau d'identificació pública al servidor de Decidim.
482
+ submit_title: Enviar la clau d'identificació pública
483
+ title: Claus d'identificació del garant
484
+ upload: Puja les teves claus d'identificació
485
+ upload_error:
486
+ invalid_format: L'arxiu pujat no conté cap clau d'identificació.
487
+ invalid_key: Les claus d'identificació a l'arxiu pujat no es poden carregar.
488
+ invalid_public_key: Les claus d'identificació a l'arxiu pujat no coincideixen amb la clau d'identificació pública emmagatzemada per Decidim.
489
+ upload_legend: Decidim té les teves claus públiques d'identificació, però el teu navegador encara no les té. Necessites importar l'arxiu amb les teves claus d'identificació al teu ordinador des de la còpia de seguretat que vas crear després de generar-les.
490
+ not_supported_browser_description: Sembla que estàs usant un navegador que no pot ser utilitzat per a actuar com a garant. Assegura't que estàs usant la versió més recent del teu navegador, o intenta usar qualsevol dels navegadors més populars per a poder completar les teves tasques com a garant.
491
+ not_supported_browser_title: Actualitza el navegador per a actuar com a garant
492
+ trustee_role_description: Se t'ha assignat com a garant en algunes de les eleccions celebrades en aquesta plataforma.
493
+ update:
494
+ success: La teva clau pública d'identificació va ser guardada amb èxit.
202
495
  votes:
203
496
  confirm:
204
497
  answer: Resposta
@@ -211,15 +504,20 @@ ca:
211
504
  question: Preguntes %{count}
212
505
  confirmed:
213
506
  back: Tornar a les votacions
507
+ error: Ho sentim, hi ha hagut un error al guardar el teu vot. Si us plau, vota de nou.
214
508
  experience: Com valores l'experiència?
215
509
  feedback: Dona'ns la teva opinió
216
510
  header: Vot confirmat
217
511
  lead: El teu vot ha estat emès!
218
512
  text: 'Pots comprovar que el teu vot s''ha afegit correctament a l''urna amb el següent identificador: <strong class="evote__poll-id">%{e_vote_poll_id}</strong>'
219
- verify_text: Per comprovar-ho, copia l'identificador i enganxa'l a la <a href="evote-verify">pàgina de verificació de vot</a>
513
+ verify_link: Per comprovar-ho, copia l'identificador i enganxa'l a la <a href="%{link}">pàgina de verificació de vot</a>
220
514
  encrypting:
221
515
  header: Codificant el vot...
222
516
  text: El teu vot s'està xifrant per assegurar-te que l'emets de forma anònima.
517
+ failed:
518
+ header: Vot fallit
519
+ lead: El teu vot no s'ha enviat!
520
+ text: Alguna cosa ha anat malament. Si us plau, torna-ho a provar.
223
521
  header:
224
522
  confirm: Confirma el teu vot
225
523
  confirmed: Vot confirmat
@@ -236,6 +534,28 @@ ca:
236
534
  preview_alert: Aquesta és una vista prèvia de la cabina de votació.
237
535
  question_steps: Pregunta %{current_step} de %{total_steps}
238
536
  selections: "Seleccionada <br> %{selected} de %{max_selections}"
537
+ processing:
538
+ header: Processant...
539
+ text: El teu vot s'ha rebut i s'està processant. Si us plau espera.
540
+ update:
541
+ error: S'ha produït un error en actualitzar l'estat del vot
542
+ success: L'estat del vot s'ha actualitzat correctament
543
+ verify:
544
+ content:
545
+ heading: Verifica el teu vot
546
+ info: Aquest verificador comprova que el teu vot, identificat amb una cadena de text encriptada, s'ha emès correctament i està dins de l'urna.
547
+ error:
548
+ header: Vot no localitzat!
549
+ info: El codi del vot no s'ha trobat a l'urna %{link}, intenta-ho de nou.
550
+ form:
551
+ back: Tornar a Decidim
552
+ submit: Comprovar
553
+ vote_identifier: 'Codi identificador:'
554
+ header:
555
+ title: Verifica el teu vot
556
+ success:
557
+ header: Vot localitzat!
558
+ info: El teu vot encriptat es troba a l'urna %{link}
239
559
  voting_step:
240
560
  back: Enrere
241
561
  continue: Següent
@@ -249,6 +569,38 @@ ca:
249
569
  email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai %{participatory_space_title}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
250
570
  email_subject: La votació %{resource_title} ja està activa a %{participatory_space_title}.
251
571
  notification_title: La votació <a href="%{resource_path}">%{resource_title}</a> a %{participatory_space_title} ja està activa.
572
+ trustees:
573
+ new_election:
574
+ email_intro: Has estat afegit com a garant de l'elecció %{resource_title}.
575
+ email_outro: Has rebut aquesta notificació perquè t'han afegit com a garant de l'elecció %{resource_title}.
576
+ email_subject: Ets un garant de l'elecció %{resource_title}..
577
+ notification_title: Ets un garant de l'elecció <a href="%{resource_path}">%{resource_title}</a>.
578
+ new_trustee:
579
+ email_intro: Una administradora t'ha afegit com a garant de %{resource_name}. Hauries de crear la teva clau pública a la teva <a href='%{trustee_zone_url}'>zona de garants</a>
580
+ email_outro: Has rebut aquesta notificació perquè t'han afegit com a garant de %{resource_name}.
581
+ email_subject: Ets garant de %{resource_name}.
582
+ notification_title: Ets garant de <a href="%{participatory_space_url}">%{resource_name}</a>.
583
+ votes:
584
+ accepted_votes:
585
+ email_intro: 'El teu vot s''ha acceptat! Utilitzant el comprovant de vot: %{encrypted_vote_hash}, pots verificar-lo <a href="%{verify_url}">aquí</a>.'
586
+ email_outro: Has rebut aquesta notificació perquè has votat a l'elecció %{resource_name}.
587
+ email_subject: El teu vot a %{resource_name} s'ha acceptat.
588
+ notification_title: 'El teu vot s''ha acceptat. Verifica''l <a href="%{verify_url}">aquí</a> utilitzant el comprovant de vot: %{encrypted_vote_hash}'
589
+ votings:
590
+ polling_officers:
591
+ polling_station_assigned:
592
+ email_intro: T'han assignat com %{role} del punt de votació %{polling_station_name} a <a href="%{resource_url}">%{resource_title}</a>. Pots gestionar el punt de votació accedint a la <a href="%{polling_officer_zone_url}">Zona de gestors de mesa</a>.
593
+ email_outro: Has rebut aquesta notificació perquè t'han assignat com %{role} de %{polling_station_name}.
594
+ email_subject: Ets %{role} del punt de votació %{polling_station_name}.
595
+ notification_title: Ets %{role} del punt de votació %{polling_station_name} a la votació <a href="%{resource_path}">%{resource_title}</a>.
596
+ help:
597
+ participatory_spaces:
598
+ votings:
599
+ contextual: "<p>Una <strong>votació</strong> és un espai que us permet fer una pregunta clara al conjunt de membres d'una organització, fer una crida a participar en la votació, generar i ordenar el debat a favor o en contra d'una resposta. Quan arriba la data de la votació, podeu votar i publicar-ne el resultat.</p> <p>Les votacions poden ser de pràcticament qualsevol aspecte que afecti una organització. Alguns exemples serien: canviar el nom o el logotip de l'organització oferint diverses alternatives, decidir si passar a formar part d'una organització més gran o no, validar o refusar un nou pla estratègic o el resultat d'un grup de treball, o definir si els càrrecs haurien de tenir una durada màxima d'un, dos o tres mandats.</p>"
600
+ page: "<p>Una <strong>votació</strong> és un espai que us permet fer una pregunta clara al conjunt de membres d'una organització, fer una crida a participar en la votació, generar i ordenar el debat a favor o en contra d'una resposta. Quan arriba la data de la votació, podeu votar i publicar-ne el resultat.</p> <p>Les votacions poden ser de pràcticament qualsevol aspecte que afecti una organització. Alguns exemples serien: canviar el nom o el logotip de l'organització oferint diverses alternatives, decidir si passar a formar part d'una organització més gran o no, validar o refusar un nou pla estratègic o el resultat d'un grup de treball, o definir si els càrrecs haurien de tenir una durada màxima d'un, dos o tres mandats.</p>"
601
+ title: Què són les votacions?
602
+ menu:
603
+ votings: Votacions
252
604
  pages:
253
605
  home:
254
606
  statistics:
@@ -256,7 +608,285 @@ ca:
256
608
  participatory_processes:
257
609
  statistics:
258
610
  elections_count: Votacions
611
+ votings:
612
+ admin:
613
+ content_blocks:
614
+ highlighted_votings:
615
+ max_results: Quantitat màxima d'elements per mostrar
616
+ landing_page:
617
+ attachments_and_folders:
618
+ name: Arxius i carpetes de la votació
619
+ description:
620
+ name: Descripció de la votació
621
+ elections:
622
+ name: Eleccions de la votació
623
+ header:
624
+ name: Capçalera de la votació
625
+ html_block_1:
626
+ name: Bloc html 1 de votació
627
+ html_block_2:
628
+ name: Bloc html 2 de votació
629
+ html_block_3:
630
+ name: Bloc html 3 de votació
631
+ metrics:
632
+ name: Mètriques de la votació
633
+ polling_stations:
634
+ name: Punts de votació
635
+ stats:
636
+ name: Estadístiques de la votació
637
+ timeline:
638
+ name: Calendari de la votació
639
+ index:
640
+ not_published: Despublicada
641
+ published: Publicada
642
+ landing_page:
643
+ content_blocks:
644
+ edit:
645
+ update: Actualitzar
646
+ edit:
647
+ active_content_blocks: Blocs de contingut actius
648
+ inactive_content_blocks: Blocs de contingut inactius
649
+ menu:
650
+ votings: Votacions
651
+ votings_submenu:
652
+ attachment_collections: Carpetes
653
+ attachment_files: Arxius
654
+ attachments: Adjunts
655
+ components: Components
656
+ info: Informació
657
+ landing_page: Pàgina d'inici
658
+ monitoring_committee_members: Comitè de seguiment
659
+ polling_officers: Gestors de mesa
660
+ polling_stations: Punts de votació
661
+ models:
662
+ monitoring_committee_member:
663
+ fields:
664
+ email: Correu electrònic
665
+ name: Nom
666
+ name: Membre del comitè de seguiment
667
+ polling_officer:
668
+ fields:
669
+ email: Correu electrònic
670
+ name: Nom
671
+ polling_station: Punt de votació (rol)
672
+ name: Gestor de mesa
673
+ polling_station:
674
+ fields:
675
+ address: Adreça
676
+ polling_station_managers: Administradors
677
+ polling_station_president: President
678
+ title: Títol
679
+ name: Punt de votació
680
+ voting:
681
+ fields:
682
+ created_at: Creada el
683
+ promoted: Destacada
684
+ published: Publicada
685
+ title: Títol
686
+ monitoring_committee_members:
687
+ create:
688
+ invalid: Hi ha hagut un problema en crear aquest membre del comitè de seguiment
689
+ success: Membre del comitè de seguiment creat amb èxit
690
+ destroy:
691
+ invalid: Hi ha hagut un problema en eliminar aquest membre del comitè de seguiment
692
+ success: Membre del comitè de seguiment eliminat amb èxit
693
+ form:
694
+ existing_user: Participant existent
695
+ non_user: Convidar una nova participant
696
+ select_user: Cercar per correu electrònic, nom o àlies
697
+ user_type: Tipus de participant
698
+ index:
699
+ title: Comitè de seguiment
700
+ new:
701
+ create: Crear
702
+ title: Crear membre del comitè de seguiment
703
+ polling_officers:
704
+ create:
705
+ invalid: S'ha produït un error en crear aquest gestor de mesa
706
+ success: Gestor de mesa creat correctament
707
+ destroy:
708
+ invalid: S'ha produït un error en eliminar aquest gestor de mesa
709
+ success: Gestor de mesa creat correctament
710
+ form:
711
+ existing_user: Participant existent
712
+ non_user: Convidar una nova participant
713
+ select_user: Cercar per correu electrònic, nom o àlies
714
+ user_type: Tipus de participant
715
+ index:
716
+ role_manager: administrador
717
+ role_president: president
718
+ title: Gestors de mesa
719
+ new:
720
+ create: Crear
721
+ title: Crear gestor de mesa
722
+ polling_officers_picker:
723
+ choose_polling_officers: Escollir gestors de mesa
724
+ close: Tancar
725
+ more_polling_officers: Hi ha %{number} gestors de mesa més. Refina la teva cerca per localitzar-los.
726
+ no_polling_officers: Cap gestor de mesa coincideix amb els teus criteris de cerca o no n'hi ha cap.
727
+ polling_stations:
728
+ create:
729
+ invalid: S'ha produït un error en crear aquest punt de votació
730
+ success: Punt de votació creat correctament
731
+ destroy:
732
+ invalid: S'ha produït un error en eliminar aquest punt de votació
733
+ success: Punt de votació eliminat correctament
734
+ edit:
735
+ title: Editar punt de votació
736
+ update: Actualitzar punt de votació
737
+ form:
738
+ address_help: 'Adreça: que farà servir per Geocoder per a trobar la localització'
739
+ location_help: 'Ubicació: missatge dirigit als votants amb el lloc exacte del punt de votació'
740
+ location_hints_help: 'Detalls d''ubicació: informació addicional. Exemple: la planta de l''edifici on està situat el punt de votació.'
741
+ polling_station_managers_help: 'Gestors de mesa: els tècnics que actuaran com a responsables del punt de votació. Assegura''t que han estat creats en Gestors de mesa i que no estan ja assignats a un altre punt de votació'
742
+ polling_station_president_help: 'Presidents de mesa: els tècnics que actuaran com a presidents del punt de votació. Assegura''t que han estat creats en Gestors de mesa i que no estan ja assignats a un altre punt de votació'
743
+ select_president: Selecciona un gestor com a president del punt de votació
744
+ index:
745
+ title: Punts de votació
746
+ new:
747
+ create: Crear
748
+ title: Crear punt de votació
749
+ update:
750
+ invalid: S'ha produït un error en actualitzar aquest punt de votació
751
+ success: Punt de votació actualitzat correctament
752
+ titles:
753
+ votings: Votacions
754
+ votings:
755
+ actions:
756
+ confirm_destroy: N'estàs segura?
757
+ destroy: Eliminar
758
+ new_voting: Nou espai de votació
759
+ publish: Publicar
760
+ unpublish: Despublicar
761
+ create:
762
+ invalid: S'ha produït un error en crear aquesta votació
763
+ success: Votació creada correctament
764
+ edit:
765
+ add_election_component: No tens cap elecció configurada per a aquesta votació. Si us plau, afegeix-la a la secció de components
766
+ assign_missing_officers: Hi ha punts de votació sense president i/o gestors. Si us plau, assigna'ls des de la secció de punts de votació
767
+ update: Actualitzar
768
+ form:
769
+ select_a_voting_type: Si us plau selecciona un tipus de votació
770
+ slug_help: 'Els noms curts d''URL s''utilitzen per generar els URL que apunten a aquest procés. Només accepta lletres, números i guions, i ha de començar amb una lletra. Exemple: %{url}'
771
+ title: Títol
772
+ voting_type:
773
+ hybrid: Híbrida
774
+ in_person: Presencial
775
+ online: En línia
776
+ new:
777
+ create: Crear
778
+ title: Nova votació
779
+ publish:
780
+ success: La votació s'ha publicat correctament
781
+ unpublish:
782
+ success: La votació s'ha despublicat correctament
783
+ update:
784
+ invalid: S'ha produït un error en actualitzar aquesta votació
785
+ success: La votació s'ha actualitzat correctament
786
+ admin_log:
787
+ voting:
788
+ create: "%{user_name} ha creat la votació %{resource_name}"
789
+ publish: "%{user_name} ha publicat la votació %{resource_name}"
790
+ unpublish: "%{user_name} ha despublicat la votació %{resource_name}"
791
+ content_blocks:
792
+ highlighted_votings:
793
+ name: Votacions destacades
794
+ monitoring_committee_members:
795
+ actions:
796
+ confirm_destroy: N'estàs segura?
797
+ destroy: Esborrar
798
+ new: Nou membre
799
+ title: Accions
800
+ pages:
801
+ home:
802
+ highlighted_votings:
803
+ active_votings: Votacions actives
804
+ see_all_votings: Veure totes les votacions
805
+ votings_button_title: Enllaç a la pàgina de Votacions que les mostra totes
806
+ polling_officer_zone:
807
+ menu:
808
+ polling_officer_zone: Zona del gestor de mesa
809
+ polling_officers:
810
+ show:
811
+ actions:
812
+ count_votes: Comptar els vots a les urnes
813
+ identify_person: Identificar i verificar una persona
814
+ polling_officer_role_description: Has estat assignat per a actuar com a gestor de mesa (President o Administrador) en algunes de les eleccions celebrades en aquesta plataforma.
815
+ polling_stations:
816
+ list:
817
+ actions: Accions
818
+ address: Adreça
819
+ name: Nom
820
+ role: El teu rol
821
+ voting: Votacions
822
+ no_polling_stations: Encara no has estat assignat a cap punt de votació.
823
+ title: Punts de votació
824
+ polling_officers:
825
+ actions:
826
+ confirm_destroy: N'estàs segura?
827
+ destroy: Esborrar
828
+ new: Nou
829
+ title: Accions
830
+ roles:
831
+ manager: Administrador
832
+ president: President
833
+ unassigned: Sense assignar
834
+ polling_stations:
835
+ actions:
836
+ confirm_destroy: N'estàs segura?
837
+ destroy: Esborrar
838
+ edit: Editar
839
+ new: Nou
840
+ title: Accions
841
+ votings:
842
+ count:
843
+ title:
844
+ one: "%{count} votació"
845
+ other: "%{count} votacions"
846
+ filters:
847
+ active: Actives
848
+ all: Todas
849
+ finished: Finalizades
850
+ search: Cercar
851
+ state: Estat
852
+ upcoming: Properes
853
+ filters_small_view:
854
+ close_modal: Tancar finestra
855
+ filter: Filtrar
856
+ filter_by: Filtrar per
857
+ unfold: Desplegar
858
+ index:
859
+ no_votings: Cap votació s'ajusta als vostres criteris de cerca.
860
+ only_finished: Actualment no hi ha votacions programades, però podeu trobar les votacions ja finalitzades.
861
+ title: Votacions
862
+ orders:
863
+ label: 'Ordenar votacions per:'
864
+ random: Aleatori
865
+ recent: Més recents
866
+ show:
867
+ dates: Dates
868
+ votings_m:
869
+ badge_name:
870
+ finished: Finalizades
871
+ ongoing: En curs
872
+ upcoming: Properes
873
+ footer_button_text:
874
+ participate: Participa
875
+ view: Veure
876
+ vote: Vota
877
+ unspecified: Sense especificar
878
+ voting_type:
879
+ hybrid: Híbrida
880
+ in_person: Presencial
881
+ online: En línia
882
+ voting_types_label: Tipus de votació
259
883
  layouts:
260
884
  decidim:
261
885
  election_votes_header:
262
886
  exit: Sortir
887
+ votings:
888
+ index:
889
+ promoted_votings: Votacions destacades
890
+ promoted_voting:
891
+ more_info: Més informació
892
+ vote: Votar