decidim-elections 0.23.3 → 0.24.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) 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 +43 -18
  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 +635 -6
  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 +635 -6
  254. data/config/locales/fr-CA.yml +422 -6
  255. data/config/locales/fr.yml +422 -6
  256. data/config/locales/gl.yml +63 -6
  257. data/config/locales/it.yml +97 -6
  258. data/config/locales/ja.yml +8 -6
  259. data/config/locales/lv.yml +0 -2
  260. data/config/locales/nl.yml +498 -6
  261. data/config/locales/no.yml +0 -5
  262. data/config/locales/pl.yml +579 -9
  263. data/config/locales/pt.yml +0 -6
  264. data/config/locales/ro-RO.yml +0 -6
  265. data/config/locales/sv.yml +7 -6
  266. data/config/locales/tr-TR.yml +114 -6
  267. data/config/locales/zh-CN.yml +0 -6
  268. data/db/migrate/20200915142713_add_questionnaire_to_existing_elections.rb +29 -0
  269. data/db/migrate/20200918153813_create_decidim_elections_trustees_participatory_spaces.rb +13 -0
  270. data/db/migrate/20200918153824_create_decidim_elections_elections_trustees.rb +10 -0
  271. data/db/migrate/20200918153835_create_decidim_elections_trustees.rb +12 -0
  272. data/db/migrate/20201026163334_add_blocked_at_and_bb_status_to_elections.rb +8 -0
  273. data/db/migrate/20201028090110_add_votes_to_decidim_elections_answers.rb +7 -0
  274. data/db/migrate/20201028135614_add_selected_to_decidim_elections_answers.rb +7 -0
  275. data/db/migrate/20201209110653_create_decidim_elections_votes.rb +14 -0
  276. data/db/migrate/20201216091123_add_name_to_trustees.rb +7 -0
  277. data/db/migrate/20210113113818_add_message_id_to_decidim_elections_votes.rb +7 -0
  278. data/db/migrate/20210113120115_create_decidim_elections_votings.rb +20 -0
  279. data/db/migrate/20210114100749_add_published_at_to_decidim_votings_votings.rb +7 -0
  280. data/db/migrate/20210114111850_add_user_to_decidim_elections_votes.rb +7 -0
  281. data/db/migrate/20210120164634_add_promoted_to_voting.rb +7 -0
  282. data/db/migrate/20210125124801_add_voting_type_to_voting_voting.rb +7 -0
  283. data/db/migrate/20210129124956_create_decidim_elections_actions.rb +14 -0
  284. data/db/migrate/20210204132111_add_votings_polling_stations.rb +19 -0
  285. data/db/migrate/20210208090441_add_polling_officers_to_votings.rb +12 -0
  286. data/db/migrate/20210210090738_add_votings_polling_station_references_to_votings_polling_officer.rb +8 -0
  287. data/db/migrate/20210216074707_add_monitoring_committee_member.rb +12 -0
  288. data/db/seeds/city.jpeg +0 -0
  289. data/lib/decidim/api/election_answer_type.rb +23 -0
  290. data/lib/decidim/api/election_question_type.rb +22 -0
  291. data/lib/decidim/api/election_type.rb +27 -0
  292. data/lib/decidim/api/elections_type.rb +32 -0
  293. data/lib/decidim/api/trustee_type.rb +16 -0
  294. data/lib/decidim/api/voting_type.rb +20 -0
  295. data/lib/decidim/elections.rb +19 -2
  296. data/lib/decidim/elections/admin_engine.rb +42 -1
  297. data/lib/decidim/elections/answer_serializer.rb +48 -0
  298. data/lib/decidim/elections/api.rb +11 -0
  299. data/lib/decidim/elections/component.rb +367 -24
  300. data/lib/decidim/elections/engine.rb +8 -1
  301. data/lib/decidim/elections/test/factories.rb +201 -4
  302. data/lib/decidim/elections/trustee_zone.rb +10 -0
  303. data/lib/decidim/elections/trustee_zone_engine.rb +35 -0
  304. data/lib/decidim/elections/version.rb +1 -1
  305. data/lib/decidim/votings.rb +16 -0
  306. data/lib/decidim/votings/admin.rb +10 -0
  307. data/lib/decidim/votings/admin_engine.rb +71 -0
  308. data/lib/decidim/votings/api.rb +7 -0
  309. data/lib/decidim/votings/engine.rb +147 -0
  310. data/lib/decidim/votings/participatory_space.rb +92 -0
  311. data/lib/decidim/votings/polling_officer_zone.rb +10 -0
  312. data/lib/decidim/votings/polling_officer_zone_engine.rb +33 -0
  313. data/lib/decidim/votings/query_extensions.rb +43 -0
  314. data/lib/decidim/votings/test/capybara_polling_officers_picker.rb +49 -0
  315. data/lib/decidim/votings/test/factories.rb +83 -0
  316. data/lib/decidim/votings/voting_serializer.rb +54 -0
  317. data/lib/tasks/decidim_elections.rake +68 -5
  318. metadata +304 -21
  319. data/app/types/decidim/elections/election_answer_type.rb +0 -24
  320. data/app/types/decidim/elections/election_question_type.rb +0 -25
  321. data/app/types/decidim/elections/election_type.rb +0 -27
  322. data/app/types/decidim/elections/elections_type.rb +0 -32
  323. data/config/i18n-tasks.yml +0 -10
  324. data/lib/decidim/elections/bulletin_board_client.rb +0 -35
@@ -16,6 +16,9 @@ fi:
16
16
  max_selections: Valintojen enimmäismäärä
17
17
  min_selections: Ei mikään edellä mainituista
18
18
  title: Otsikko
19
+ voting:
20
+ end_time: Äänestyksen päättymisaika
21
+ start_time: Äänestyksen alkamisaika
19
22
  errors:
20
23
  models:
21
24
  answer:
@@ -26,7 +29,25 @@ fi:
26
29
  attributes:
27
30
  attachment:
28
31
  needs_to_be_reattached: Liitettävä uudestaan
