decidim-elections 0.23.2 → 0.24.0

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 +635 -6
  246. data/config/locales/cs.yml +635 -6
  247. data/config/locales/de.yml +635 -6
  248. data/config/locales/el.yml +4 -2
  249. data/config/locales/en.yml +636 -6
  250. data/config/locales/es-MX.yml +636 -7
  251. data/config/locales/es-PY.yml +636 -7
  252. data/config/locales/es.yml +636 -7
  253. data/config/locales/fi-plain.yml +636 -7
  254. data/config/locales/fi.yml +636 -7
  255. data/config/locales/fr-CA.yml +419 -6
  256. data/config/locales/fr.yml +419 -6
  257. data/config/locales/gl.yml +81 -4
  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 +502 -6
  262. data/config/locales/no.yml +0 -6
  263. data/config/locales/pl.yml +656 -10
  264. data/config/locales/pt.yml +4 -6
  265. data/config/locales/ro-RO.yml +214 -6
  266. data/config/locales/sv.yml +12 -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,40 @@ 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: ""
346
+ other: ""
175
347
  show:
176
- back: Totes les votacions
348
+ action-button:
349
+ change-vote: Canvia el teu vot
350
+ vote: Començar a votar
351
+ vote-again: Votar de nou
352
+ back: Eleccions disponibles
353
+ callout:
354
+ already-voted: Ja has votat en aquesta elecció. Pots canviar el teu vot o verificar-lo.
355
+ vote-rejected: No ha estat possible verificar el teu vot. Si us plau, fes-ho de nou.
177
356
  preview: Previsualitzar
178
- vote: Votar
357
+ verify:
358
+ already-voted: Ja has votat?
359
+ verify-here: Comprova el teu vot aquí.
360
+ will-verify: Podràs verificar el teu vot una vegada comenci l'elecció.
179
361
  voting_period_status:
180
362
  finished: La votació va començar el %{start_time} i va acabar el %{end_time}
181
- ongoing: La votació finalitza el %{end_time}
363
+ ongoing: 'Votació activa fins: %{end_time}'
182
364
  upcoming: La votació comença el %{start_time}
365
+ feedback:
366
+ answer:
367
+ invalid: S'ha produït un error en enviar els teus comentaris.
368
+ spam_detected: Hi ha hagut un problema contestant el formulari. Potser has anat massa ràpid, ho pots tornar a intentar?
369
+ success: Comentaris enviats amb èxit.
183
370
  models:
184
371
  answer:
185
372
  fields:
@@ -187,6 +374,7 @@ ca:
187
374
  title: Títol
188
375
  election:
189
376
  fields:
377
+ bb_status: Estat del tBulletin Board
190
378
  end_time: Finalitza el
191
379
  start_time: Comença el
192
380
  title: Títol
@@ -195,10 +383,114 @@ ca:
195
383
  answers: Respostes
196
384
  max_selections: Número màxim d'elements a seleccionar
197
385
  title: Títol
386
+ trustees_participatory_space:
387
+ fields:
388
+ considered: considerat
389
+ email: Correu electrònic
390
+ inactive: inactiu
391
+ name: Nom
392
+ notification: Notificació enviada a les
393
+ public_key: Clau pública
394
+ status: Estat
198
395
  orders:
199
396
  label: Ordena votacions per
200
397
  older: Més antiga
201
398
  recent: Recent
