decidim-elections 0.23.0 → 0.24.0.rc1

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/_preview.html.erb +26 -0
  198. data/app/views/decidim/elections/elections/_results.html.erb +47 -0
  199. data/app/views/decidim/elections/elections/show.html.erb +39 -12
  200. data/app/views/decidim/elections/trustee_zone/elections/_backup_modal.html.erb +24 -0
  201. data/app/views/decidim/elections/trustee_zone/elections/_key_ceremony_steps.html.erb +44 -0
  202. data/app/views/decidim/elections/trustee_zone/elections/_restore_modal.html.erb +25 -0
  203. data/app/views/decidim/elections/trustee_zone/elections/_tally_steps.html.erb +43 -0
  204. data/app/views/decidim/elections/trustee_zone/elections/show.html.erb +38 -0
  205. data/app/views/decidim/elections/trustee_zone/elections/update.js.erb +5 -0
  206. data/app/views/decidim/elections/trustee_zone/trustees/show.html.erb +102 -0
  207. data/app/views/decidim/elections/votes/_election_votes_confirmed.html.erb +38 -17
  208. data/app/views/decidim/elections/votes/_election_votes_failed.html.erb +21 -0
  209. data/app/views/decidim/elections/votes/_election_votes_question.html.erb +4 -4
  210. data/app/views/decidim/elections/votes/cast_failed.js.erb +1 -0
  211. data/app/views/decidim/elections/votes/cast_success.js.erb +1 -0
  212. data/app/views/decidim/elections/votes/new.html.erb +41 -33
  213. data/app/views/decidim/elections/votes/verify.html.erb +78 -0
  214. data/app/views/decidim/votings/admin/monitoring_committee_members/_form.html.erb +27 -0
  215. data/app/views/decidim/votings/admin/monitoring_committee_members/index.html.erb +41 -0
  216. data/app/views/decidim/votings/admin/monitoring_committee_members/new.html.erb +7 -0
  217. data/app/views/decidim/votings/admin/polling_officers/_form.html.erb +27 -0
  218. data/app/views/decidim/votings/admin/polling_officers/index.html.erb +50 -0
  219. data/app/views/decidim/votings/admin/polling_officers/new.html.erb +7 -0
  220. data/app/views/decidim/votings/admin/polling_stations/_form.html.erb +40 -0
  221. data/app/views/decidim/votings/admin/polling_stations/edit.html.erb +7 -0
  222. data/app/views/decidim/votings/admin/polling_stations/index.html.erb +55 -0
  223. data/app/views/decidim/votings/admin/polling_stations/new.html.erb +7 -0
  224. data/app/views/decidim/votings/admin/votings/_form.html.erb +63 -0
  225. data/app/views/decidim/votings/admin/votings/edit.html.erb +31 -0
  226. data/app/views/decidim/votings/admin/votings/index.html.erb +87 -0
  227. data/app/views/decidim/votings/admin/votings/new.html.erb +13 -0
  228. data/app/views/decidim/votings/admin/votings/polling_officers_picker.html.erb +2 -0
  229. data/app/views/decidim/votings/polling_officer_zone/polling_officers/show.html.erb +42 -0
  230. data/app/views/decidim/votings/polling_officer_zone/polling_stations/show.html.erb +1 -0
  231. data/app/views/decidim/votings/votings/_count.html.erb +1 -0
  232. data/app/views/decidim/votings/votings/_filters.html.erb +25 -0
  233. data/app/views/decidim/votings/votings/_filters_small_view.html.erb +23 -0
  234. data/app/views/decidim/votings/votings/_promoted_voting.html.erb +27 -0
  235. data/app/views/decidim/votings/votings/_voting_details.html.erb +7 -0
  236. data/app/views/decidim/votings/votings/_votings.html.erb +25 -0
  237. data/app/views/decidim/votings/votings/index.html.erb +42 -0
  238. data/app/views/decidim/votings/votings/index.js.erb +10 -0
  239. data/app/views/decidim/votings/votings/show.html.erb +20 -0
  240. data/app/views/layouts/decidim/_voting_header.html.erb +16 -0
  241. data/app/views/layouts/decidim/admin/voting.html.erb +101 -0
  242. data/app/views/layouts/decidim/voting.html.erb +16 -0
  243. data/config/initializers/decidim_bulletin_board.rb +23 -0
  244. data/config/locales/ca.yml +39 -6
  245. data/config/locales/cs.yml +640 -6
  246. data/config/locales/de.yml +677 -10
  247. data/config/locales/el.yml +0 -2
  248. data/config/locales/en.yml +636 -6
  249. data/config/locales/es-MX.yml +6 -10
  250. data/config/locales/es-PY.yml +6 -10
  251. data/config/locales/es.yml +6 -10
  252. data/config/locales/fi-plain.yml +635 -6
  253. data/config/locales/fi.yml +636 -7
  254. data/config/locales/fr-CA.yml +422 -6
  255. data/config/locales/fr.yml +422 -6
  256. data/config/locales/gl.yml +168 -0
  257. data/config/locales/it.yml +107 -6
  258. data/config/locales/ja.yml +8 -6
  259. data/config/locales/lv.yml +0 -2
  260. data/config/locales/nl.yml +502 -6
  261. data/config/locales/no.yml +0 -6
  262. data/config/locales/pl.yml +580 -8
  263. data/config/locales/pt.yml +0 -6
  264. data/config/locales/ro-RO.yml +0 -6
  265. data/config/locales/si-LK.yml +1 -0
  266. data/config/locales/sv.yml +8 -7
  267. data/config/locales/sw-KE.yml +1 -0
  268. data/config/locales/tr-TR.yml +369 -0
  269. data/config/locales/zh-CN.yml +0 -6
  270. data/db/migrate/20200915142713_add_questionnaire_to_existing_elections.rb +29 -0
  271. data/db/migrate/20200918153813_create_decidim_elections_trustees_participatory_spaces.rb +13 -0
  272. data/db/migrate/20200918153824_create_decidim_elections_elections_trustees.rb +10 -0
  273. data/db/migrate/20200918153835_create_decidim_elections_trustees.rb +12 -0
  274. data/db/migrate/20201026163334_add_blocked_at_and_bb_status_to_elections.rb +8 -0
  275. data/db/migrate/20201028090110_add_votes_to_decidim_elections_answers.rb +7 -0
  276. data/db/migrate/20201028135614_add_selected_to_decidim_elections_answers.rb +7 -0
  277. data/db/migrate/20201209110653_create_decidim_elections_votes.rb +14 -0
  278. data/db/migrate/20201216091123_add_name_to_trustees.rb +7 -0
  279. data/db/migrate/20210113113818_add_message_id_to_decidim_elections_votes.rb +7 -0
  280. data/db/migrate/20210113120115_create_decidim_elections_votings.rb +20 -0
  281. data/db/migrate/20210114100749_add_published_at_to_decidim_votings_votings.rb +7 -0
  282. data/db/migrate/20210114111850_add_user_to_decidim_elections_votes.rb +7 -0
  283. data/db/migrate/20210120164634_add_promoted_to_voting.rb +7 -0
  284. data/db/migrate/20210125124801_add_voting_type_to_voting_voting.rb +7 -0
  285. data/db/migrate/20210129124956_create_decidim_elections_actions.rb +14 -0
  286. data/db/migrate/20210204132111_add_votings_polling_stations.rb +19 -0
  287. data/db/migrate/20210208090441_add_polling_officers_to_votings.rb +12 -0
  288. data/db/migrate/20210210090738_add_votings_polling_station_references_to_votings_polling_officer.rb +8 -0
  289. data/db/migrate/20210216074707_add_monitoring_committee_member.rb +12 -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 +309 -24
  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