32
+ trustee:
33
+ attributes:
34
+ name:
35
+ cant_be_changed: tietoa ei voi muuttaa
36
+ public_key:
37
+ cant_be_changed: tietoa ei voi muuttaa
29
38
  activerecord:
39
+ errors:
40
+ models:
41
+ decidim/votings/polling_officer:
42
+ attributes:
43
+ presided_polling_station:
44
+ president_and_manager: Äänestysvirkailija on jo äänestyspaikan esimies tai hoitaja
45
+ voting:
46
+ different_organization: Äänestyksen tulee tapahtua sen organisaation alla, johon käyttäjä on rekisteröitynyt
47
+ decidim/votings/polling_station:
48
+ attributes:
49
+ polling_station_president:
50
+ different_voting: Äänestysvirkailijan on oltava samassa äänestyksessä kuin äänestyspaikka
30
51
  models:
31
52
  decidim/elections/answer:
32
53
  one: Vastaus
@@ -37,7 +58,33 @@ fi:
37
58
  decidim/elections/question:
38
59
  one: Kysymys
39
60
  other: Kysymykset
61
+ decidim/votings/polling_officer:
62
+ one: Äänestysvirkailija
63
+ other: Äänestysvirkailijat
64
+ decidim/votings/polling_station:
65
+ one: Äänestyspaikka
66
+ other: Äänestyspaikat
67
+ decidim/votings/voting:
68
+ one: Äänestys
69
+ other: Äänestykset
40
70
  decidim:
71
+ admin:
72
+ filters:
73
+ officers_assigned_eq:
74
+ label: Virkailijat
75
+ values:
76
+ assigned: Määritetty
77
+ unassigned: Ei määritetty
78
+ role_eq:
79
+ label: Rooli
80
+ values:
81
+ manager: Virkailija
82
+ president: Esimies
83
+ unassigned: Ei määritetty
84
+ search_placeholder:
85
+ name_or_email_or_nickname_or_presided_station_title_or_managed_station_title_cont: Hae %{collection} nimellä, sähköpostilla, nimimerkillä tai äänestyspaikan perusteella.
86
+ ? title_or_address_or_manager_name_or_manager_email_or_manager_nickname_or_president_name_or_president_email_or_president_nickname_cont
87
+ : Hae %{collection} otsikolla, osoitteella tai virkailijan nimellä, sähköpostilla tai nimimerkillä.
41
88
  components:
42
89
  elections:
43
90
  actions:
@@ -53,9 +100,11 @@ fi:
53
100
  confirm_destroy: Oletko varma?
54
101
  destroy: Tuhoa
55
102
  edit: Muokkaa
56
- edit_answers: Muokkaa vastauksia
57
- edit_questions: Muokkaa kysymyksiä
103
+ feedback: Äänestäjän palaute
58
104
  import: Tuo ehdotuksia vastauksiin
105
+ manage_answers: Hallitse vastauksia
106
+ manage_questions: Hallinnoi kysymyksiä
107
+ manage_steps: Hallinnoi vaiheita
59
108
  new: Uusi %{name}
60
109
  preview: Esikatsele
61
110
  publish: Julkaise
@@ -78,6 +127,14 @@ fi:
78
127
  new:
79
128
  create: Luo vastaus
80
129
  title: Uusi vastaus
130
+ select:
131
+ disable: Poista vastausvalinta
132
+ enable: Merkitse vastaus valituksi
133
+ invalid: Vastauksen valinta epäonnistui
134
+ success: Vastauksen valinta onnistui
135
+ unselect:
136
+ invalid: Vastauksen valinnan poisto epäonnistui
137
+ success: Vastauksen valinnan poisto onnistui
81
138
  update:
82
139
  invalid: Vastauksen päivitys epäonnistui
83
140
  success: Vastauksen päivitys onnistui
@@ -104,6 +161,9 @@ fi:
104
161
  update:
105
162
  invalid: Vaalin päivitys epäonnistui
106
163
  success: Vaalin päivitys onnistui
164
+ exports:
165
+ elections: Vaalit
166
+ feedback_form_answers: Palautelomakkeen vastaukset
107
167
  models:
108
168
  answer:
109
169
  name: Vastaus
@@ -111,6 +171,8 @@ fi:
111
171
  name: Vaali
112
172
  question:
113
173
  name: Kysymys
174
+ trustee:
175
+ name: Luottamushenkilö
114
176
  proposals_imports:
115
177
  create:
116
178
  invalid: Ehdotusten tuonti vastauksiksi epäonnistui
@@ -119,6 +181,7 @@ fi:
119
181
  create: Tuo ehdotuksia vastauksiksi
120
182
  no_components: Tässä osallistumistilassa ei ole muita ehdotuskomponentteja, joista voisit tuoda ehdotuksia vastauksiksi.
121
183
  select_component: Valitse komponentti
184
+ title: Tuo ehdotuksia
122
185
  questions:
123
186
  create:
124
187
  invalid: Kysymyksen luonti epäonnistui
@@ -137,9 +200,107 @@ fi:
137
200
  update:
138
201
  invalid: Kysymyksen päivitys epäonnistui
139
202
  success: Kysymyksen päivitys onnistui
