decidim-elections 0.23.1 → 0.24.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (327) 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 +39 -12
  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 +677 -10
  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 +637 -8
  255. data/config/locales/fr-CA.yml +419 -6
  256. data/config/locales/fr.yml +419 -6
  257. data/config/locales/gl.yml +168 -0
  258. data/config/locales/it.yml +108 -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 +657 -9
  264. data/config/locales/pt.yml +4 -6
  265. data/config/locales/ro-RO.yml +4 -6
  266. data/config/locales/si-LK.yml +1 -0
  267. data/config/locales/sv.yml +11 -6
  268. data/config/locales/sw-KE.yml +1 -0
  269. data/config/locales/tr-TR.yml +366 -0
  270. data/config/locales/zh-CN.yml +4 -6
  271. data/db/migrate/20200915142713_add_questionnaire_to_existing_elections.rb +29 -0
  272. data/db/migrate/20200918153813_create_decidim_elections_trustees_participatory_spaces.rb +13 -0
  273. data/db/migrate/20200918153824_create_decidim_elections_elections_trustees.rb +10 -0
  274. data/db/migrate/20200918153835_create_decidim_elections_trustees.rb +12 -0
  275. data/db/migrate/20201026163334_add_blocked_at_and_bb_status_to_elections.rb +8 -0
  276. data/db/migrate/20201028090110_add_votes_to_decidim_elections_answers.rb +7 -0
  277. data/db/migrate/20201028135614_add_selected_to_decidim_elections_answers.rb +7 -0
  278. data/db/migrate/20201209110653_create_decidim_elections_votes.rb +14 -0
  279. data/db/migrate/20201216091123_add_name_to_trustees.rb +7 -0
  280. data/db/migrate/20210113113818_add_message_id_to_decidim_elections_votes.rb +7 -0
  281. data/db/migrate/20210113120115_create_decidim_elections_votings.rb +20 -0
  282. data/db/migrate/20210114100749_add_published_at_to_decidim_votings_votings.rb +7 -0
  283. data/db/migrate/20210114111850_add_user_to_decidim_elections_votes.rb +7 -0
  284. data/db/migrate/20210120164634_add_promoted_to_voting.rb +7 -0
  285. data/db/migrate/20210125124801_add_voting_type_to_voting_voting.rb +7 -0
  286. data/db/migrate/20210129124956_create_decidim_elections_actions.rb +14 -0
  287. data/db/migrate/20210204132111_add_votings_polling_stations.rb +19 -0
  288. data/db/migrate/20210208090441_add_polling_officers_to_votings.rb +12 -0
  289. data/db/migrate/20210210090738_add_votings_polling_station_references_to_votings_polling_officer.rb +8 -0
  290. data/db/migrate/20210216074707_add_monitoring_committee_member.rb +12 -0
  291. data/db/seeds/city.jpeg +0 -0
  292. data/lib/decidim/api/election_answer_type.rb +23 -0
  293. data/lib/decidim/api/election_question_type.rb +22 -0
  294. data/lib/decidim/api/election_type.rb +27 -0
  295. data/lib/decidim/api/elections_type.rb +32 -0
  296. data/lib/decidim/api/trustee_type.rb +16 -0
  297. data/lib/decidim/api/voting_type.rb +20 -0
  298. data/lib/decidim/elections.rb +19 -2
  299. data/lib/decidim/elections/admin_engine.rb +42 -1
  300. data/lib/decidim/elections/answer_serializer.rb +48 -0
  301. data/lib/decidim/elections/api.rb +11 -0
  302. data/lib/decidim/elections/component.rb +367 -24
  303. data/lib/decidim/elections/engine.rb +8 -1
  304. data/lib/decidim/elections/test/factories.rb +201 -4
  305. data/lib/decidim/elections/trustee_zone.rb +10 -0
  306. data/lib/decidim/elections/trustee_zone_engine.rb +35 -0
  307. data/lib/decidim/elections/version.rb +1 -1
  308. data/lib/decidim/votings.rb +16 -0
  309. data/lib/decidim/votings/admin.rb +10 -0
  310. data/lib/decidim/votings/admin_engine.rb +71 -0
  311. data/lib/decidim/votings/api.rb +7 -0
  312. data/lib/decidim/votings/engine.rb +147 -0
  313. data/lib/decidim/votings/participatory_space.rb +92 -0
  314. data/lib/decidim/votings/polling_officer_zone.rb +10 -0
  315. data/lib/decidim/votings/polling_officer_zone_engine.rb +33 -0
  316. data/lib/decidim/votings/query_extensions.rb +43 -0
  317. data/lib/decidim/votings/test/capybara_polling_officers_picker.rb +49 -0
  318. data/lib/decidim/votings/test/factories.rb +83 -0
  319. data/lib/decidim/votings/voting_serializer.rb +54 -0
  320. data/lib/tasks/decidim_elections.rake +68 -5
  321. metadata +309 -24
  322. data/app/types/decidim/elections/election_answer_type.rb +0 -24
  323. data/app/types/decidim/elections/election_question_type.rb +0 -25
  324. data/app/types/decidim/elections/election_type.rb +0 -27
  325. data/app/types/decidim/elections/elections_type.rb +0 -32
  326. data/config/i18n-tasks.yml +0 -10
  327. 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,37 @@ 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