@@ -16,6 +16,9 @@ fr:
16
16
  max_selections: Nombre maximum de sélections
17
17
  min_selections: Aucune des options ci-dessus
18
18
  title: Titre
19
+ voting:
20
+ end_time: Le vote se termine
21
+ start_time: Le vote commence le
19
22
  errors:
20
23
  models:
21
24
  answer:
@@ -26,6 +29,12 @@ fr:
26
29
  attributes:
27
30
  attachment:
28
31
  needs_to_be_reattached: Doit être téléchargé de nouveau
32
+ trustee:
33
+ attributes:
34
+ name:
35
+ cant_be_changed: ne peut pas être modifié
36
+ public_key:
37
+ cant_be_changed: ne peut être modifiée
29
38
  activerecord:
30
39
  models:
31
40
  decidim/elections/answer:
@@ -37,6 +46,9 @@ fr:
37
46
  decidim/elections/question:
38
47
  one: Question
39
48
  other: Questions
49
+ decidim/votings/voting:
50
+ one: Vote
51
+ other: Votes
40
52
  decidim:
41
53
  components:
42
54
  elections:
@@ -53,9 +65,11 @@ fr:
53
65
  confirm_destroy: Êtes-vous certain ?
54
66
  destroy: Détruire
55
67
  edit: Modifier