399
+ trustee_zone:
400
+ elections:
401
+ backup_modal:
402
+ 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à.
403
+ download_election_keys: Descarregar claus
404
+ download_icon: Icona que indica una acció de descàrrega
405
+ title: Còpia de seguretat de les claus per l'elecció %{election}
406
+ key_ceremony_steps:
407
+ back: Tornar
408
+ description: Aquesta elecció s'està creant al Bulletin Board. Per completar aquest procés, es necessita la teva participació com a garant.
409
+ keys:
410
+ create_election: Generació de claus
411
+ key_ceremony:
412
+ joint_election_key: Generació conjunta de claus
413
+ step_1: Publicant claus
414
+ list:
415
+ status: Estat
416
+ task: Tasca
417
+ 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.
418
+ start: Començar
419
+ start_icon: Icona que indica un botó d'inici per a la generació de claus d'una elecció
420
+ status:
421
+ completed: Completada
422
+ pending: Pendent
423
+ processing: Processant
424
+ title: Crear claus per l'elecció %{election}
425
+ restore_modal:
426
+ 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.
427
+ title: Restaurar claus per l'elecció %{election}
428
+ upload_election_keys: Pujar claus de l'elecció
429
+ upload_icon: Icona que indica una acció de descàrrega
430
+ tally_steps:
431
+ back: Tornar
432
+ 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.
433
+ keys:
434
+ end_tally: Recompte finalitzat
435
+ tally:
436
+ cast: Enviament del recompte
437
+ share: Compartició del recompte
438
+ list:
439
+ status: Estat
440
+ task: Tasca
441
+ 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.
442
+ start: Començar
443
+ start_icon: Icona que indica un botó d'inici per començar la generació de claus d'una elecció
444
+ status:
445
+ completed: Completada
446
+ pending: Pendent
447
+ processing: Processant
448
+ title: Recompte per %{election}
449
+ update:
450
+ error: L'estat de l'elecció no s'havia actualitzat.
451
+ success: 'L''estat de l''elecció és: %{status}'
452
+ menu:
453
+ trustee_zone: Zona de garants
454
+ no_bulletin_board:
455
+ body: Es requereix disposar d'un Bulletin Board configurat per a aquesta secció. Contacta amb l'administradora per més detalls.
456
+ title: Ho sentim, el Bulletin Board no s'ha configurat encara.
457
+ trustees:
458
+ show:
459
+ elections:
460
+ list:
461
+ action_required:
462
+ 'false': 'No'
463
+ name: Acció requerida?
464
+ 'true': Realitzar acció
465
+ bb_status: Estat
466
+ election: Elecció
467
+ voting_period: Període de votació
468
+ no_elections: No hi ha eleccions en les que actuïs com a garant.
469
+ title: Eleccions
470
+ identification_keys:
471
+ cancel: Cancel·lar
472
+ generate: Generar claus d'identificació
473
+ generate_error: Hi ha hagut un error generant les claus d'identificació.
474
+ generate_legend: Has de generar un parell de claus d'identificació per participar en les eleccions com a garant.
475
+ generate_legend_1: Després de prémer el botó has de descarregar l'arxiu amb les claus d'identificació generades.
476
+ generate_legend_2: Copia l'arxiu descarregat a un dispositiu USB net
477
+ 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).
478
+ generate_legend_4: Fes una altra copia de l'arxiu en un dispositiu extern diferent i guarda'l a un lloc molt segur.
479
+ submit: Enviar
480
+ 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.
481
+ submit_title: Enviar la clau d'identificació pública
482
+ title: Claus d'identificació del garant
483
+ upload: Puja les teves claus d'identificació
484
+ upload_error:
485
+ invalid_format: L'arxiu pujat no conté cap clau d'identificació.
486
+ invalid_key: Les claus d'identificació a l'arxiu pujat no es poden carregar.
487
+ invalid_public_key: Les claus d'identificació a l'arxiu pujat no coincideixen amb la clau d'identificació pública emmagatzemada per Decidim.
488
+ 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.
489
+ 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.
490
+ not_supported_browser_title: Actualitza el navegador per a actuar com a garant
491
+ trustee_role_description: Se t'ha assignat com a garant en algunes de les eleccions celebrades en aquesta plataforma.
492
+ update:
493
+ success: La teva clau pública d'identificació va ser guardada amb èxit.
202
494
  votes:
203
495
  confirm:
204
496
  answer: Resposta
@@ -211,15 +503,20 @@ ca:
211
503
  question: Preguntes %{count}
212
504
  confirmed:
213
505
  back: Tornar a les votacions
506
+ error: Ho sentim, hi ha hagut un error al guardar el teu vot. Si us plau, vota de nou.
214
507
  experience: Com valores l'experiència?
215
508
  feedback: Dona'ns la teva opinió
216
509
  header: Vot confirmat
217
510
  lead: El teu vot ha estat emès!
218
511
  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>
512
+ verify_link: Per comprovar-ho, copia l'identificador i enganxa'l a la <a href="%{link}">pàgina de verificació de vot</a>
220
513
  encrypting:
221
514
  header: Codificant el vot...
222
515
  text: El teu vot s'està xifrant per assegurar-te que l'emets de forma anònima.
516
+ failed:
517
+ header: Vot fallit
518
+ lead: El teu vot no s'ha enviat!
519
+ text: Alguna cosa ha anat malament. Si us plau, torna-ho a provar.
223
520
  header:
224
521
  confirm: Confirma el teu vot
225
522
  confirmed: Vot confirmat
@@ -236,6 +533,28 @@ ca:
236
533
  preview_alert: Aquesta és una vista prèvia de la cabina de votació.
237
534
  question_steps: Pregunta %{current_step} de %{total_steps}
238
535
  selections: "Seleccionada <br> %{selected} de %{max_selections}"