175
298
  show:
176
- back: Toutes les élections
299
+ action-button:
300
+ change-vote: Changer votre vote
301
+ vote: Commencer à voter
302
+ vote-again: Voter à nouveau
303
+ back: Élections disponibles
304
+ callout:
305
+ already-voted: Vous avez déjà voté pour cette élection. Vous pouvez modifier votre vote ou le vérifier.
306
+ vote-rejected: Il n'a pas été possible de vérifier votre vote. Veuillez recommencer.
177
307
  preview: Aperçu
178
- vote: Voter
308
+ verify:
309
+ already-voted: Déjà voté?
310
+ verify-here: Vérifiez votre vote ici.
311
+ will-verify: Vous pourrez vérifier votre vote une fois l'élection commencée.
179
312
  voting_period_status:
180
313
  finished: Le vote a commencé le %{start_time} et s'est terminé le %{end_time}
181
- ongoing: Le vote se termine le %{end_time}
314
+ ongoing: 'Vote actif jusqu''au : %{end_time}'
182
315
  upcoming: Le vote commence le %{start_time}
316
+ feedback:
317
+ answer:
318
+ invalid: Un problème est survenu lors de l'envoi de votre feedback.
319
+ 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?
320
+ success: Votre avis a bien été envoyé.
183
321
  models:
184
322
  answer:
185
323
  fields:
@@ -195,10 +333,105 @@ fr:
195
333
  answers: Réponses
196
334
  max_selections: Nombre maximum de sélections
197
335
  title: Titre
336
+ trustees_participatory_space:
337
+ fields:
338
+ considered: autorisé
339
+ email: Email
340
+ inactive: inactif
341
+ name: Nom
342
+ notification: Notification envoyée à
343
+ public_key: Clé publique
344
+ status: Statut
198
345
  orders:
199
346
  label: Trier les élections par
200
347
  older: Les plus anciens
201
348
  recent: Les plus récents