56
- edit_answers: Modifier les réponses
57
- edit_questions: Modifier les questions
68
+ feedback: Feedbacks des votants
58
69
  import: Importer des propositions dans les réponses
70
+ manage_answers: Gérer les réponses
71
+ manage_questions: Gérer les questions
72
+ manage_steps: Gérer les étapes
59
73
  new: Nouveau %{name}
60
74
  preview: Aperçu
61
75
  publish: Publier
@@ -78,6 +92,14 @@ fr:
78
92
  new:
79
93
  create: Créer une réponse
80
94
  title: Nouvelle réponse
95
+ select:
96
+ disable: Désélectionner la réponse
97
+ enable: Marquer la réponse comme sélectionnée
98
+ invalid: Un problème est survenu lors de la sélection de cette réponse
99
+ success: Réponse sélectionnée avec succès
100
+ unselect:
101
+ invalid: Une erreur est survenue lors de la désélection de cette réponse
102
+ success: Réponse désélectionnée avec succès
81
103
  update:
82
104
  invalid: Un problème est survenu lors de la mise à jour de cette réponse
83
105
  success: Réponse mise à jour avec succès
@@ -104,6 +126,9 @@ fr:
104
126
  update:
105
127
  invalid: Il y a eu un problème lors de la mise à jour de cette élection
106
128
  success: Élection mise à jour avec succès
129
+ exports:
130
+ elections: Élections
131
+ feedback_form_answers: Feedbacks des répondants
107
132
  models:
108
133
  answer:
109
134
  name: Réponse
@@ -111,6 +136,8 @@ fr:
111
136
  name: Élection
112
137
  question:
113
138
  name: Question
139
+ trustee:
140
+ name: Garant
114
141
  proposals_imports:
115
142
  create:
116
143
  invalid: Un problème est survenu lors de l'importation des propositions en réponses
@@ -119,6 +146,7 @@ fr:
119
146
  create: Importer des propositions dans les réponses
120
147
  no_components: Il n'y a pas d'autres fonctionnalités Propositions dans cet espace participatif pour importer des propositions.
121
148
  select_component: Veuillez sélectionner une fonctionnalité
149
+ title: Importer des propositions
122
150
  questions:
123
151
  create:
124
152
  invalid: Il y a eu un problème lors de la création de cette question
@@ -137,6 +165,93 @@ fr:
137
165
  update:
138
166
  invalid: Une erreur s'est produite lors de la mise à jour de cette question
139
167
  success: Question mise à jour avec succès