203
+ steps:
204
+ create_election:
205
+ errors:
206
+ max_selections: Kysymyksillä ei ole <strong>oikeaa arvoa vastausten määrälle</strong>
207
+ minimum_answers: Kysymyksillä on oltava <strong>vähintään kaksi vastausta</strong>.
208
+ minimum_questions: Vaalilla <strong>on oltava vähintään yksi kysymys</strong>.
209
+ published: Vaalia <strong>ei ole julkaistu</strong>.
210
+ time_before: Alkamisaika on <strong>alle 3 tuntia</strong> ennen vaalin alkua.
211
+ trustees_number: Osallistumistilassa <strong>on oltava vähintään %{number} luottamushenkilöä, joilla on julkinen avain</strong>.
212
+ invalid: Vaalin asetusten määrittäminen epäonnistui
213
+ no_trustees: Tähän osallistumistilaan ei ole määritetty luottamushenkilöitä
214
+ not_used_trustee: "(ei käytössä)"
215
+ public_key:
216
+ 'false': vaalilla ei ole <strong>julkista avainta</strong>
217
+ 'true': vaalilla on <strong>julkinen avain</strong>
218
+ requirements:
219
+ max_selections: Kaikilla kysymyksillä on oikea arvo asetukselle <strong>vastausten maksimimäärä</strong>.
220
+ minimum_answers: Jokaisella kysymyksellä on <strong>vähintään 2 vastausta</strong>.
221
+ minimum_questions: Vaalilla on <strong>vähintään 1 kysymys</strong>.
222
+ published: Vaalia <strong>ei ole julkaistu</strong>.
223
+ time_before: Vaalin määritys tulee tapahtua <strong>vähintään %{hours} tuntia</strong> ennen sen alkamista.
224
+ trustees_number: Osallistumistilassa <strong>on oltava vähintään %{number} luottamushenkilöä, joilla on julkinen avain</strong>.
225
+ submit: Määritä vaali
226
+ success: Vaalin lähetys äänestystaululle onnistui
227
+ title: Määritä vaali
228
+ trustees: Vaalin luottamushenkilöt
229
+ created:
230
+ invalid: Avainseremonian käynnistäminen epäonnistui
231
+ submit: Aloita avainseremonia
232
+ success: Avainseremonian aloituspyyntö on onnistuneesti lähetetty äänestystaululle
233
+ title: Vaali luotu
234
+ trustees: Luottamushenkilöt
235
+ key_ceremony:
236
+ title: Avainseremonia
237
+ trustees: Luottamushenkilöt
238
+ key_ceremony_ended:
239
+ errors:
240
+ time_before: Vaali on valmis alkamaan. Vaalin äänestysaika voidaan käynnistää aikaisintaan %{hours} tuntia ennen alkamisaikaa (%{start_time}).
241
+ invalid: Äänestysajan käynnistäminen epäonnistui
242
+ requirements:
243
+ time_before: 'Äänestys alkaa pian. Voit käynnistää äänestysajan manuaalisesti tai se käynnistetään automaattisesti ennen alkamisaikaa: %{start_time}.'
244
+ submit: Käynnistä äänestys
245
+ success: Pyyntösi aloittaa äänestysaika on onnistuneesti lähetetty äänestystaululle
246
+ title: Valmis alkamaan
247
+ processing: Käsitellään...
248
+ results_published:
249
+ title: Tulokset julkaistu
250
+ tally:
251
+ title: Ääntenlaskun prosessi
252
+ trustees: Luottamushenkilöt
253
+ tally_ended:
254
+ submit: Julkaise tulokset
255
+ title: Tulokset laskettu
256
+ vote:
257
+ errors:
258
+ time_after: Vaali on edelleen käynnissä. Sinun on odotettava päättymisaikaan saakka (%{end_time}) päättääksesi äänestyksen.
259
+ invalid: Äänestysajan päättäminen epäonnistui
260
+ requirements:
261
+ time_after: Äänestys on päättynyt. Voit sulkea äänestysajan manuaalisesti tai se suljetaan automaattisesti muutaman minuutin päästä.
262
+ submit: Päätä äänestysaika
263
+ success: Pyyntösi päättää äänestysaika on onnistuneesti lähetetty äänestystaululle
264
+ title: Äänestysaika
265
+ vote_ended:
266
+ invalid: Ääntenlaskennan käynnistäminen epäonnistui
267
+ submit: Aloita ääntenlaskenta
268
+ success: Pyyntösi aloittaa ääntenlaskenta on onnistuneesti lähetetty äänestystaululle
269
+ title: Äänestysaika on päättynyt
270
+ vote_stats:
271
+ no_vote_statistics_yet: Ei vielä äänitilastoja
272
+ title: Äänten tilastot
273
+ voters: Äänestäjät
274
+ votes: Äänet
275
+ trustees_participatory_spaces:
276
+ actions:
277
+ disable: Poista käytöstä
278
+ enable: Harkitse
279
+ create:
280
+ exists: Tällä osallistumistilalla on luottamushenkilö
281
+ invalid: Luottamushenkilön luonti epäonnistui
282
+ success: Luottamushenkilön luonti onnistui
283
+ delete:
284
+ invalid: Luottamushenkilön poisto epäonnistui
285
+ success: Luottamushenkilön poisto onnistui
286
+ form:
287
+ select_user: Valitse käyttäjä
288
+ index:
289
+ title: Luottamushenkilöt
290
+ new:
291
+ create: Luo luottamushenkilö
292
+ title: Uusi luottamushenkilö
293
+ update:
294
+ invalid: Luottamushenkilön %{trustee} päivityksessä tapahtui virhe
295
+ success: Luottamushenkilön %{trustee} päivittäminen onnistui
140
296
  admin_log:
141
297
  election:
298
+ end_vote: "%{user_name} päätti äänestysajan vaalille %{resource_name} äänestystaululla"
142
299
  publish: "%{user_name} julkaisi vaalin %{resource_name}"
300
+ setup: "%{user_name} loi vaalin %{resource_name} äänestystaululle"
301
+ start_key_ceremony: "%{user_name} aloitti avainseremonian vaalille %{resource_name} äänestystaululla"
302
+ start_tally: "%{user_name} aloitti ääntenlaskennan vaalille %{resource_name} äänestystaululla"
303
+ start_vote: "%{user_name} aloitti äänestysajan vaalille %{resource_name} äänestystalululla"
143
304
  unpublish: "%{user_name} lopetti vaalin %{resource_name} julkaisun"
144
305
  election_m:
145
306
  badge_name:
@@ -172,14 +333,40 @@ fi:
172
333
  filter: Rajaa
173
334
  filter_by: Rajaa hakua
174
335
  unfold: Avaa
336
+ preview:
337
+ available_answers: Vastausvaihtoehdot
338
+ description: Nämä kysymykset esitetään äänestyksen yhteydessä
339
+ title: Vaaliin liittyvät kysymykset
340
+ results:
341
+ description: Tässä on äänestyksen tulokset kaikille kysymyksille
342
+ selected: Valittu
343
+ title: Vaalin tulokset
344
+ votes:
345
+ one: "%{count} ääni"
346
+ other: "%{count} ääntä"
175
347
  show:
176
- back: Kaikki vaalit
348
+ action-button:
349
+ change-vote: Muuta ääntäsi
350
+ vote: Aloita äänestys
351
+ vote-again: Äänestä uudelleen
352
+ back: Käynnissä olevat vaalit
353
+ callout:
354
+ already-voted: Olet jo äänestänyt näissä vaaleissa. Voit muuttaa ääntäsi tai tarkastaa sen.
355
+ vote-rejected: Ääntäsi ei voida tarkastaa. Ole hyvä ja lähetä äänesi uudestaan.
177
356
  preview: Esikatsele
178
- vote: Äänestä
357
+ verify:
358
+ already-voted: Oletko jo äänestänyt?
359
+ verify-here: Tarkista äänesi täältä.
360
+ will-verify: Voit tarkistaa äänesi, kun vaalit ovat alkaneet.
179
361
  voting_period_status:
180
362
  finished: Äänestys alkoi %{start_time} ja päättyi %{end_time}
181
- ongoing: Äänestys päättyy %{end_time}
363
+ ongoing: 'Äänestysaika päättyy: %{end_time}'
182
364
  upcoming: Äänestys alkaa %{start_time}
365
+ feedback:
366
+ answer:
367
+ invalid: Palautteen lähettäminen epäonnistui.
368
+ spam_detected: Lomakkeeseen vastaaminen epäonnistui. Saatoit toimia liian nopeasti. Yrittäisitkö uudestaan?
369
+ success: Palautteen lähettäminen onnistui.
183
370
  models:
184
371
  answer:
185
372
  fields:
@@ -187,6 +374,7 @@ fi:
187
374
  title: Otsikko
188
375
  election:
189
376
  fields:
377
+ bb_status: Äänestystaulun tila
190
378
  end_time: Päättymisaika
191
379
  start_time: Alkamisaika
192
380
  title: Otsikko
@@ -195,10 +383,114 @@ fi:
195
383
  answers: Vastaukset
196
384
  max_selections: Valintojen enimmäismäärä
197
385
  title: Otsikko
386
+ trustees_participatory_space:
387
+ fields:
388
+ considered: harkittu
389
+ email: Sähköposti
390
+ inactive: ei käytössä
391
+ name: Nimi
392
+ notification: Ilmoituksen lähetysaika
393
+ public_key: Julkinen avain
394
+ status: Tila
198
395
  orders:
199
396
  label: Järjestä vaalit
200
397
  older: Vanhimmat
201
398
  recent: Uusimmat
399
+ trustee_zone:
400
+ elections:
401
+ backup_modal:
402
+ description: Näitä vaaleja luodaan äänestystaululle. On erityisen tärkeää, että jokainen luottamushenkilö luo varmuuskopion näistä avaimista ja tallentaa sen turvalliseen paikkaan. Tämän jälkeen, prosessi jatkuu.
403
+ download_election_keys: Lataa avaimet
404
+ download_icon: Kuvake, joka ilmaisee lataustoiminnon
405
+ title: Varmuuskopioi vaaliavaimet kohteelle %{election}
406
+ key_ceremony_steps:
407
+ back: Takaisin
408
+ description: Näitä vaaleja luodaan parhaillaan äänestystaululle. Jotta tämä prosessi voidaan saattaa loppuun, sinun tulee osallistua luottamushenkilönä.
409
+ keys:
410
+ create_election: Avainten luonti
411
+ key_ceremony:
412
+ joint_election_key: Yhteisen avaimen luonti
413
+ step_1: Avainten julkaisu
414
+ list:
415
+ status: Tila
416
+ task: Tehtävä
417
+ process_warning: Kun prosessi on käynnistetty, sinun ei tule poistua tältä sivulta ennen kuin prosessi päättyy. Se kestää useita minuutteja, koska kaikkiin luottamushenkilöihin tulee olla yhteydessä, jotta prosessi voidaan päättää.
418
+ start: Aloita
419
+ start_icon: Kuvake, joka ilmaisee aloituspainikkeen avainten luonnille
420
+ status:
421
+ completed: Valmis
422
+ pending: Odottaa
423
+ processing: Käsitellään
424
+ title: Luo vaaliavaimet kohteelle %{election}
425
+ restore_modal:
426
+ description: Äänestystaululle on liitetty tieto sinusta näiden vaalien luottamushenkilönä. Jatkaaksesi tätä prosessia, lataa oma varmuuskopiotiedostosi, joka luotiin edellisen istuntosi yhteydessä.
427
+ title: Palauta vaaliavaimet kohteelle %{election}
428
+ upload_election_keys: Lataa vaaliavaimet
429
+ upload_icon: Kuvake, joka ilmaisee lataustoiminnon
430
+ tally_steps:
431
+ back: Takaisin
432
+ description: Näiden vaalien tuloksia lasketaan parhaillaan äänestystaululla. Jotta tämä prosessi voidaan saattaa loppuun, sinun tulee osallistua luottamushenkilönä.
433
+ keys:
434
+ end_tally: Ääntenlaskennan päättyminen
435
+ tally:
436
+ cast: Ääntenlaskennan tuloksen valmistuminen
437
+ share: Ääntenlaskennan tulosten jakaminen
438
+ list:
439
+ status: Tila
440
+ task: Tehtävä
441
+ process_warning: Kun prosessi on aloitettu, sinun ei tule poistua tältä sivulta ennen kuin prosessi saatetaan päätökseen. Tämä kestää useita minuutteja, koska kaikkien luottamushenkilöiden tulee olla yhteydessä samanaikaisesti, jotta prosessi voidaan päättää.
442
+ start: Aloita
443
+ start_icon: Kuvake, joka ilmaisee aloituspainikkeen avainten luonnille
444
+ status:
445
+ completed: Suoritettu
446
+ pending: Odottaa
447
+ processing: Käsitellään
448
+ title: Ääntenlaskenta vaaleille %{election}
449
+ update:
450
+ error: Vaalin tilaa ei päivitetty.
451
+ success: 'Vaalin tila on: %{status}'
452
+ menu:
453
+ trustee_zone: Luottamushenkilön alue
454
+ no_bulletin_board:
455
+ body: Tätä osiota varten vaaditaan äänestystaulupalvelin. Ota yhteyttä järjestelmänvalvojaan saadaksesi lisätietoja tästä.
456
+ title: Pahoittelut, äänestystalulua ei ole vielä määritetty.
457
+ trustees:
458
+ show:
459
+ elections:
460
+ list:
461
+ action_required:
462
+ 'false': 'Ei'
463
+ name: Tarvitaanko toimenpiteitä?
464
+ 'true': Suorita toimenpide
465
+ bb_status: Tila
466
+ election: Vaali
467
+ voting_period: Äänestysaika
468
+ no_elections: Sellaisia vaaleja ei ole, joissa sinä toimit luottamushenkilönä.
469
+ title: Vaalit
470
+ identification_keys:
471
+ cancel: Peruuta
472
+ generate: Luo tunnistusavaimet
473
+ generate_error: Tunnistusavainten luonti epäonnistui.
474
+ generate_legend: Sinun tulee luoda tunnistusavainten parit toimiaksesi äänestyksen luottamushenkilönä.
475
+ generate_legend_1: Painikkeen painamisen jälkeen sinun tulee ladata tunnistusavainten tiedosto omalle tietokoneellesi.
476
+ generate_legend_2: Kopioi ladattu tiedosto puhtaalle ja tyhjälle USB-tallennuslaitteelle
477
+ generate_legend_3: Tarkasta, että tietokoneellesi ei jää kopiota kyseisestä tiedostosta (tarkasta myös Lataukset-kansio sekä työpöytäsi).
478
+ generate_legend_4: Luo toinen kopio tiedostosta toiselle ulkoiselle laitteelle ja talleta se erittäin turvalliseen paikkaan.
479
+ submit: Lähetä
480
+ submit_legend: Kun olet toteuttanut kaikki edellä esitetyt vaiheet, viimeistele julkisten tunnistusvainten lähetys Decidim-palvelimelle.
481
+ submit_title: Lähetä julkinen tunnistusavain
482
+ title: Luottamushenkilöiden tunnistusavaimet
483
+ upload: Lataa tunnistusavaimet
484
+ upload_error:
485
+ invalid_format: Ladattu tiedosto ei sisällä yhtään tunnistusavainta.
486
+ invalid_key: Ladatussa tiedostossa olevia tunnistusavaimia ei voida ladata.
487
+ invalid_public_key: Ladatun tiedoston tunnistusavaimet eivät vastaa Decidimiin tallennettua julkista tunnistusavainta.
488
+ upload_legend: Julkiset tunnistusavaimet ovat Decidimissä, mutta eivät selaimessasi. Sinun tulee tuoda tunnistusavainten tiedosto omalle tietokoneellesi varmuuskopiosta, jonka tallensit avaimia luotaessa.
489
+ not_supported_browser_description: Näyttää siltä, että käytät selainta, jota ei voi käyttää luottamushenkilönä toimimiseen. Tarkasta, että käytät selaimesi viimeisintä versiota tai yritä käyttää jotain suosituimmista selaimista luottamushenkilön tehtävien suorittamiseksi.
490
+ not_supported_browser_title: Päivitä selaimesi toimiaksesi luottamushenkilönä
491
+ trustee_role_description: Sinulle on annettu luottamushenkilön tehtävä joissain vaaleissa tällä alustalla.
492
+ update:
493
+ success: Julkisen tunnistusavaimesi tallentaminen onnistui.
202
494
  votes:
203
495
  confirm:
204
496
  answer: Vastaa
@@ -211,15 +503,20 @@ fi:
211
503
  question: Kysymys %{count}
212
504
  confirmed:
213
505
  back: Takaisin vaaleihin
506
+ error: Pahoittelut, äänen vahvistaminen epäonnistui. Ole hyvä ja äänestä uudestaan.
214
507
  experience: Minkälainen käyttökokemuksesi oli?
215
508
  feedback: Jätä meille palautetta
216
509
  header: Ääni vahvistettu
217
510
  lead: Olet jo äänestänyt!
218
511
  text: 'Voit tarkastaa, että äänesi on jätetty onnistuneesti äänestyslaatikkoon seuraavalla tunnisteella: <strong class="evote__poll-id">%{e_vote_poll_id}</strong>'
219
- verify_text: Tarkastaaksesi tämän, voit syöttää äänen tunnisteen <a href="evote-verify">äänten vahvistussivulle</a>
512
+ verify_link: Tarkastaaksesi tämän, kopioi äänen tunniste <a href="%{link}">äänten vahvistussivulle</a>
220
513
  encrypting:
221
514
  header: Ääntäsi salataan...
222
515
  text: Äänesi salataan, jotta henkilöllisyyttäsi ei voida selvittää äänesi perusteella.
516
+ failed:
517
+ header: Äänestys epäonnistui
518
+ lead: Ääntäsi ei ole annettu!
519
+ text: Jokin meni pieleen, yritä uudelleen.
223
520
  header:
224
521
  confirm: Vahvista äänesi
225
522
  confirmed: Ääni vahvistettu
@@ -236,6 +533,28 @@ fi:
236
533
  preview_alert: Tämä on äänestyskopin esikatselunäkymä.
237
534
  question_steps: Kysymys %{current_step} / %{total_steps}
238
535
  selections: "Valittu<br>\n%{selected} / %{max_selections}"
536
+ processing:
537
+ header: Käsitellään ääntä...
538
+ text: Äänesi on vastaanotettu ja sitä käsitellään. Odota hetki.
539
+ update:
540
+ error: Äänen tilan päivitys epäonnistui
541
+ success: Äänen tilan päivitys onnistui
542
+ verify:
543
+ content:
544
+ heading: Vahvista äänesi
545
+ info: Tämä tarkastustyökalu varmentaa, että salatulla merkkijonolla löytyvä äänesi on annettu oikein ja se on vaaliuurnassa.
546
+ error:
547
+ header: Ääntä ei löytynyt!
548
+ info: Äänestystunnusta ei löytynyt vaaliuurnasta %{link}, yritä uudelleen.
549
+ form:
550
+ back: Takaisin Decidimiin
551
+ submit: Tarkista
552
+ vote_identifier: 'Äänen tunniste:'
553
+ header:
554
+ title: Vahvista äänesi
555
+ success:
556
+ header: Äänesi löytyi!
557
+ info: Salattu äänesi on vaaliuurnassa %{link}
239
558
  voting_step:
240
559
  back: Takaisin
241
560
  continue: Seuraava
@@ -249,6 +568,38 @@ fi:
249
568
  email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat kohdetta %{participatory_space_title}. Voit lopettaa ilmoitusten vastaanottamisen edellä esitetyn linkin kautta.
250
569
  email_subject: Vaali %{resource_title} on nyt aktiivisena osallistumistilassa %{participatory_space_title}.
251
570
  notification_title: Vaali <a href="%{resource_path}">%{resource_title}</a> on nyt aktiivisena osallistumistilassa %{participatory_space_title}.
571
+ trustees:
572
+ new_election:
573
+ email_intro: Sinut on lisätty luottamushenkilöksi vaaliin %{resource_title}.
574
+ email_outro: Tämä ilmoitus on lähetetty sinulle, koska sinulle on myönnettu luottamushenkilön tehtävä kohteessa %{resource_title}.
575
+ email_subject: Sinut on lisätty luottamushenkilöksi vaaliin %{resource_title}..
576
+ notification_title: Olet luottamushenkilö vaalissa <a href="%{resource_path}">%{resource_title}</a>.
577
+ new_trustee:
578
+ email_intro: Hallinnointikäyttäjä on myöntänyt sinulle luottamushenkilön tehtävän kohteessa %{resource_name}. Sinun tulee luoda julkinen tunnistusavain <a href='%{trustee_zone_url}'>omalla luottamushenkilöiden alueellasi</a>
579
+ email_outro: Tämä ilmoitus on lähetetty sinulle, koska sinulle on myönnettu luottamushenkilön tehtävä kohteessa %{resource_name}.
580
+ email_subject: Olet luottamushenkilö kohteessa %{resource_name}.
581
+ notification_title: Olet luottamushenkilö kohteessa <a href="%{participatory_space_url}">%{resource_name}</a>.
582
+ votes:
583
+ accepted_votes:
584
+ email_intro: 'Äänesi hyväksyttiin! Voit <a href="%{verify_url}">tarkastaa äänesi täältä</a> käyttäen äänestystunnustasi: %{encrypted_vote_hash}.'
585
+ email_outro: Tämä ilmoitus on lähetetty sinulle, koska äänestit vaaleissa %{resource_name}.
586
+ email_subject: Äänesi vaaleihin %{resource_name} hyväksyttiin.
587
+ notification_title: 'Äänesi hyväksyttiin. Voit <a href="%{verify_url}">tarkastaa äänesi täältä</a> käyttäen äänestystunnustasi: %{encrypted_vote_hash}'
588
+ votings:
589
+ polling_officers:
590
+ polling_station_assigned:
591
+ email_intro: Sinulle on määritetty rooli %{role} äänestyspaikalla %{polling_station_name} osiossa <a href="%{resource_url}">%{resource_title}</a>. Voit hallinnoida äänestyspaikkaa <a href="%{polling_officer_zone_url}">äänestysvirkailijoille määritetyssä osiossa</a>.
592
+ email_outro: Tämä ilmoitus on lähetetty sinulle, koska sinulle on myönnettu rooli %{role} äänestyspaikalle %{polling_station_name}.
593
+ email_subject: Roolisi äänestyspaikalla %{polling_station_name} on %{role}.
594
+ notification_title: Roolisi äänestyspaikan %{polling_station_name} äänestyksessä <a href="%{resource_path}">%{resource_title}</a> on %{role}.
595
+ help:
596
+ participatory_spaces:
597
+ votings:
598
+ contextual: "<p><strong>Äänestys</strong> on osallistumistila, jossa voit kysyä selkeitä kysymyksiä kaikilta organisaation ihmisiltä, päättää äänestykseen osallistumisesta sekä kannustaa ja järjestää keskusteluita tietyn lopputuloksen puolesta tai sitä vastaan. Kun äänestysaika alkaa, voit äänestää ja julkaista äänestystuloksen.</p> <p>Esimerkkejä: äänestyksiä voidaan järjestää lähes mistä tahansa organisaatioon vaikuttavasta asiasta, kuten nimen tai logon muuttamisesta, päättämisestä laajempaan organisaatioon liittymisestä, strategisen suunnitelman tai työryhmän päätöksen hyväksymisestä tai hylkäämisestä, tai tarvittavien mandaattien määrän päättämisestä.</p>\n"
599
+ page: "<p><strong>Äänestys</strong> on osallistumistila, jossa voit kysyä selkeitä kysymyksiä kaikilta organisaation ihmisiltä, päättää äänestykseen osallistumisesta sekä kannustaa ja järjestää keskusteluita tietyn lopputuloksen puolesta tai sitä vastaan. Kun äänestysaika alkaa, voit äänestää ja julkaista äänestystuloksen.</p> <p>Esimerkkejä: äänestyksiä voidaan järjestää lähes mistä tahansa organisaatioon vaikuttavasta asiasta, kuten nimen tai logon muuttamisesta, päättämisestä laajempaan organisaatioon liittymisestä, strategisen suunnitelman tai työryhmän päätöksen hyväksymisestä tai hylkäämisestä, tai tarvittavien mandaattien määrän päättämisestä.</p>\n"
600
+ title: Mitä ovat äänestykset?
601
+ menu:
602
+ votings: Äänestykset
252
603
  pages:
253
604
  home:
254
605
  statistics:
@@ -256,7 +607,285 @@ fi:
256
607
  participatory_processes:
257
608
  statistics:
258
609
  elections_count: Vaalia