349
+ trustee_zone:
350
+ elections:
351
+ backup_modal:
352
+ 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.
353
+ download_election_keys: Télécharger les clés
354
+ download_icon: Icône indiquant une action de téléchargement
355
+ title: Sauvegarder les clés d'élection pour %{election}
356
+ key_ceremony_steps:
357
+ back: Retour
358
+ 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.
359
+ keys:
360
+ create_election: Génération des clés
361
+ key_ceremony:
362
+ joint_election_key: Génération de la clé conjointe
363
+ step_1: Publication des clés
364
+ list:
365
+ status: Statut
366
+ task: Tâche
367
+ 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.
368
+ start: Démarrer
369
+ start_icon: Icône indiquant un bouton de démarrage pour démarrer la génération des clés d'élection
370
+ status:
371
+ completed: Terminé
372
+ pending: En attente
373
+ processing: Traitement en cours
374
+ title: Créer des clés d'élection pour %{election}
375
+ restore_modal:
376
+ 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.
377
+ title: Restaurer les clés d'élection pour %{election}
378
+ upload_election_keys: Télécharger les clés d'élection
379
+ upload_icon: Icône indiquant une action de téléchargement
380
+ tally_steps:
381
+ back: Retour
382
+ 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.
383
+ list:
384
+ status: Statut
385
+ task: Tâche
386
+ 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.
387
+ start: Démarrer
388
+ start_icon: Icône indiquant un bouton de démarrage pour démarrer la génération des clés d'élection
389
+ status:
390
+ completed: Terminé
391
+ pending: En attente
392
+ processing: Traitement en cours
393
+ update:
394
+ error: Le statut de l'élection n'a pas été mis à jour.
395
+ success: 'Le statut de l''élection est : %{status}'
396
+ menu:
397
+ trustee_zone: Espace de garant
398
+ trustees:
399
+ show:
400
+ elections:
401
+ list:
402
+ action_required:
403
+ 'false': 'Non'
404
+ name: Action requise ?
405
+ 'true': Effectuer l'action
406
+ bb_status: Statut
407
+ election: Élection
408
+ voting_period: Période de vote
409
+ no_elections: Il n'y a pas d'élections dans lesquelles vous êtes garant.
410
+ title: Élections
411
+ identification_keys:
412
+ cancel: Annuler
413
+ generate: Générer les clés d'identification
414
+ generate_error: Une erreur s'est produite lors de la génération des clés d'identification.
415
+ generate_legend: Vous devez générer une paire de clés d'identification pour participer aux élections en tant que garant.
416
+ 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.
417
+ generate_legend_2: Copiez le fichier téléchargé sur un périphérique USB fiable
418
+ 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).
419
+ generate_legend_4: Faites une autre copie du fichier sur un appareil externe et conservez-le dans un endroit très sûr.
420
+ submit: Envoyer
421
+ 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.
422
+ submit_title: Soumettre la clé d'identification publique
423
+ title: Clés d'identification du garant
424
+ upload: Téléchargez vos clés d'identification
425
+ upload_error:
426
+ invalid_format: Le fichier téléchargé ne contient pas de clé d'identification.
427
+ invalid_key: Impossible de charger les clés d'identification à partir du fichier téléchargé.
428
+ 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.
429
+ 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.
430
+ 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.
431
+ not_supported_browser_title: Mettre à niveau le navigateur pour agir en tant que garant
432
+ trustee_role_description: Vous avez été assigné à agir en tant que garant lors de certaines des élections mises en place sur cette plateforme.
433
+ update:
434
+ success: Votre clé d'identification publique a bien été stockée.
202
435
  votes:
203
436
  confirm:
204
437
  answer: Répondre
@@ -216,10 +449,13 @@ fr:
216
449
  header: Vote confirmé
217
450
  lead: Votre vote a déjà été exprimé!
218
451
  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
452
  encrypting:
221
453
  header: Encodage du vote...
222
454
  text: Votre vote est en cours de cryptage pour vous assurer que vous pouvez le diffuser de manière anonyme.
455
+ failed:
456
+ header: Le vote a échoué
457
+ lead: Votre vote n'a pas été exprimé!
458
+ text: Une erreur est survenue, veuillez réessayer.
223
459
  header:
224
460
  confirm: Confirmer votre vote
225
461
  confirmed: Vote confirmé
@@ -236,6 +472,17 @@ fr:
236
472
  preview_alert: Ceci est un aperçu de la cabine de vote.