168
+ steps:
169
+ create_election:
170
+ errors:
171
+ max_selections: Les questions n'ont pas de <strong>valeur correcte pour le nombre de réponses</strong>
172
+ minimum_answers: Les questions doivent avoir <strong>au moins deux réponses</strong>.
173
+ minimum_questions: L'élection <strong>doit avoir au moins une question</strong>.
174
+ published: L'élection n'est <strong>pas publiée</strong>.
175
+ time_before: L'heure de début se situe<strong>moins de 3 heures</strong> avant le commencement de l'élection.
176
+ trustees_number: L'espace participatif <strong>doit avoir au moins %{number} garants avec une clé publique</strong>.
177
+ invalid: Une erreur est survenue lors de la création de l'élection
178
+ no_trustees: Il n'y a pas de garants configurés pour cet espace participatif
179
+ not_used_trustee: "(non utilisé)"
180
+ public_key:
181
+ 'false': n'a pas de <strong>clé publique</strong>
182
+ 'true': a une <strong>clé publique</strong>
183
+ requirements:
184
+ max_selections: Toutes les questions ont une valeur correcte pour <strong>le maximum de réponses</strong>.
185
+ minimum_answers: Chaque question a <strong>au moins 2 réponses</strong>.
186
+ minimum_questions: L'élection a <strong>au moins 1 question</strong>.
187
+ published: L'élection est <strong>publiée</strong>.
188
+ time_before: La configuration est réalisée <strong>au moins %{hours} heures</strong> avant le début de l'élection.
189
+ trustees_number: L'espace participatif <strong>doit avoir au moins %{number} garants avec une clé publique</strong>.
190
+ submit: Configurer l'élection
191
+ success: Élection envoyée avec succès au Tableau de Bord
192
+ title: Configurer l'élection
193
+ trustees: Garants de l'élection
194
+ created:
195
+ invalid: Il y a eu un problème lors du démarrage de la cérémonie des clés
196
+ submit: Démarrer la cérémonie des clés
197
+ title: Élection créée
198
+ trustees: Garants
199
+ key_ceremony:
200
+ title: Cérémonie des clés
201
+ trustees: Garants
202
+ key_ceremony_ended:
203
+ errors:
204
+ time_before: L'élection est prête à commencer. Vous devez attendre %{hours} heures avant le lancement (%{start_time}) pour démarrer la période de vote.
205
+ invalid: Il y a eu un problème au démarrage de la période de vote
206
+ requirements:
207
+ time_before: L'élection va bientôt commencer. Vous pouvez démarrer la période de vote manuellement, ou elle sera démarrée automatiquement avant l'heure de départ, à %{start_time}.
208
+ submit: Commencer la période de vote
209
+ title: Prêt à commencer
210
+ processing: Traitement en cours...
211
+ results_published:
212
+ title: Résultats publiés
213
+ tally:
214
+ trustees: Garants
215
+ tally_ended:
216
+ submit: Publier les résultats
217
+ title: Résultats calculés
218
+ vote:
219
+ errors:
220
+ time_after: L'élection est toujours en cours. Vous devez attendre (%{end_time}) pour terminer la période de vote.
221
+ invalid: Un problème est survenu lors de la clôture de la période de vote
222
+ requirements:
223
+ time_after: L'élection est terminée. Vous pouvez terminer la période de vote manuellement, ou elle se terminera automatiquement dans quelques minutes.
224
+ submit: Fin de la période de vote
225
+ success: La demande de fin de la période de vote a été envoyée avec succès au Panneau d'Affichage
226
+ title: Période de vote
227
+ vote_ended:
228
+ title: Période de vote terminée
229
+ vote_stats:
230
+ no_vote_statistics_yet: Pas encore de statistiques sur le vote
231
+ title: Statistiques du vote
232
+ voters: Votants
233
+ votes: Votes
234
+ trustees_participatory_spaces:
235
+ actions:
236
+ disable: Désactiver
237
+ enable: Autoriser
238
+ create:
239
+ exists: Ce garant existe déjà dans cet espace participatif
240
+ invalid: Une erreur s'est produite lors de la création du garant
241
+ success: Le garant a bien été créé
242
+ delete:
243
+ invalid: Il y a eu un problème lors de la suppression de ce garant
244
+ success: Le garant a bien été supprimé
245
+ form:
246
+ select_user: Sélectionner un utilisateur
247
+ index:
248
+ title: Garants
249
+ new:
250
+ create: Créer un garant
251
+ title: Nouveau garant
252
+ update:
253
+ invalid: Une erreur s'est produite lors de la mise à jour du garant %{trustee}
254
+ success: Le garant %{trustee} a été mis à jour avec succès
140
255
  admin_log:
141
256
  election:
142
257
  publish: "%{user_name} a publié l'élection %{resource_name}"
@@ -172,14 +287,40 @@ fr:
172
287
  filter: Filtrer
173
288
  filter_by: Filtrer par
174
289
  unfold: Voir plus
290
+ preview:
291
+ available_answers: Réponses disponibles
292
+ description: Voici les questions que vous trouverez dans le processus de vote
293
+ title: Questions de l'élection
294
+ results:
295
+ description: Ce sont les résultats du vote, pour chaque question
296
+ selected: Sélectionné
297
+ title: Résultats de l'élection
298
+ votes:
299
+ one: "%{count} vote"
300
+ other: "%{count} votes"
175
301
  show:
176
- back: Toutes les élections
302
+ action-button:
303
+ change-vote: Changer votre vote
304
+ vote: Commencer à voter
305
+ vote-again: Voter à nouveau
306
+ back: Élections disponibles
307
+ callout:
308
+ already-voted: Vous avez déjà voté pour cette élection. Vous pouvez modifier votre vote ou le vérifier.
309
+ vote-rejected: Il n'a pas été possible de vérifier votre vote. Veuillez recommencer.
177
310
  preview: Aperçu
178
- vote: Voter
311
+ verify:
312
+ already-voted: Déjà voté?
313
+ verify-here: Vérifiez votre vote ici.
314
+ will-verify: Vous pourrez vérifier votre vote une fois l'élection commencée.
179
315
  voting_period_status:
180
316
  finished: Le vote a commencé le %{start_time} et s'est terminé le %{end_time}