536
+ processing:
537
+ header: Processant...
538
+ text: El teu vot s'ha rebut i s'està processant. Si us plau espera.
539
+ update:
540
+ error: S'ha produït un error en actualitzar l'estat del vot
541
+ success: L'estat del vot s'ha actualitzat correctament
542
+ verify:
543
+ content:
544
+ heading: Verifica el teu vot
545
+ 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.
546
+ error:
547
+ header: Vot no localitzat!
548
+ info: El codi del vot no s'ha trobat a l'urna %{link}, intenta-ho de nou.
549
+ form:
550
+ back: Tornar a Decidim
551
+ submit: Comprovar
552
+ vote_identifier: 'Codi identificador:'
553
+ header:
554
+ title: Verifica el teu vot
555
+ success:
556
+ header: Vot localitzat!
557
+ info: El teu vot encriptat es troba a l'urna %{link}
239
558
  voting_step:
240
559
  back: Enrere
241
560
  continue: Següent
@@ -249,6 +568,38 @@ ca:
249
568
  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
569
  email_subject: La votació %{resource_title} ja està activa a %{participatory_space_title}.
251
570
  notification_title: La votació <a href="%{resource_path}">%{resource_title}</a> a %{participatory_space_title} ja està activa.
571
+ trustees:
572
+ new_election:
573
+ email_intro: Has estat afegit com a garant de l'elecció %{resource_title}.
574
+ email_outro: Has rebut aquesta notificació perquè t'han afegit com a garant de l'elecció %{resource_title}.
575
+ email_subject: Ets un garant de l'elecció %{resource_title}..
576
+ notification_title: Ets un garant de l'elecció <a href="%{resource_path}">%{resource_title}</a>.
577
+ new_trustee:
578
+ 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>
579
+ email_outro: Has rebut aquesta notificació perquè t'han afegit com a garant de %{resource_name}.
580
+ email_subject: Ets garant de %{resource_name}.
581
+ notification_title: Ets garant de <a href="%{participatory_space_url}">%{resource_name}</a>.
582
+ votes:
583
+ accepted_votes:
584
+ 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>.'
585
+ email_outro: Has rebut aquesta notificació perquè has votat a l'elecció %{resource_name}.
586
+ email_subject: El teu vot a %{resource_name} s'ha acceptat.
587
+ notification_title: 'El teu vot s''ha acceptat. Verifica''l <a href="%{verify_url}">aquí</a> utilitzant el comprovant de vot: %{encrypted_vote_hash}'
588
+ votings:
589
+ polling_officers:
590
+ polling_station_assigned:
591
+ 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>.
592
+ email_outro: Has rebut aquesta notificació perquè t'han assignat com %{role} de %{polling_station_name}.
593
+ email_subject: Ets %{role} del punt de votació %{polling_station_name}.
594
+ notification_title: Ets %{role} del punt de votació %{polling_station_name} a la votació <a href="%{resource_path}">%{resource_title}</a>.
595
+ help:
596
+ participatory_spaces:
597
+ votings:
598
+ 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>"
599
+ 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>"
600
+ title: Què són les votacions?
601
+ menu:
602
+ votings: Votacions
252
603
  pages:
253
604
  home:
254
605
  statistics:
@@ -256,7 +607,285 @@ ca:
256
607
  participatory_processes:
257
608
  statistics:
258
609
  elections_count: Votacions