237
473
  question_steps: Question %{current_step} sur %{total_steps}
238
474
  selections: "%{selected} sur %{max_selections}<br> sélections"
475
+ processing:
476
+ header: Traitement du vote...
477
+ text: Votre vote a été reçu et est en cours de traitement. Veuillez patienter.
478
+ update:
479
+ error: Un problème est survenu lors de la mise à jour du statut de vote
480
+ success: Statut du vote mis à jour avec succès
481
+ verify:
482
+ content:
483
+ heading: Vérifiez votre vote
484
+ error:
485
+ header: Vote introuvable !
239
486
  voting_step:
240
487
  back: Retour
241
488
  continue: Suivant
@@ -249,6 +496,25 @@ fr:
249
496
  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
497
  email_subject: L'élection %{resource_title} est maintenant active pour %{participatory_space_title}.
251
498
  notification_title: L'élection de <a href="%{resource_path}">%{resource_title}</a> est maintenant active pour %{participatory_space_title}.
499
+ trustees:
500
+ new_election:
501
+ email_intro: Vous avez été ajouté en tant que garant pour l'élection %{resource_title}.
502
+ email_outro: Vous avez reçu cette notification parce que vous avez été ajouté comme garant de l'élection "%{resource_title}".
503
+ email_subject: Vous avez été ajouté en tant que garant pour l'élection %{resource_title}.
504
+ notification_title: Vous êtes garant de l'élection <a href="%{resource_path}">%{resource_title}</a>.
505
+ new_trustee:
506
+ 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>
507
+ email_outro: Vous avez reçu cette notification parce que vous avez été ajouté comme garant de l'élection "%{resource_name}".
508
+ email_subject: Vous avez été ajouté en tant que garant pour l'élection %{resource_name}.
509
+ notification_title: Vous êtes garant de <a href="%{participatory_space_url}">%{resource_name}</a>.
510
+ help:
511
+ participatory_spaces:
512
+ votings:
513
+ 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"
514
+ 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"
515
+ title: Que sont les élections ?
516
+ menu:
517
+ votings: Élections
252
518
  pages:
253
519
  home:
254
520
  statistics:
@@ -256,7 +522,154 @@ fr:
256
522
  participatory_processes:
257
523
  statistics:
258
524
  elections_count: Élections