181
- ongoing: Le vote se termine le %{end_time}
317
+ ongoing: 'Vote actif jusqu''au : %{end_time}'
182
318
  upcoming: Le vote commence le %{start_time}
319
+ feedback:
320
+ answer:
321
+ invalid: Un problème est survenu lors de l'envoi de votre feedback.
322
+ spam_detected: Une erreur s'est produite lors de la complétion du formulaire. Peut-être êtes-vous allés trop vite, pouvez-vous réessayer?
323
+ success: Votre avis a bien été envoyé.
183
324
  models:
184
325
  answer:
185
326
  fields:
@@ -195,10 +336,105 @@ fr:
195
336
  answers: Réponses
196
337
  max_selections: Nombre maximum de sélections
197
338
  title: Titre
339
+ trustees_participatory_space:
340
+ fields:
341
+ considered: autorisé
342
+ email: Email
343
+ inactive: inactif
344
+ name: Nom
345
+ notification: Notification envoyée à
346
+ public_key: Clé publique
347
+ status: Statut
198
348
  orders:
199
349
  label: Trier les élections par
200
350
  older: Les plus anciens
201
351
  recent: Les plus récents
352
+ trustee_zone:
353
+ elections:
354
+ backup_modal:
355
+ description: Cette élection est en cours de création dans le Tableau d'Affichage. Il est très important que chaque Mandataire qui y participe fasse une sauvegarde de ces clés et les stocke dans un endroit sûr. Ensuite, le processus se poursuit.
356
+ download_election_keys: Télécharger les clés
357
+ download_icon: Icône indiquant une action de téléchargement
358
+ title: Sauvegarder les clés d'élection pour %{election}
359
+ key_ceremony_steps:
360
+ back: Retour
361
+ description: Cette élection est en cours de création dans le Tableau d'Affichage. Pour compléter ce processus, votre participation en tant que Mandataire est nécessaire.
362
+ keys:
363
+ create_election: Génération des clés
364
+ key_ceremony:
365
+ joint_election_key: Génération de la clé conjointe
366
+ step_1: Publication des clés
367
+ list:
368
+ status: Statut
369
+ task: Tâche
370
+ process_warning: Une fois le processus démarré, vous ne devriez pas quitter cette page avant la fin du processus. Cela prendra plusieurs minutes, car tous les Mandataires doivent être connectés pour le compléter.
371
+ start: Démarrer
372
+ start_icon: Icône indiquant un bouton de démarrage pour démarrer la génération des clés d'élection
373
+ status:
374
+ completed: Terminé
375
+ pending: En attente
376
+ processing: Traitement en cours
377
+ title: Créer des clés d'élection pour %{election}
378
+ restore_modal:
379
+ description: Le Tableau d'Affichage a des informations pour vous en temps que Mandataire de cette élection. Pour continuer le processus, commencer par télécharger le fichier de sauvegarde généré pendant la session précédente.
380
+ title: Restaurer les clés d'élection pour %{election}
381
+ upload_election_keys: Télécharger les clés d'élection
382
+ upload_icon: Icône indiquant une action de téléchargement
383
+ tally_steps:
384
+ back: Retour
385
+ description: Les résultats de cette élection sont calculés dans le Bulletin Board et pour compléter ce processus, votre participation en tant que garant est nécessaire.
386
+ list:
387
+ status: Statut
388
+ task: Tâche
389
+ process_warning: Une fois le processus démarré, vous ne devriez pas quitter cette page avant la fin du processus. Cela prendra plusieurs minutes, car tous les garants doivent être connectés pour le compléter.
390
+ start: Démarrer
391
+ start_icon: Icône indiquant un bouton de démarrage pour démarrer la génération des clés d'élection
392
+ status:
393
+ completed: Terminé
394
+ pending: En attente
395
+ processing: Traitement en cours
396
+ update:
397
+ error: Le statut de l'élection n'a pas été mis à jour.
398
+ success: 'Le statut de l''élection est : %{status}'
399
+ menu:
400
+ trustee_zone: Espace de garant
401
+ trustees:
402
+ show:
403
+ elections:
404
+ list:
405
+ action_required:
406
+ 'false': 'Non'
407
+ name: Action requise ?
408
+ 'true': Effectuer l'action
409
+ bb_status: Statut
410
+ election: Élection
411
+ voting_period: Période de vote
412
+ no_elections: Il n'y a pas d'élections dans lesquelles vous êtes garant.
413
+ title: Élections
414
+ identification_keys:
415
+ cancel: Annuler
416
+ generate: Générer les clés d'identification
417
+ generate_error: Une erreur s'est produite lors de la génération des clés d'identification.
418
+ generate_legend: Vous devez générer une paire de clés d'identification pour participer aux élections en tant que garant.
419
+ generate_legend_1: Après avoir cliqué sur le bouton, le téléchargement du fichier contenant les clés d'identification générées va commencer.
420
+ generate_legend_2: Copiez le fichier téléchargé sur un périphérique USB fiable
421
+ generate_legend_3: Assurez-vous que votre ordinateur ne possède pas de copie du fichier (par exemple, vérifiez les dossiers Téléchargements et Bureau).
422
+ generate_legend_4: Faites une autre copie du fichier sur un appareil externe et conservez-le dans un endroit très sûr.
423
+ submit: Envoyer
424
+ submit_legend: Après avoir suivi toutes les étapes expliquées ci-dessus, complétez le processus d'envoi de la clé d'identification publique au serveur Decidim.
425
+ submit_title: Soumettre la clé d'identification publique
426
+ title: Clés d'identification du garant
427
+ upload: Téléchargez vos clés d'identification
428
+ upload_error:
429
+ invalid_format: Le fichier téléchargé ne contient pas de clé d'identification.
430
+ invalid_key: Impossible de charger les clés d'identification à partir du fichier téléchargé.
431
+ invalid_public_key: Les clés d'identification dans le fichier téléchargé ne correspondent pas à la clé d'identification publique stockée par Decidim.
432
+ upload_legend: Decidim a vos clés d'identification publiques, mais votre navigateur ne l'a toujours pas. Vous devez importer le fichier avec vos clés d'identification sur votre ordinateur à partir de la sauvegarde que vous avez créée après leur génération.
433
+ not_supported_browser_description: On dirait que vous utilisez un navigateur Web qui ne peut pas être utilisé pour agir en tant que garant. Assurez-vous d'utiliser la version la plus récente de votre navigateur, ou essayez d'utiliser l'un des navigateurs les plus populaires pour accomplir vos tâches de garant.
434
+ not_supported_browser_title: Mettre à niveau le navigateur pour agir en tant que garant
435
+ trustee_role_description: Vous avez été assigné à agir en tant que garant lors de certaines des élections mises en place sur cette plateforme.
436
+ update:
437
+ success: Votre clé d'identification publique a bien été stockée.
202
438
  votes:
203
439
  confirm:
204
440
  answer: Répondre
@@ -216,10 +452,13 @@ fr:
216
452
  header: Vote confirmé
217
453
  lead: Votre vote a déjà été exprimé!
218
454
  text: 'Vous pouvez vérifier que votre vote a bien été ajouté aux urnes avec l''identifiant suivant : <strong class="evote__poll-id">%{e_vote_poll_id}</strong>'
219
- verify_text: Pour vérifier, copiez l'identifiant et collez-le sur la <a href="evote-verify">page de vérification de vote</a>
220
455
  encrypting:
221
456
  header: Encodage du vote...
222
457
  text: Votre vote est en cours de cryptage pour vous assurer que vous pouvez le diffuser de manière anonyme.
458
+ failed:
459
+ header: Le vote a échoué
460
+ lead: Votre vote n'a pas été exprimé!
461
+ text: Une erreur est survenue, veuillez réessayer.
223
462
  header:
224
463
  confirm: Confirmer votre vote
225
464
  confirmed: Vote confirmé
@@ -236,6 +475,17 @@ fr:
236
475
  preview_alert: Ceci est un aperçu de la cabine de vote.
237
476
  question_steps: Question %{current_step} sur %{total_steps}
238
477
  selections: "%{selected} sur %{max_selections}<br> sélections"
478
+ processing:
479
+ header: Traitement du vote...
480
+ text: Votre vote a été reçu et est en cours de traitement. Veuillez patienter.
481
+ update:
482
+ error: Un problème est survenu lors de la mise à jour du statut de vote
483
+ success: Statut du vote mis à jour avec succès
484
+ verify:
485
+ content:
486
+ heading: Vérifiez votre vote
487
+ error:
488
+ header: Vote introuvable !
239
489
  voting_step:
240
490
  back: Retour
241
491
  continue: Suivant
@@ -249,6 +499,25 @@ fr:
249
499
  email_outro: Vous avez reçu cette notification parce que vous suivez %{participatory_space_title}. Vous pouvez arrêter de recevoir des notifications en suivant le lien précédent.