610
+ votings:
611
+ admin:
612
+ content_blocks:
613
+ highlighted_votings:
614
+ max_results: Quantitat màxima d'elements per mostrar
615
+ landing_page:
616
+ attachments_and_folders:
617
+ name: Arxius i carpetes de la votació
618
+ description:
619
+ name: Descripció de la votació
620
+ elections:
621
+ name: Eleccions de la votació
622
+ header:
623
+ name: Capçalera de la votació
624
+ html_block_1:
625
+ name: Bloc html 1 de votació
626
+ html_block_2:
627
+ name: Bloc html 2 de votació
628
+ html_block_3:
629
+ name: Bloc html 3 de votació
630
+ metrics:
631
+ name: Mètriques de la votació
632
+ polling_stations:
633
+ name: Punts de votació
634
+ stats:
635
+ name: Estadístiques de la votació
636
+ timeline:
637
+ name: Calendari de la votació
638
+ index:
639
+ not_published: Despublicada
640
+ published: Publicada
641
+ landing_page:
642
+ content_blocks:
643
+ edit:
644
+ update: Actualitzar
645
+ edit:
646
+ active_content_blocks: Blocs de contingut actius
647
+ inactive_content_blocks: Blocs de contingut inactius
648
+ menu:
649
+ votings: Votacions
650
+ votings_submenu:
651
+ attachment_collections: Carpetes
652
+ attachment_files: Arxius
653
+ attachments: Adjunts
654
+ components: Components
655
+ info: Informació
656
+ landing_page: Pàgina d'inici
657
+ monitoring_committee_members: Comitè de seguiment
658
+ polling_officers: Gestors de mesa
659
+ polling_stations: Punts de votació
660
+ models:
661
+ monitoring_committee_member:
662
+ fields:
663
+ email: Correu electrònic
664
+ name: Nom
665
+ name: Membre del comitè de seguiment
666
+ polling_officer:
667
+ fields:
668
+ email: Correu electrònic
669
+ name: Nom
670
+ polling_station: Punt de votació (rol)
671
+ name: Gestor de mesa
672
+ polling_station:
673
+ fields:
674
+ address: Adreça
675
+ polling_station_managers: Administradors
676
+ polling_station_president: President
677
+ title: Títol
678
+ name: Punt de votació
679
+ voting:
680
+ fields:
681
+ created_at: Creada el
682
+ promoted: Destacada
683
+ published: Publicada
684
+ title: Títol
685
+ monitoring_committee_members:
686
+ create:
687
+ invalid: Hi ha hagut un problema en crear aquest membre del comitè de seguiment
688
+ success: Membre del comitè de seguiment creat amb èxit
689
+ destroy:
690
+ invalid: Hi ha hagut un problema en eliminar aquest membre del comitè de seguiment
691
+ success: Membre del comitè de seguiment eliminat amb èxit
692
+ form:
693
+ existing_user: Participant existent
694
+ non_user: Convidar una nova participant
695
+ select_user: Cercar per correu electrònic, nom o àlies
696
+ user_type: Tipus de participant
697
+ index:
698
+ title: Comitè de seguiment
699
+ new:
700
+ create: Crear
701
+ title: Crear membre del comitè de seguiment
702
+ polling_officers:
703
+ create:
704
+ invalid: S'ha produït un error en crear aquest gestor de mesa
705
+ success: Gestor de mesa creat correctament
706
+ destroy:
707
+ invalid: S'ha produït un error en eliminar aquest gestor de mesa
708
+ success: Gestor de mesa creat correctament
709
+ form:
710
+ existing_user: Participant existent
711
+ non_user: Convidar una nova participant
712
+ select_user: Cercar per correu electrònic, nom o àlies
713
+ user_type: Tipus de participant
714
+ index:
715
+ role_manager: administrador
716
+ role_president: president
717
+ title: Gestors de mesa
718
+ new:
719
+ create: Crear
720
+ title: Crear gestor de mesa
721
+ polling_officers_picker:
722
+ choose_polling_officers: Escollir gestors de mesa
723
+ close: Tancar
724
+ more_polling_officers: Hi ha %{number} gestors de mesa més. Refina la teva cerca per localitzar-los.
725
+ no_polling_officers: Cap gestor de mesa coincideix amb els teus criteris de cerca o no n'hi ha cap.
726
+ polling_stations:
727
+ create:
728
+ invalid: S'ha produït un error en crear aquest punt de votació
729
+ success: Punt de votació creat correctament
730
+ destroy:
731
+ invalid: S'ha produït un error en eliminar aquest punt de votació
732
+ success: Punt de votació eliminat correctament
733
+ edit:
734
+ title: Editar punt de votació
735
+ update: Actualitzar punt de votació
736
+ form:
737
+ address_help: 'Adreça: que farà servir per Geocoder per a trobar la localització'
738
+ location_help: 'Ubicació: missatge dirigit als votants amb el lloc exacte del punt de votació'
739
+ location_hints_help: 'Detalls d''ubicació: informació addicional. Exemple: la planta de l''edifici on està situat el punt de votació.'
740
+ 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ó'
741
+ 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ó'
742
+ select_president: Selecciona un gestor com a president del punt de votació
743
+ index:
744
+ title: Punts de votació
745
+ new:
746
+ create: Crear
747
+ title: Crear punt de votació
748
+ update:
749
+ invalid: S'ha produït un error en actualitzar aquest punt de votació
750
+ success: Punt de votació actualitzat correctament
751
+ titles:
752
+ votings: Votacions
753
+ votings:
754
+ actions:
755
+ confirm_destroy: N'estàs segura?
756
+ destroy: Eliminar
757
+ new_voting: Nou espai de votació
758
+ publish: Publicar
759
+ unpublish: Despublicar
760
+ create:
761
+ invalid: S'ha produït un error en crear aquesta votació
762
+ success: Votació creada correctament
763
+ edit:
764
+ add_election_component: No tens cap elecció configurada per a aquesta votació. Si us plau, afegeix-la a la secció de components
765
+ 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ó
766
+ update: Actualitzar
767
+ form:
768
+ select_a_voting_type: Si us plau selecciona un tipus de votació
769
+ 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}'
770
+ title: Títol
771
+ voting_type:
772
+ hybrid: Híbrida
773
+ in_person: Presencial
774
+ online: En línia
775
+ new:
776
+ create: Crear
777
+ title: Nova votació
778
+ publish:
779
+ success: La votació s'ha publicat correctament
780
+ unpublish:
781
+ success: La votació s'ha despublicat correctament
782
+ update:
783
+ invalid: S'ha produït un error en actualitzar aquesta votació
784
+ success: La votació s'ha actualitzat correctament
785
+ admin_log:
786
+ voting:
787
+ create: "%{user_name} ha creat la votació %{resource_name}"
788
+ publish: "%{user_name} ha publicat la votació %{resource_name}"
789
+ unpublish: "%{user_name} ha despublicat la votació %{resource_name}"
790
+ content_blocks:
791
+ highlighted_votings:
792
+ name: Votacions destacades
793
+ monitoring_committee_members:
794
+ actions:
795
+ confirm_destroy: N'estàs segura?
796
+ destroy: Esborrar
797
+ new: Nou membre
798
+ title: Accions
799
+ pages:
800
+ home:
801
+ highlighted_votings:
802
+ active_votings: Votacions actives
803
+ see_all_votings: Veure totes les votacions
804
+ votings_button_title: Enllaç a la pàgina de Votacions que les mostra totes
805
+ polling_officer_zone:
806
+ menu:
807
+ polling_officer_zone: Zona del gestor de mesa
808
+ polling_officers:
809
+ show:
810
+ actions:
811
+ count_votes: Comptar els vots a les urnes
812
+ identify_person: Identificar i verificar una persona
813
+ 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.
814
+ polling_stations:
815
+ list:
816
+ actions: Accions
817
+ address: Adreça
818
+ name: Nom
819
+ role: El teu rol
820
+ voting: Votacions
821
+ no_polling_stations: Encara no has estat assignat a cap punt de votació.
822
+ title: Punts de votació
823
+ polling_officers:
824
+ actions:
825
+ confirm_destroy: N'estàs segura?
826
+ destroy: Esborrar
827
+ new: Nou
828
+ title: Accions
829
+ roles:
830
+ manager: Administrador
831
+ president: President
832
+ unassigned: Sense assignar
833
+ polling_stations:
834
+ actions:
835
+ confirm_destroy: N'estàs segura?
836
+ destroy: Esborrar
837
+ edit: Editar
838
+ new: Nou
839
+ title: Accions
840
+ votings:
841
+ count:
842
+ title:
843
+ one: "%{count} votació"
844
+ other: "%{count} votacions"
845
+ filters:
846
+ active: Actives
847
+ all: Todas
848
+ finished: Finalizades
849
+ search: Cercar
850
+ state: Estat
851
+ upcoming: Properes
852
+ filters_small_view:
853
+ close_modal: Tancar finestra
854
+ filter: Filtrar
855
+ filter_by: Filtrar per
856
+ unfold: Desplegar
857
+ index:
858
+ no_votings: Cap votació s'ajusta als vostres criteris de cerca.
859
+ only_finished: Actualment no hi ha votacions programades, però podeu trobar les votacions ja finalitzades.
860
+ title: Votacions
861
+ orders:
862
+ label: 'Ordenar votacions per:'
863
+ random: Aleatori
864
+ recent: Més recents
865
+ show:
866
+ dates: Dates
867
+ votings_m:
868
+ badge_name:
869
+ finished: Finalizades
870
+ ongoing: En curs
871
+ upcoming: Properes
872
+ footer_button_text:
873
+ participate: Participa
874
+ view: Veure
875
+ vote: Vota
876
+ unspecified: Sense especificar
877
+ voting_type:
878
+ hybrid: Híbrida
879
+ in_person: Presencial
880
+ online: En línia
881
+ voting_types_label: Tipus de votació
259
882
  layouts:
260
883
  decidim:
261
884
  election_votes_header:
262
885
  exit: Sortir
886
+ votings:
887
+ index:
888
+ promoted_votings: Votacions destacades
889
+ promoted_voting:
890
+ more_info: Més informació
891
+ vote: Votar