525
+ votings:
526
+ admin:
527
+ content_blocks:
528
+ highlighted_votings:
529
+ max_results: Nombre maximum d'éléments à afficher
530
+ index:
531
+ not_published: Non publié
532
+ published: Publié
533
+ menu:
534
+ votings: Élections
535
+ votings_submenu:
536
+ attachment_collections: Dossiers
537
+ attachment_files: Fichiers
538
+ attachments: Pièces jointes
539
+ info: Information
540
+ polling_stations: Bureaux de vote
541
+ models:
542
+ polling_station:
543
+ fields:
544
+ address: Adresse
545
+ title: Titre
546
+ name: Bureau de vote
547
+ voting:
548
+ fields:
549
+ created_at: Créée le
550
+ promoted: Mise en avant
551
+ published: Publié
552
+ title: Titre
553
+ polling_stations:
554
+ create:
555
+ invalid: Une erreur est survenue lors de la création de ce bureau de vote
556
+ success: Le bureau de vote a été créée avec succès
557
+ destroy:
558
+ invalid: Une erreur est survenue lors de la suppression de ce bureau de vote
559
+ success: Le bureau de vote a bien été supprimé
560
+ edit:
561
+ title: Modifier le bureau de vote
562
+ update: Mettre à jour le bureau de vote
563
+ form:
564
+ address_help: 'L''adresse entrée est utilisée par le géocodage pour trouver l''emplacement et afficher la réunion sur la carte. Format accepté : [rue] [code postal] [ville]'
565
+ location_help: 'Lieu : message adressé aux électeurs informant du lieu exact du bureau de vote'
566
+ location_hints_help: 'Indices de localisation : informations complémentaires. Par exemple : l''étage du bâtiment où se trouve le bureau de vote.'
567
+ index:
568
+ title: Bureaux de vote
569
+ new:
570
+ create: Créer
571
+ title: Créer un bureau de vote
572
+ update:
573
+ invalid: Une erreur est survenue lors de la mise à jour de ce bureau de vote
574
+ success: Le bureau de vote a bien été mis à jour
575
+ titles:
576
+ votings: Élections
577
+ votings:
578
+ actions:
579
+ confirm_destroy: Êtes-vous sûr(e) ?
580
+ destroy: Supprimer
581
+ new_voting: Nouvel espace de vote
582
+ publish: Publier
583
+ unpublish: Dépublier
584
+ create:
585
+ invalid: Une erreur s'est produite lors de la création de cette élection
586
+ success: Élection créée avec succès
587
+ edit:
588
+ 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
589
+ update: Mettre à jour
590
+ form:
591
+ 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}'
592
+ title: Titre
593
+ new:
594
+ create: Créer
595
+ title: Nouvelle élection
596
+ publish:
597
+ success: Élection publiée avec succès
598
+ unpublish:
599
+ success: Élection publiée avec succès
600
+ update:
601
+ invalid: Une erreur s'est produite lors de la mise à jour de cette élection
602
+ success: Élection mise à jour avec succès
603
+ admin_log:
604
+ voting:
605
+ create: "%{user_name} a créé l'élection %{resource_name}"
606
+ publish: "%{user_name} a publié l'élection %{resource_name}"
607
+ unpublish: "%{user_name} a annulé la publication de l'élection %{resource_name}"
608
+ content_blocks:
609
+ highlighted_votings:
610
+ name: Élections remarquables
611
+ pages:
612
+ home:
613
+ highlighted_votings:
614
+ active_votings: Votations en cours
615
+ see_all_votings: Voir toutes les votations
616
+ votings_button_title: Lien vers la page Votations où toutes les votations sont affichées
617
+ polling_stations:
618
+ actions:
619
+ confirm_destroy: Êtes-vous sûr(e) ?
620
+ destroy: Supprimer
621
+ edit: Modifier
622
+ new: Nouveau
623
+ title: Actions
624
+ votings:
625
+ count:
626
+ title:
627
+ one: "%{count} élection"
628
+ other: "%{count} élections"
629
+ filters:
630
+ active: Actifs
631
+ all: Tous
632
+ finished: Terminées
633
+ search: Rechercher
634
+ state: Statut
635
+ upcoming: À venir
636
+ filters_small_view:
637
+ close_modal: Fermer la fenêtre de dialogue
638
+ filter: Filtrer
639
+ filter_by: Filtrer par
640
+ unfold: Dérouler
641
+ index:
642
+ no_votings: Aucun vote ne correspond à votre recherche.
643
+ 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.
644
+ title: Votations
645
+ orders:
646
+ label: 'Trier les votations par:'
647
+ random: Aléatoire
648
+ recent: Les plus récentes
649
+ show:
650
+ dates: Dates
651
+ votings_m:
652
+ badge_name:
653
+ finished: Passées
654
+ ongoing: En cours
655
+ upcoming: À venir
656
+ footer_button_text:
657
+ participate: Participer
658
+ view: Voir
659
+ vote: Voter
660
+ unspecified: Non précisées
661
+ voting_type:
662
+ hybrid: Hybride
663
+ in_person: En présentiel
664
+ online: En ligne
665
+ voting_types_label: Type de vote
259
666
  layouts:
260
667
  decidim:
261
668
  election_votes_header:
262
669
  exit: Quitter
670
+ votings:
671
+ index:
672
+ promoted_votings: Votations remarquables
673
+ promoted_voting:
674
+ more_info: Plus d'informations
675
+ vote: Voter