250
500
  email_subject: L'élection %{resource_title} est maintenant active pour %{participatory_space_title}.
251
501
  notification_title: L'élection de <a href="%{resource_path}">%{resource_title}</a> est maintenant active pour %{participatory_space_title}.
502
+ trustees:
503
+ new_election:
504
+ email_intro: Vous avez été ajouté en tant que garant pour l'élection %{resource_title}.
505
+ email_outro: Vous avez reçu cette notification parce que vous avez été ajouté comme garant de l'élection "%{resource_title}".
506
+ email_subject: Vous avez été ajouté en tant que garant pour l'élection %{resource_title}.
507
+ notification_title: Vous êtes garant de l'élection <a href="%{resource_path}">%{resource_title}</a>.
508
+ new_trustee:
509
+ email_intro: Un administrateur vous a ajouté en tant que garant de %{resource_name}. Vous devriez créer votre clé publique <a href='%{trustee_zone_url}'>dans votre espace de garant</a>
510
+ email_outro: Vous avez reçu cette notification parce que vous avez été ajouté comme garant de l'élection "%{resource_name}".
511
+ email_subject: Vous avez été ajouté en tant que garant pour l'élection %{resource_name}.
512
+ notification_title: Vous êtes garant de <a href="%{participatory_space_url}">%{resource_name}</a>.
513
+ help:
514
+ participatory_spaces:
515
+ votings:
516
+ contextual: "<p>Une <strong>élection</strong> est un espace qui vous permet de poser une question claire à toutes les personnes formant une organisation, d'appeler à participer à l'élection, à susciter et organiser le débat pour ou contre une réponse. Lorsque la date de l'élection arrive, vous pouvez voter et publier les résultats des votes.</p> <p>Exemples : Les élections peuvent porter sur presque n'importe quel aspect qui affecte une organisation : changer le nom, le logo en offrant plusieurs alternatives, décider ou non de d'intégrer une organisation plus grande, valider ou rejeter un nouveau plan stratégique ou le résultat d'un groupe de travail, choisir la limitation à 1,2 ou 3 mandatures.</p>\n"
517
+ page: "<p>Une <strong>élection</strong> est un espace qui vous permet de poser une question claire à toutes les personnes formant une organisation, d'appeler à participer à l'élection, à susciter et organiser le débat pour ou contre une réponse. Lorsque la date de l'élection arrive, vous pouvez voter et publier les résultats des votes.</p> <p>Exemples : Les élections peuvent porter sur presque n'importe quel aspect qui affecte une organisation : changer le nom, le logo en offrant plusieurs alternatives, décider ou non de d'intégrer une organisation plus grande, valider ou rejeter un nouveau plan stratégique ou le résultat d'un groupe de travail, choisir la limitation à 1,2 ou 3 mandatures.</p>\n"
518
+ title: Que sont les élections ?
519
+ menu:
520
+ votings: Élections
252
521
  pages:
253
522
  home:
254
523
  statistics:
@@ -256,7 +525,154 @@ fr:
256
525
  participatory_processes:
257
526
  statistics:
258
527
  elections_count: Élections