610
+ votings:
611
+ admin:
612
+ content_blocks:
613
+ highlighted_votings:
614
+ max_results: Näytettävien elementtien enimmäismäärä
615
+ landing_page:
616
+ attachments_and_folders:
617
+ name: Äänestyksen liitteet ja kansiot
618
+ description:
619
+ name: Äänestyksen kuvaus
620
+ elections:
621
+ name: Äänestyksen vaalit
622
+ header:
623
+ name: Äänestyksen otsikko
624
+ html_block_1:
625
+ name: Äänestyksen HTML-lohko 1
626
+ html_block_2:
627
+ name: Äänestyksen HTML-lohko 2
628
+ html_block_3:
629
+ name: Äänestyksen HTML-lohko 3
630
+ metrics:
631
+ name: Äänestyksen tilastomittarit
632
+ polling_stations:
633
+ name: Äänestyspaikat
634
+ stats:
635
+ name: Äänestyksen tilastot
636
+ timeline:
637
+ name: Äänestyksen aikajana
638
+ index:
639
+ not_published: Julkaisematon
640
+ published: Julkaistu
641
+ landing_page:
642
+ content_blocks:
643
+ edit:
644
+ update: Päivitä
645
+ edit:
646
+ active_content_blocks: Aktiiviset sisältölohkot
647
+ inactive_content_blocks: Käytöstä poistetut sisältölohkot
648
+ menu:
649
+ votings: Äänestykset
650
+ votings_submenu:
651
+ attachment_collections: Kansiot
652
+ attachment_files: Tiedostot
653
+ attachments: Liitteet
654
+ components: Komponentit
655
+ info: Tiedot
656
+ landing_page: Laskeutumissivu
657
+ monitoring_committee_members: Tarkkailukomitea
658
+ polling_officers: Äänestysvirkailijat
659
+ polling_stations: Äänestyspaikat
660
+ models:
661
+ monitoring_committee_member:
662
+ fields:
663
+ email: Sähköposti
664
+ name: Nimi
665
+ name: Tarkkailukomitean jäsen
666
+ polling_officer:
667
+ fields:
668
+ email: Sähköposti
669
+ name: Nimi
670
+ polling_station: Äänestyspaikka (rooli)
671
+ name: Äänestysvirkailija
672
+ polling_station:
673
+ fields:
674
+ address: Osoite
675
+ polling_station_managers: Virkailijat
676
+ polling_station_president: Esimies
677
+ title: Otsikko
678
+ name: Äänestyspaikka
679
+ voting:
680
+ fields:
681
+ created_at: Luonnin ajankohta
682
+ promoted: Korostettu
683
+ published: Julkaistu
684
+ title: Otsikko
685
+ monitoring_committee_members:
686
+ create:
687
+ invalid: Tarkkailukomitean jäsenen luonti epäonnistui
688
+ success: Tarkkailukomitean jäsenen luonti onnistui
689
+ destroy:
690
+ invalid: Tarkkailukomitean jäsenen poistaminen epäonnistui
691
+ success: Tarkkailukomitean jäsenen poistaminen onnistui
692
+ form:
693
+ existing_user: Olemassa oleva osallistuja
694
+ non_user: Kutsu uusi osallistuja
695
+ select_user: Etsi nimellä, sähköpostilla tai nimimerkillä
696
+ user_type: Osallistujan tyyppi
697
+ index:
698
+ title: Tarkkailukomitea
699
+ new:
700
+ create: Luo
701
+ title: Luo tarkkailukomitean jäsen
702
+ polling_officers:
703
+ create:
704
+ invalid: Äänestysvirkailijan luonti epäonnistui
705
+ success: Äänestysvirkailijan luonti onnistui
706
+ destroy:
707
+ invalid: Äänestysvirkailijan poistaminen epäonnistui
708
+ success: Äänestysvirkailijan poistaminen onnistui
709
+ form:
710
+ existing_user: Olemassa oleva osallistuja
711
+ non_user: Kutsu uusi osallistuja
712
+ select_user: Etsi nimellä, sähköpostilla tai nimimerkillä
713
+ user_type: Osallistujan tyyppi
714
+ index:
715
+ role_manager: virkailija
716
+ role_president: esimies
717
+ title: Äänestysvirkailijat
718
+ new:
719
+ create: Luo
720
+ title: Luo äänestysvirkailija
721
+ polling_officers_picker:
722
+ choose_polling_officers: Valitse äänestysvirkailijat
723
+ close: Sulje
724
+ more_polling_officers: Virkailijoita on vielä %{number} kpl lisää. Muuta hakuehtoja löytääksesi ne.
725
+ no_polling_officers: Yksikään äänestysvirkailija ei vastaa hakuehtojasi tai yhtään äänestysvirkailijaa ei vielä ole määritetty.
726
+ polling_stations:
727
+ create:
728
+ invalid: Äänestyspaikan luonti epäonnistui
729
+ success: Äänestyspaikan luonti onnistui
730
+ destroy:
731
+ invalid: Äänestyspaikan poistaminen epäonnistui
732
+ success: Äänestyspaikan poistaminen onnistui
733
+ edit:
734
+ title: Muokkaa äänestyspaikkaa
735
+ update: Päivitä äänestyspaikkaa
736
+ form:
737
+ address_help: 'Osoite: käytetään geokoodauksessa sijainnin löytämiseen'
738
+ location_help: 'Sijaintitieto: äänestäjille näytettävä viesti, jolla selvennetään äänestyspaikan tarkkaa sijaintia'
739
+ location_hints_help: 'Sijainnin lisätiedot: sijaintia tarkentava lisätieto. Esimerkiksi: äänestyspaikan kerros rakennuksessa.'
740
+ polling_station_managers_help: 'Äänestyspaikan virkailijat: ne virkailijat, jotka hallinnoivat äänestyspaikkaa. Tarkasta, että virkailijat on jo luotu Äänestysvirkailijat-osiossa ja heitä ei ole määrätty mihinkään muuhun äänestyspaikkaan'
741
+ polling_station_president_help: 'Äänestyspaikan esimies: se virkailija, joka toimii äänestyspaikan esimiehenä. Tarkasta, että virkailija on jo luotu Äänestysvirkailijat-osiossa ja häntä ei ole määrätty mihinkään muuhun äänestyspaikkaan'
742
+ select_president: Valitse äänestysvirkailija äänestyspaikan esimieheksi
743
+ index:
744
+ title: Äänestyspaikat
745
+ new:
746
+ create: Luo
747
+ title: Luo äänestyspaikka
748
+ update:
749
+ invalid: Äänestyspaikan luonti epäonnistui
750
+ success: Äänestyspaikan päivitys onnistui
751
+ titles:
752
+ votings: Äänestykset
753
+ votings:
754
+ actions:
755
+ confirm_destroy: Oletko varma?
756
+ destroy: Tuhoa
757
+ new_voting: Uusi äänestystila
758
+ publish: Julkaise
759
+ unpublish: Lopeta julkaisu
760
+ create:
761
+ invalid: Äänestyksen luonti epäonnistui
762
+ success: Äänestyksen luonti onnistui
763
+ edit:
764
+ add_election_component: Tälle äänestykselle ei ole määritetty vaalia. Lisää vaali Komponentit-osiosta
765
+ assign_missing_officers: Joillekin äänestyspaikoille ei ole määrätty esimiehiä ja/tai virkailijoita. Määritä virkailijat Äänestyspaikat-osiosta
766
+ update: Päivitä
767
+ form:
768
+ select_a_voting_type: Valitse äänestystapa
769
+ slug_help: 'URL-tunnisteita käytetään luomaan URL-osoitteita, jotka viittaavat tähän äänestykseen. Hyväksyy vain kirjaimet, numerot ja viivat. Kirjaimen on oltava ensimmäinen merkki tunnisteessa. Esimerkki: %{url}'
770
+ title: Otsikko
771
+ voting_type:
772
+ hybrid: Yhdistetty äänestystapa
773
+ in_person: Fyysinen äänestys
774
+ online: Verkkoäänestys
775
+ new:
776
+ create: Luo
777
+ title: Uusi äänestys
778
+ publish:
779
+ success: Äänestyksen julkaisu onnistui
780
+ unpublish:
781
+ success: Äänestyksen julkaisun lopetus onnistui
782
+ update:
783
+ invalid: Äänestyksen päivitys epäonnistui
784
+ success: Äänestyksen päivitys onnistui
785
+ admin_log:
786
+ voting:
787
+ create: "%{user_name} loi äänestyksen %{resource_name}"
788
+ publish: "%{user_name} julkaisi äänestyksen %{resource_name}"
789
+ unpublish: "%{user_name} lopetti äänestyksen %{resource_name} julkaisun"
790
+ content_blocks:
791
+ highlighted_votings:
792
+ name: Korostetut äänestykset
793
+ monitoring_committee_members:
794
+ actions:
795
+ confirm_destroy: Oletko varma?
796
+ destroy: Poista
797
+ new: Uusi jäsen
798
+ title: Toiminnot
799
+ pages:
800
+ home:
801
+ highlighted_votings:
802
+ active_votings: Aktiiviset äänestykset
803
+ see_all_votings: Näytä kaikki äänestykset
804
+ votings_button_title: Linkki kaikkien äänestysten sivulle
805
+ polling_officer_zone:
806
+ menu:
807
+ polling_officer_zone: Äänestysvirkailijoiden alue
808
+ polling_officers:
809
+ show:
810
+ actions:
811
+ count_votes: Laske vaaliuurnan äänet
812
+ identify_person: Tunnista ja varmenna henkilö
813
+ polling_officer_role_description: Sinulle on annettu tehtäväksi toimia äänestyspaikan virkailijana (esimiehenä tai muuna virkailijana) tällä alustalla järjestettävissä vaaleissa.
814
+ polling_stations:
815
+ list:
816
+ actions: Toiminnot
817
+ address: Osoite
818
+ name: Nimi
819
+ role: Roolisi
820
+ voting: Äänestys
821
+ no_polling_stations: Sinua ei ole vielä liitetty millekään äänestyspaikalle.
822
+ title: Äänestyspaikat
823
+ polling_officers:
824
+ actions:
825
+ confirm_destroy: Oletko varma?
826
+ destroy: Poista
827
+ new: Uusi
828
+ title: Toiminnot
829
+ roles:
830
+ manager: Virkailija
831
+ president: Esimies
832
+ unassigned: Ei määritetty
833
+ polling_stations:
834
+ actions:
835
+ confirm_destroy: Oletko varma?
836
+ destroy: Poista
837
+ edit: Muokkaa
838
+ new: Uusi
839
+ title: Toiminnot
840
+ votings:
841
+ count:
842
+ title:
843
+ one: "%{count} äänestys"
844
+ other: "%{count} äänestystä"
845
+ filters:
846
+ active: Aktiiviset
847
+ all: Kaikki
848
+ finished: Päättyneet
849
+ search: Hae
850
+ state: Tila
851
+ upcoming: Tulevat
852
+ filters_small_view:
853
+ close_modal: Sulje ikkuna
854
+ filter: Suodata
855
+ filter_by: Suodata
856
+ unfold: Avaa
857
+ index:
858
+ no_votings: Hakuehdoillasi ei löytynyt yhtään äänestystä.
859
+ only_finished: Tällä hetkellä ei ole yhtään ajastettua äänestystä, mutta täältä näet kaikki päättyneet äänestykset.
860
+ title: Äänestykset
861
+ orders:
862
+ label: 'Järjestä äänestykset:'
863
+ random: Satunnainen
864
+ recent: Viimeisimmät
865
+ show:
866
+ dates: Päivämäärät
867
+ votings_m:
868
+ badge_name:
869
+ finished: Päättynyt
870
+ ongoing: Käynnissä
871
+ upcoming: Tulossa
872
+ footer_button_text:
873
+ participate: Osallistu
874
+ view: Näytä
875
+ vote: Äänestä
876
+ unspecified: Ei määritetty
877
+ voting_type:
878
+ hybrid: Yhdistetty äänestystapa
879
+ in_person: Fyysinen äänestys
880
+ online: Verkkoäänestys
881
+ voting_types_label: Äänestystapa
259
882
  layouts:
260
883
  decidim:
261
884
  election_votes_header:
262
885
  exit: Poistu
886
+ votings:
887
+ index:
888
+ promoted_votings: Korostetut äänestykset
889
+ promoted_voting:
890
+ more_info: Lisätiedot
891
+ vote: Äänestä