528
+ votings:
529
+ admin:
530
+ content_blocks:
531
+ highlighted_votings:
532
+ max_results: Nombre maximum d'éléments à afficher
533
+ index:
534
+ not_published: Non publié
535
+ published: Publié
536
+ menu:
537
+ votings: Élections
538
+ votings_submenu:
539
+ attachment_collections: Dossiers
540
+ attachment_files: Fichiers
541
+ attachments: Pièces jointes
542
+ info: Information
543
+ polling_stations: Bureaux de vote
544
+ models:
545
+ polling_station:
546
+ fields:
547
+ address: Adresse
548
+ title: Titre
549
+ name: Bureau de vote
550
+ voting:
551
+ fields:
552
+ created_at: Créée le
553
+ promoted: Mise en avant
554
+ published: Publié
555
+ title: Titre
556
+ polling_stations:
557
+ create:
558
+ invalid: Une erreur est survenue lors de la création de ce bureau de vote
559
+ success: Le bureau de vote a été créée avec succès
560
+ destroy:
561
+ invalid: Une erreur est survenue lors de la suppression de ce bureau de vote
562
+ success: Le bureau de vote a bien été supprimé
563
+ edit:
564
+ title: Modifier le bureau de vote
565
+ update: Mettre à jour le bureau de vote
566
+ form:
567
+ address_help: 'Adresse: utilisée par l''outil de géocadage pour trouver l''emplacement'
568
+ location_help: 'Lieu : message adressé aux électeurs informant du lieu exact du bureau de vote'
569
+ location_hints_help: 'Indices de localisation : informations complémentaires. Par exemple : l''étage du bâtiment où se trouve le bureau de vote.'
570
+ index:
571
+ title: Bureaux de vote
572
+ new:
573
+ create: Créer
574
+ title: Créer un bureau de vote
575
+ update:
576
+ invalid: Une erreur est survenue lors de la mise à jour de ce bureau de vote
577
+ success: Le bureau de vote a bien été mis à jour
578
+ titles:
579
+ votings: Élections
580
+ votings:
581
+ actions:
582
+ confirm_destroy: Êtes-vous sûr(e) ?
583
+ destroy: Supprimer
584
+ new_voting: Nouvel espace de vote
585
+ publish: Publier
586
+ unpublish: Dépublier
587
+ create:
588
+ invalid: Une erreur s'est produite lors de la création de cette élection
589
+ success: Élection créée avec succès
590
+ edit:
591
+ assign_missing_officers: Il reste des bureaux de votes sans président et/ou accesseurs. Veuillez lier ces derniers à partir de la section Bureaux de votes
592
+ update: Mettre à jour
593
+ form:
594
+ slug_help: 'Les identifiants d''URL sont utilisés pour générer les URL qui renvoient vers cette élection. Ils ne contiennent que des lettres, des chiffres et des tirets et doivent commencer par une lettre. Exemple : %{url}'
595
+ title: Titre
596
+ new:
597
+ create: Créer
598
+ title: Nouvelle élection
599
+ publish:
600
+ success: Élection publiée avec succès
601
+ unpublish:
602
+ success: Élection publiée avec succès
603
+ update:
604
+ invalid: Une erreur s'est produite lors de la mise à jour de cette élection
605
+ success: Élection mise à jour avec succès
606
+ admin_log:
607
+ voting:
608
+ create: "%{user_name} a créé l'élection %{resource_name}"
609
+ publish: "%{user_name} a publié l'élection %{resource_name}"
610
+ unpublish: "%{user_name} a annulé la publication de l'élection %{resource_name}"
611
+ content_blocks:
612
+ highlighted_votings:
613
+ name: Élections remarquables
614
+ pages:
615
+ home:
616
+ highlighted_votings:
617
+ active_votings: Votations en cours
618
+ see_all_votings: Voir toutes les votations
619
+ votings_button_title: Lien vers la page Votations où toutes les votations sont affichées
620
+ polling_stations:
621
+ actions:
622
+ confirm_destroy: Êtes-vous sûr(e) ?
623
+ destroy: Supprimer
624
+ edit: Modifier
625
+ new: Nouveau
626
+ title: Actions
627
+ votings:
628
+ count:
629
+ title:
630
+ one: "%{count} élection"
631
+ other: "%{count} élections"
632
+ filters:
633
+ active: Actifs
634
+ all: Tous
635
+ finished: Terminées
636
+ search: Rechercher
637
+ state: Statut
638
+ upcoming: À venir
639
+ filters_small_view:
640
+ close_modal: Fermer la fenêtre de dialogue
641
+ filter: Filtrer
642
+ filter_by: Filtrer par
643
+ unfold: Dérouler
644
+ index:
645
+ no_votings: Aucun vote ne correspond à votre recherche.
646
+ only_finished: À l'heure actuelle, il n'y a pas de votes planifiés, mais vous trouverez ici une liste de tous les votes passées.
647
+ title: Votations
648
+ orders:
649
+ label: 'Trier les votations par:'
650
+ random: Aléatoire
651
+ recent: Les plus récentes
652
+ show:
653
+ dates: Dates
654
+ votings_m:
655
+ badge_name:
656
+ finished: Passées
657
+ ongoing: En cours
658
+ upcoming: À venir
659
+ footer_button_text:
660
+ participate: Participer
661
+ view: Voir
662
+ vote: Voter
663
+ unspecified: Non précisées
664
+ voting_type:
665
+ hybrid: Hybride
666
+ in_person: En présentiel
667
+ online: En ligne
668
+ voting_types_label: Type de vote
259
669
  layouts:
260
670
  decidim:
261
671
  election_votes_header:
262
672
  exit: Quitter
673
+ votings:
674
+ index:
675
+ promoted_votings: Votations remarquables
676
+ promoted_voting:
677
+ more_info: Plus d'informations
678
+ vote: Voter