decidim-elections 0.23.2 → 0.24.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (326) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -0
  3. data/app/assets/config/admin/decidim_votings_manifest.css +0 -0
  4. data/app/assets/config/admin/decidim_votings_manifest.js +4 -0
  5. data/app/assets/config/decidim_elections_manifest.css +3 -0
  6. data/app/assets/config/decidim_elections_manifest.js +6 -0
  7. data/app/assets/config/decidim_votings_manifest.css +3 -0
  8. data/app/assets/config/decidim_votings_manifest.js +0 -0
  9. data/app/assets/images/decidim/votings/icon.svg +1 -0
  10. data/app/assets/javascripts/decidim/elections/admin/pending_action.js.es6 +16 -0
  11. data/app/assets/javascripts/decidim/elections/admin/vote_statistics.js.es6 +11 -0
  12. data/app/assets/javascripts/decidim/elections/trustee_zone.js.es6 +54 -0
  13. data/app/assets/javascripts/decidim/elections/trustee_zone/key_ceremony.js.es6 +126 -0
  14. data/app/assets/javascripts/decidim/elections/trustee_zone/tally.js.es6 +104 -0
  15. data/app/assets/javascripts/decidim/elections/vote.js.es6 +107 -160
  16. data/app/assets/javascripts/decidim/elections/vote_questions.component.js.es6 +129 -0
  17. data/app/assets/javascripts/decidim/elections/vote_verify.js.es6 +71 -0
  18. data/app/assets/javascripts/decidim/votings/admin/monitoring_committee_members_form.js.es6 +35 -0
  19. data/app/assets/javascripts/decidim/votings/admin/polling_officers_form.js.es6 +35 -0
  20. data/app/assets/javascripts/decidim/votings/admin/polling_officers_picker.js.es6 +35 -0
  21. data/app/assets/javascripts/decidim/votings/admin/polling_stations_form.js.es6 +5 -0
  22. data/app/assets/stylesheets/decidim/elections/elections.scss +0 -4
  23. data/app/assets/stylesheets/decidim/elections/focus/_accordion.scss +36 -0
  24. data/app/assets/stylesheets/decidim/elections/focus/_evote.scss +58 -0
  25. data/app/assets/stylesheets/decidim/elections/trustee_zone.scss +24 -0
  26. data/app/assets/stylesheets/decidim/votings/votings.scss +1 -0
  27. data/app/assets/stylesheets/decidim/votings/votings/_votings-header.scss +99 -0
  28. data/app/assets/stylesheets/decidim/votings/votings/_votings-home-banner.scss +11 -0
  29. data/app/cells/decidim/votings/content_block_cell.rb +17 -0
  30. data/app/cells/decidim/votings/content_blocks/highlighted_votings/show.erb +30 -0
  31. data/app/cells/decidim/votings/content_blocks/highlighted_votings_cell.rb +33 -0
  32. data/app/cells/decidim/votings/content_blocks/highlighted_votings_settings_form/show.erb +3 -0
  33. data/app/cells/decidim/votings/content_blocks/highlighted_votings_settings_form_cell.rb +19 -0
  34. data/app/cells/decidim/votings/content_blocks/landing_page/attachments_and_folders_cell.rb +15 -0
  35. data/app/cells/decidim/votings/content_blocks/landing_page/description_cell.rb +15 -0
  36. data/app/cells/decidim/votings/content_blocks/landing_page/elections_cell.rb +15 -0
  37. data/app/cells/decidim/votings/content_blocks/landing_page/header_cell.rb +15 -0
  38. data/app/cells/decidim/votings/content_blocks/landing_page/metrics_cell.rb +15 -0
  39. data/app/cells/decidim/votings/content_blocks/landing_page/polling_stations_cell.rb +15 -0
  40. data/app/cells/decidim/votings/content_blocks/landing_page/stats_cell.rb +15 -0
  41. data/app/cells/decidim/votings/content_blocks/landing_page/timeline_cell.rb +15 -0
  42. data/app/cells/decidim/votings/polling_officers/polling_officers_picker/polling_officers.erb +12 -0
  43. data/app/cells/decidim/votings/polling_officers/polling_officers_picker/show.erb +14 -0
  44. data/app/cells/decidim/votings/polling_officers/polling_officers_picker_cell.rb +73 -0
  45. data/app/cells/decidim/votings/voting_cell.rb +19 -0
  46. data/app/cells/decidim/votings/voting_m/data.erb +21 -0
  47. data/app/cells/decidim/votings/voting_m/footer.erb +5 -0
  48. data/app/cells/decidim/votings/voting_m_cell.rb +94 -0
  49. data/app/commands/decidim/elections/admin/add_user_as_trustee.rb +81 -0
  50. data/app/commands/decidim/elections/admin/create_election.rb +2 -1
  51. data/app/commands/decidim/elections/admin/end_vote.rb +63 -0
  52. data/app/commands/decidim/elections/admin/publish_results.rb +59 -0
  53. data/app/commands/decidim/elections/admin/remove_trustee_from_participatory_space.rb +37 -0
  54. data/app/commands/decidim/elections/admin/setup_election.rb +160 -0
  55. data/app/commands/decidim/elections/admin/start_key_ceremony.rb +63 -0
  56. data/app/commands/decidim/elections/admin/start_tally.rb +63 -0
  57. data/app/commands/decidim/elections/admin/start_vote.rb +63 -0
  58. data/app/commands/decidim/elections/admin/update_action_status.rb +47 -0
  59. data/app/commands/decidim/elections/admin/update_answer_selection.rb +41 -0
  60. data/app/commands/decidim/elections/admin/update_trustee_participatory_space.rb +40 -0
  61. data/app/commands/decidim/elections/trustee_zone/update_election_bulletin_board_status.rb +39 -0
  62. data/app/commands/decidim/elections/trustee_zone/update_trustee.rb +41 -0
  63. data/app/commands/decidim/elections/voter/cast_vote.rb +59 -0
  64. data/app/commands/decidim/elections/voter/update_vote_status.rb +70 -0
  65. data/app/commands/decidim/votings/admin/create_monitoring_committee_member.rb +99 -0
  66. data/app/commands/decidim/votings/admin/create_polling_officer.rb +99 -0
  67. data/app/commands/decidim/votings/admin/create_polling_station.rb +59 -0
  68. data/app/commands/decidim/votings/admin/create_voting.rb +59 -0
  69. data/app/commands/decidim/votings/admin/destroy_monitoring_committee_member.rb +51 -0
  70. data/app/commands/decidim/votings/admin/destroy_polling_officer.rb +52 -0
  71. data/app/commands/decidim/votings/admin/destroy_polling_station.rb +40 -0
  72. data/app/commands/decidim/votings/admin/manage_polling_station.rb +64 -0
  73. data/app/commands/decidim/votings/admin/publish_voting.rb +40 -0
  74. data/app/commands/decidim/votings/admin/unpublish_voting.rb +40 -0
  75. data/app/commands/decidim/votings/admin/update_polling_station.rb +50 -0
  76. data/app/commands/decidim/votings/admin/update_voting.rb +85 -0
  77. data/app/constraints/decidim/votings/current_component.rb +28 -0
  78. data/app/constraints/decidim/votings/current_voting.rb +43 -0
  79. data/app/controllers/concerns/decidim/elections/orderable.rb +2 -2
  80. data/app/controllers/concerns/decidim/polling_officers/admin/filterable.rb +58 -0
  81. data/app/controllers/concerns/decidim/polling_stations/admin/filterable.rb +57 -0
  82. data/app/controllers/concerns/decidim/votings/admin/filterable.rb +27 -0
  83. data/app/controllers/concerns/decidim/votings/admin/voting_admin.rb +48 -0
  84. data/app/controllers/concerns/decidim/votings/needs_voting.rb +44 -0
  85. data/app/controllers/concerns/decidim/votings/orderable.rb +32 -0
  86. data/app/controllers/decidim/elections/admin/answers_controller.rb +32 -0
  87. data/app/controllers/decidim/elections/admin/elections_controller.rb +2 -2
  88. data/app/controllers/decidim/elections/admin/feedback_forms_controller.rb +55 -0
  89. data/app/controllers/decidim/elections/admin/steps_controller.rb +96 -0
  90. data/app/controllers/decidim/elections/admin/trustees_participatory_spaces_controller.rb +89 -0
  91. data/app/controllers/decidim/elections/elections_controller.rb +5 -1
  92. data/app/controllers/decidim/elections/feedbacks_controller.rb +38 -0
  93. data/app/controllers/decidim/elections/trustee_zone/application_controller.rb +45 -0
  94. data/app/controllers/decidim/elections/trustee_zone/elections_controller.rb +35 -0
  95. data/app/controllers/decidim/elections/trustee_zone/trustees_controller.rb +36 -0
  96. data/app/controllers/decidim/elections/votes_controller.rb +54 -2
  97. data/app/controllers/decidim/votings/admin/application_controller.rb +26 -0
  98. data/app/controllers/decidim/votings/admin/component_permissions_controller.rb +13 -0
  99. data/app/controllers/decidim/votings/admin/components_controller.rb +15 -0
  100. data/app/controllers/decidim/votings/admin/monitoring_committee_members_controller.rb +62 -0
  101. data/app/controllers/decidim/votings/admin/polling_officers_controller.rb +66 -0
  102. data/app/controllers/decidim/votings/admin/polling_stations_controller.rb +92 -0
  103. data/app/controllers/decidim/votings/admin/voting_attachment_collections_controller.rb +22 -0
  104. data/app/controllers/decidim/votings/admin/voting_attachments_controller.rb +21 -0
  105. data/app/controllers/decidim/votings/admin/votings_controller.rb +124 -0
  106. data/app/controllers/decidim/votings/admin/votings_landing_page_content_blocks_controller.rb +44 -0
  107. data/app/controllers/decidim/votings/admin/votings_landing_page_controller.rb +46 -0
  108. data/app/controllers/decidim/votings/application_controller.rb +26 -0
  109. data/app/controllers/decidim/votings/polling_officer_zone/application_controller.rb +33 -0
  110. data/app/controllers/decidim/votings/polling_officer_zone/polling_officers_controller.rb +17 -0
  111. data/app/controllers/decidim/votings/polling_officer_zone/polling_stations_controller.rb +22 -0
  112. data/app/controllers/decidim/votings/votings_controller.rb +98 -0
  113. data/app/events/decidim/elections/trustees/notify_new_trustee_event.rb +28 -0
  114. data/app/events/decidim/elections/trustees/notify_trustee_new_election_event.rb +14 -0
  115. data/app/events/decidim/elections/votes/vote_accepted_event.rb +24 -0
  116. data/app/events/decidim/votings/polling_officers/polling_station_assigned_event.rb +44 -0
  117. data/app/forms/decidim/elections/admin/action_form.rb +34 -0
  118. data/app/forms/decidim/elections/admin/answer_form.rb +3 -2
  119. data/app/forms/decidim/elections/admin/election_form.rb +3 -2
  120. data/app/forms/decidim/elections/admin/setup_form.rb +79 -0
  121. data/app/forms/decidim/elections/admin/trustees_participatory_space_form.rb +22 -0
  122. data/app/forms/decidim/elections/admin/vote_period_form.rb +37 -0
  123. data/app/forms/decidim/elections/ballot/verify_vote_form.rb +29 -0
  124. data/app/forms/decidim/elections/trustee_zone/trustee_form.rb +26 -0
  125. data/app/forms/decidim/elections/voter/encrypted_vote_form.rb +49 -0
  126. data/app/forms/decidim/votings/admin/monitoring_committee_member_form.rb +27 -0
  127. data/app/forms/decidim/votings/admin/polling_officer_form.rb +27 -0
  128. data/app/forms/decidim/votings/admin/polling_station_form.rb +58 -0
  129. data/app/forms/decidim/votings/admin/voting_form.rb +71 -0
  130. data/app/helpers/decidim/elections/admin/answers_helper.rb +19 -0
  131. data/app/helpers/decidim/elections/admin/steps_helper.rb +23 -0
  132. data/app/helpers/decidim/elections/admin/trustees_participatory_spaces_helper.rb +31 -0
  133. data/app/helpers/decidim/elections/elections_helper.rb +29 -0
  134. data/app/helpers/decidim/votings/admin/polling_officers_picker_helper.rb +29 -0
  135. data/app/helpers/decidim/votings/votings_helper.rb +20 -0
  136. data/app/models/decidim/elections/action.rb +13 -0
  137. data/app/models/decidim/elections/election.rb +54 -3
  138. data/app/models/decidim/elections/elections_trustee.rb +11 -0
  139. data/app/models/decidim/elections/question.rb +19 -0
  140. data/app/models/decidim/elections/trustee.rb +26 -0
  141. data/app/models/decidim/elections/trustees_participatory_space.rb +13 -0
  142. data/app/models/decidim/elections/vote.rb +15 -0
  143. data/app/models/decidim/votings/monitoring_committee_member.rb +24 -0
  144. data/app/models/decidim/votings/polling_officer.rb +76 -0
  145. data/app/models/decidim/votings/polling_station.rb +64 -0
  146. data/app/models/decidim/votings/voting.rb +138 -0
  147. data/app/permissions/decidim/elections/admin/permissions.rb +50 -10
  148. data/app/permissions/decidim/elections/permissions.rb +20 -2
  149. data/app/permissions/decidim/elections/trustee_zone/permissions.rb +32 -0
  150. data/app/permissions/decidim/votings/admin/permissions.rb +127 -0
  151. data/app/permissions/decidim/votings/permissions.rb +40 -0
  152. data/app/permissions/decidim/votings/polling_officer_zone/permissions.rb +32 -0
  153. data/app/presenters/decidim/elections/admin_log/election_presenter.rb +1 -1
  154. data/app/presenters/decidim/elections/trustee_presenter.rb +24 -0
  155. data/app/presenters/decidim/votings/admin_log/voting_presenter.rb +45 -0
  156. data/app/presenters/decidim/votings/polling_station_presenter.rb +27 -0
  157. data/app/presenters/decidim/votings/voting_presenter.rb +36 -0
  158. data/app/queries/decidim/elections/admin/pending_actions.rb +20 -0
  159. data/app/queries/decidim/elections/admin/votes_for_statistics.rb +24 -0
  160. data/app/queries/decidim/elections/elections_finished_to_end.rb +19 -0
  161. data/app/queries/decidim/elections/elections_ready_to_start.rb +25 -0
  162. data/app/queries/decidim/elections/trustees/by_participatory_space.rb +24 -0
  163. data/app/queries/decidim/elections/trustees/by_participatory_space_trustee_ids.rb +24 -0
  164. data/app/queries/decidim/elections/votes/election_votes.rb +19 -0
  165. data/app/queries/decidim/elections/votes/pending_votes.rb +20 -0
  166. data/app/queries/decidim/elections/votes/user_election_last_vote.rb +26 -0
  167. data/app/queries/decidim/elections/votes/user_votes.rb +19 -0
  168. data/app/queries/decidim/votings/admin/admin_users.rb +39 -0
  169. data/app/queries/decidim/votings/admin/polling_officers_join_polling_stations.rb +33 -0
  170. data/app/queries/decidim/votings/admin/polling_officers_join_polling_stations_and_user.rb +34 -0
  171. data/app/queries/decidim/votings/admin/polling_officers_join_user.rb +32 -0
  172. data/app/queries/decidim/votings/organization_prioritized_votings.rb +21 -0
  173. data/app/queries/decidim/votings/organization_promoted_votings.rb +16 -0
  174. data/app/queries/decidim/votings/organization_published_votings.rb +19 -0
  175. data/app/queries/decidim/votings/organization_votings.rb +16 -0
  176. data/app/queries/decidim/votings/prioritized_votings.rb +13 -0
  177. data/app/queries/decidim/votings/published_votings.rb +12 -0
  178. data/app/services/decidim/votings/voting_search.rb +46 -0
  179. data/app/views/decidim/elections/admin/answers/index.html.erb +12 -0
  180. data/app/views/decidim/elections/admin/elections/index.html.erb +13 -1
  181. data/app/views/decidim/elections/admin/proposals_imports/new.html.erb +1 -1
  182. data/app/views/decidim/elections/admin/questions/index.html.erb +5 -1
  183. data/app/views/decidim/elections/admin/shared/_trustees_secondary_nav.html.erb +3 -0
  184. data/app/views/decidim/elections/admin/steps/_create_election.html.erb +38 -0
  185. data/app/views/decidim/elections/admin/steps/_created.html.erb +16 -0
  186. data/app/views/decidim/elections/admin/steps/_key_ceremony.html.erb +16 -0
  187. data/app/views/decidim/elections/admin/steps/_key_ceremony_ended.html.erb +15 -0
  188. data/app/views/decidim/elections/admin/steps/_tally.html.erb +17 -0
  189. data/app/views/decidim/elections/admin/steps/_tally_ended.html.erb +9 -0
  190. data/app/views/decidim/elections/admin/steps/_vote.html.erb +21 -0
  191. data/app/views/decidim/elections/admin/steps/_vote_ended.html.erb +15 -0
  192. data/app/views/decidim/elections/admin/steps/_vote_stats.html.erb +31 -0
  193. data/app/views/decidim/elections/admin/steps/index.html.erb +43 -0
  194. data/app/views/decidim/elections/admin/trustees_participatory_spaces/_form.html.erb +19 -0
  195. data/app/views/decidim/elections/admin/trustees_participatory_spaces/index.html.erb +64 -0
  196. data/app/views/decidim/elections/admin/trustees_participatory_spaces/new.html.erb +7 -0
  197. data/app/views/decidim/elections/elections/_filters_small_view.html.erb +1 -1
  198. data/app/views/decidim/elections/elections/_preview.html.erb +26 -0
  199. data/app/views/decidim/elections/elections/_results.html.erb +47 -0
  200. data/app/views/decidim/elections/elections/show.html.erb +43 -18
  201. data/app/views/decidim/elections/trustee_zone/elections/_backup_modal.html.erb +24 -0
  202. data/app/views/decidim/elections/trustee_zone/elections/_key_ceremony_steps.html.erb +44 -0
  203. data/app/views/decidim/elections/trustee_zone/elections/_restore_modal.html.erb +25 -0
  204. data/app/views/decidim/elections/trustee_zone/elections/_tally_steps.html.erb +43 -0
  205. data/app/views/decidim/elections/trustee_zone/elections/show.html.erb +38 -0
  206. data/app/views/decidim/elections/trustee_zone/elections/update.js.erb +5 -0
  207. data/app/views/decidim/elections/trustee_zone/trustees/show.html.erb +102 -0
  208. data/app/views/decidim/elections/votes/_election_votes_confirmed.html.erb +38 -17
  209. data/app/views/decidim/elections/votes/_election_votes_failed.html.erb +21 -0
  210. data/app/views/decidim/elections/votes/_election_votes_question.html.erb +4 -4
  211. data/app/views/decidim/elections/votes/cast_failed.js.erb +1 -0
  212. data/app/views/decidim/elections/votes/cast_success.js.erb +1 -0
  213. data/app/views/decidim/elections/votes/new.html.erb +41 -33
  214. data/app/views/decidim/elections/votes/verify.html.erb +78 -0
  215. data/app/views/decidim/votings/admin/monitoring_committee_members/_form.html.erb +27 -0
  216. data/app/views/decidim/votings/admin/monitoring_committee_members/index.html.erb +41 -0
  217. data/app/views/decidim/votings/admin/monitoring_committee_members/new.html.erb +7 -0
  218. data/app/views/decidim/votings/admin/polling_officers/_form.html.erb +27 -0
  219. data/app/views/decidim/votings/admin/polling_officers/index.html.erb +50 -0
  220. data/app/views/decidim/votings/admin/polling_officers/new.html.erb +7 -0
  221. data/app/views/decidim/votings/admin/polling_stations/_form.html.erb +40 -0
  222. data/app/views/decidim/votings/admin/polling_stations/edit.html.erb +7 -0
  223. data/app/views/decidim/votings/admin/polling_stations/index.html.erb +55 -0
  224. data/app/views/decidim/votings/admin/polling_stations/new.html.erb +7 -0
  225. data/app/views/decidim/votings/admin/votings/_form.html.erb +63 -0
  226. data/app/views/decidim/votings/admin/votings/edit.html.erb +31 -0
  227. data/app/views/decidim/votings/admin/votings/index.html.erb +87 -0
  228. data/app/views/decidim/votings/admin/votings/new.html.erb +13 -0
  229. data/app/views/decidim/votings/admin/votings/polling_officers_picker.html.erb +2 -0
  230. data/app/views/decidim/votings/polling_officer_zone/polling_officers/show.html.erb +42 -0
  231. data/app/views/decidim/votings/polling_officer_zone/polling_stations/show.html.erb +1 -0
  232. data/app/views/decidim/votings/votings/_count.html.erb +1 -0
  233. data/app/views/decidim/votings/votings/_filters.html.erb +25 -0
  234. data/app/views/decidim/votings/votings/_filters_small_view.html.erb +23 -0
  235. data/app/views/decidim/votings/votings/_promoted_voting.html.erb +27 -0
  236. data/app/views/decidim/votings/votings/_voting_details.html.erb +7 -0
  237. data/app/views/decidim/votings/votings/_votings.html.erb +25 -0
  238. data/app/views/decidim/votings/votings/index.html.erb +42 -0
  239. data/app/views/decidim/votings/votings/index.js.erb +10 -0
  240. data/app/views/decidim/votings/votings/show.html.erb +20 -0
  241. data/app/views/layouts/decidim/_voting_header.html.erb +16 -0
  242. data/app/views/layouts/decidim/admin/voting.html.erb +101 -0
  243. data/app/views/layouts/decidim/voting.html.erb +16 -0
  244. data/config/initializers/decidim_bulletin_board.rb +23 -0
  245. data/config/locales/ca.yml +635 -6
  246. data/config/locales/cs.yml +635 -6
  247. data/config/locales/de.yml +635 -6
  248. data/config/locales/el.yml +4 -2
  249. data/config/locales/en.yml +636 -6
  250. data/config/locales/es-MX.yml +636 -7
  251. data/config/locales/es-PY.yml +636 -7
  252. data/config/locales/es.yml +636 -7
  253. data/config/locales/fi-plain.yml +636 -7
  254. data/config/locales/fi.yml +636 -7
  255. data/config/locales/fr-CA.yml +419 -6
  256. data/config/locales/fr.yml +419 -6
  257. data/config/locales/gl.yml +81 -4
  258. data/config/locales/it.yml +98 -6
  259. data/config/locales/ja.yml +12 -6
  260. data/config/locales/lv.yml +4 -2
  261. data/config/locales/nl.yml +502 -6
  262. data/config/locales/no.yml +0 -6
  263. data/config/locales/pl.yml +656 -10
  264. data/config/locales/pt.yml +4 -6
  265. data/config/locales/ro-RO.yml +214 -6
  266. data/config/locales/sv.yml +12 -7
  267. data/config/locales/tr-TR.yml +111 -6
  268. data/config/locales/zh-CN.yml +4 -6
  269. data/db/migrate/20200915142713_add_questionnaire_to_existing_elections.rb +29 -0
  270. data/db/migrate/20200918153813_create_decidim_elections_trustees_participatory_spaces.rb +13 -0
  271. data/db/migrate/20200918153824_create_decidim_elections_elections_trustees.rb +10 -0
  272. data/db/migrate/20200918153835_create_decidim_elections_trustees.rb +12 -0
  273. data/db/migrate/20201026163334_add_blocked_at_and_bb_status_to_elections.rb +8 -0
  274. data/db/migrate/20201028090110_add_votes_to_decidim_elections_answers.rb +7 -0
  275. data/db/migrate/20201028135614_add_selected_to_decidim_elections_answers.rb +7 -0
  276. data/db/migrate/20201209110653_create_decidim_elections_votes.rb +14 -0
  277. data/db/migrate/20201216091123_add_name_to_trustees.rb +7 -0
  278. data/db/migrate/20210113113818_add_message_id_to_decidim_elections_votes.rb +7 -0
  279. data/db/migrate/20210113120115_create_decidim_elections_votings.rb +20 -0
  280. data/db/migrate/20210114100749_add_published_at_to_decidim_votings_votings.rb +7 -0
  281. data/db/migrate/20210114111850_add_user_to_decidim_elections_votes.rb +7 -0
  282. data/db/migrate/20210120164634_add_promoted_to_voting.rb +7 -0
  283. data/db/migrate/20210125124801_add_voting_type_to_voting_voting.rb +7 -0
  284. data/db/migrate/20210129124956_create_decidim_elections_actions.rb +14 -0
  285. data/db/migrate/20210204132111_add_votings_polling_stations.rb +19 -0
  286. data/db/migrate/20210208090441_add_polling_officers_to_votings.rb +12 -0
  287. data/db/migrate/20210210090738_add_votings_polling_station_references_to_votings_polling_officer.rb +8 -0
  288. data/db/migrate/20210216074707_add_monitoring_committee_member.rb +12 -0
  289. data/db/migrate/20210310120708_add_followable_counter_cache_to_votings.rb +16 -0
  290. data/db/seeds/city.jpeg +0 -0
  291. data/lib/decidim/api/election_answer_type.rb +23 -0
  292. data/lib/decidim/api/election_question_type.rb +22 -0
  293. data/lib/decidim/api/election_type.rb +27 -0
  294. data/lib/decidim/api/elections_type.rb +32 -0
  295. data/lib/decidim/api/trustee_type.rb +16 -0
  296. data/lib/decidim/api/voting_type.rb +20 -0
  297. data/lib/decidim/elections.rb +19 -2
  298. data/lib/decidim/elections/admin_engine.rb +42 -1
  299. data/lib/decidim/elections/answer_serializer.rb +48 -0
  300. data/lib/decidim/elections/api.rb +11 -0
  301. data/lib/decidim/elections/component.rb +367 -24
  302. data/lib/decidim/elections/engine.rb +8 -1
  303. data/lib/decidim/elections/test/factories.rb +201 -4
  304. data/lib/decidim/elections/trustee_zone.rb +10 -0
  305. data/lib/decidim/elections/trustee_zone_engine.rb +35 -0
  306. data/lib/decidim/elections/version.rb +1 -1
  307. data/lib/decidim/votings.rb +16 -0
  308. data/lib/decidim/votings/admin.rb +10 -0
  309. data/lib/decidim/votings/admin_engine.rb +71 -0
  310. data/lib/decidim/votings/api.rb +7 -0
  311. data/lib/decidim/votings/engine.rb +147 -0
  312. data/lib/decidim/votings/participatory_space.rb +92 -0
  313. data/lib/decidim/votings/polling_officer_zone.rb +10 -0
  314. data/lib/decidim/votings/polling_officer_zone_engine.rb +33 -0
  315. data/lib/decidim/votings/query_extensions.rb +43 -0
  316. data/lib/decidim/votings/test/capybara_polling_officers_picker.rb +49 -0
  317. data/lib/decidim/votings/test/factories.rb +83 -0
  318. data/lib/decidim/votings/voting_serializer.rb +54 -0
  319. data/lib/tasks/decidim_elections.rake +68 -5
  320. metadata +303 -19
  321. data/app/types/decidim/elections/election_answer_type.rb +0 -24
  322. data/app/types/decidim/elections/election_question_type.rb +0 -25
  323. data/app/types/decidim/elections/election_type.rb +0 -27
  324. data/app/types/decidim/elections/elections_type.rb +0 -32
  325. data/config/i18n-tasks.yml +0 -10
  326. data/lib/decidim/elections/bulletin_board_client.rb +0 -35
@@ -16,6 +16,9 @@ de:
16
16
  max_selections: Maximale Anzahl Antworten
17
17
  min_selections: Nichts davon
18
18
  title: Titel
19
+ voting:
20
+ end_time: Abstimmung endet
21
+ start_time: Abstimmung beginnt
19
22
  errors:
20
23
  models:
21
24
  answer:
@@ -26,7 +29,25 @@ de:
26
29
  attributes:
27
30
  attachment:
28
31
  needs_to_be_reattached: Der Anhang muss erneut angehängt werden
32
+ trustee:
33
+ attributes:
34
+ name:
35
+ cant_be_changed: kann nicht geändert werden
36
+ public_key:
37
+ cant_be_changed: kann nicht geändert werden
29
38
  activerecord:
39
+ errors:
40
+ models:
41
+ decidim/votings/polling_officer:
42
+ attributes:
43
+ presided_polling_station:
44
+ president_and_manager: Wahllokal-Mitarbeitender ist bereits Präsident/Manager eines Wahllokals
45
+ voting:
46
+ different_organization: Die Abstimmung muss in der selben Organisation wie der Benutzer sein
47
+ decidim/votings/polling_station:
48
+ attributes:
49
+ polling_station_president:
50
+ different_voting: Der Wahllokal-Mitarbeiter und das Wahllokal müssen in der gleichen Abstimmung sein
30
51
  models:
31
52
  decidim/elections/answer:
32
53
  one: Antwort
@@ -37,7 +58,33 @@ de:
37
58
  decidim/elections/question:
38
59
  one: Frage
39
60
  other: Fragen
61
+ decidim/votings/polling_officer:
62
+ one: Wahllokal-Mitarbeiter
63
+ other: Wahllokal-Mitarbeitende
64
+ decidim/votings/polling_station:
65
+ one: Wahllokal
66
+ other: Wahllokale
67
+ decidim/votings/voting:
68
+ one: Abstimmung
69
+ other: Abstimmungen
40
70
  decidim:
71
+ admin:
72
+ filters:
73
+ officers_assigned_eq:
74
+ label: Wahlvorstand
75
+ values:
76
+ assigned: Zugewiesen
77
+ unassigned: Nicht zugewiesen
78
+ role_eq:
79
+ label: Rolle
80
+ values:
81
+ manager: Manager
82
+ president: Präsident
83
+ unassigned: Nicht zugewiesen
84
+ search_placeholder:
85
+ name_or_email_or_nickname_or_presided_station_title_or_managed_station_title_cont: In %{collection} nach Name/E-Mail/Nickname oder Wahllokal suchen.
86
+ ? title_or_address_or_manager_name_or_manager_email_or_manager_nickname_or_president_name_or_president_email_or_president_nickname_cont
87
+ : In %{collection} suchen nach Titel, Adresse oder Wahllokal-Mitarbeiter.
41
88
  components:
42
89
  elections:
43
90
  actions:
@@ -53,9 +100,11 @@ de:
53
100
  confirm_destroy: Sind Sie sicher?
54
101
  destroy: Löschen
55
102
  edit: Bearbeiten
56
- edit_answers: Antworten bearbeiten
57
- edit_questions: Fragen bearbeiten
103
+ feedback: Feedback der Wähler
58
104
  import: Importieren Sie Vorschläge in Projekte
105
+ manage_answers: Antworten verwalten
106
+ manage_questions: Fragen verwalten
107
+ manage_steps: Schritte verwalten
59
108
  new: Neue(r/s) %{name}
60
109
  preview: Vorschau
61
110
  publish: Veröffentlichen
@@ -78,6 +127,14 @@ de:
78
127
  new:
79
128
  create: Antwort erstellen
80
129
  title: Neue Antwort
130
+ select:
131
+ disable: Antwort abwählen
132
+ enable: Antwort als ausgewählt markieren
133
+ invalid: Beim Auswählen dieser Antwort ist ein Fehler aufgetreten
134
+ success: Antwort erfolgreich ausgewählt
135
+ unselect:
136
+ invalid: Beim Abwählen dieser Antwort ist ein Fehler aufgetreten
137
+ success: Antwort erfolgreich abgwählt
81
138
  update:
82
139
  invalid: Beim Aktualisieren dieser Antwort ist ein Fehler aufgetreten
83
140
  success: Antwort wurde erfolgreich aktualisiert
@@ -104,6 +161,9 @@ de:
104
161
  update:
105
162
  invalid: Beim Aktualisieren dieser Wahl ist ein Fehler aufgetreten
106
163
  success: Wahl wurde erfolgreich aktualisiert
164
+ exports:
165
+ elections: Wahlen
166
+ feedback_form_answers: Antworten auf Feedback-Formular
107
167
  models:
108
168
  answer:
109
169
  name: Antwort
@@ -111,6 +171,8 @@ de:
111
171
  name: Wahl
112
172
  question:
113
173
  name: Frage
174
+ trustee:
175
+ name: Wahlhelfer
114
176
  proposals_imports:
115
177
  create:
116
178
  invalid: Beim Importieren der Vorschläge in Projekte ist ein Problem aufgetreten
@@ -119,6 +181,7 @@ de:
119
181
  create: Importieren Sie Vorschläge in Projekte
120
182
  no_components: Es gibt keine weiteren Vorschlagskomponenten in diesem partizipativen Raum, um die Vorschläge in Projekte zu importieren.
121
183
  select_component: Bitte wählen Sie ein Objekt
184
+ title: Vorschläge importieren
122
185
  questions:
123
186
  create:
124
187
  invalid: Beim Erstellen dieser Frage ist ein Fehler aufgetreten
@@ -137,9 +200,107 @@ de:
137
200
  update:
138
201
  invalid: Beim Aktualisieren dieser Frage ist ein Fehler aufgetreten
139
202
  success: Frage wurde erfolgreich aktualisiert
203
+ steps:
204
+ create_election:
205
+ errors:
206
+ max_selections: Die <strong>maximale Anzahl Antworten</strong> für die Fragen ist inkorrekt
207
+ minimum_answers: Fragen müssen <strong>mindestens zwei Antworten</strong> haben.
208
+ minimum_questions: Die Wahl <strong>muss mindestens eine Frage</strong> haben.
209
+ published: Die Wahl ist <strong>nicht veröffentlicht</strong>.
210
+ time_before: Die Startzeit ist in <strong>weniger als 3 Stunden</strong> vor Beginn der Wahl.
211
+ trustees_number: <strong>Mindestens %{number} Wahlhelfer mit Public Key</strong> werden benötigt.
212
+ invalid: Beim Erstellen dieser Wahl ist ein Fehler aufgetreten
213
+ no_trustees: Es sind keine Wahlhelfer eingetragen
214
+ not_used_trustee: "(nicht verwendet)"
215
+ public_key:
216
+ 'false': hat keinen <strong>Public Key</strong>
217
+ 'true': hat einen <strong>Public Key</strong>
218
+ requirements:
219
+ max_selections: Die <strong>maximale Anzahl Antworten</strong> aller Fragen sind korrekt.
220
+ minimum_answers: Jede Frage hat <strong>mindestens 2 Antworten</strong>.
221
+ minimum_questions: Die Wahl hat <strong>mindestens 1 Frage</strong>.
222
+ published: Die Wahl ist <strong>veröffentlicht</strong>.
223
+ time_before: Die Wahl wird <strong>mindestens %{hours} Stunden</strong> vor Beginn eingerichtet.
224
+ trustees_number: <strong>Mindestens %{number} Wahlhelfer mit Public Key</strong> sind vorhanden.
225
+ submit: Wahl einrichten
226
+ success: Wahl erfolgreich an das Bulletin Board gesendet
227
+ title: Wahl einrichten
228
+ trustees: Wahlhelfer
229
+ created:
230
+ invalid: Beim Starten der Schlüssel-Zeremonie ist ein Fehler aufgetreten
231
+ submit: Schlüssel-Zeremonie starten
232
+ success: Die Anfrage zum Starten der Schlüssel-Zeremonie wurde erfolgreich ans Bulletin Board gesendet
233
+ title: Wahl erstellt
234
+ trustees: Wahlhelfer
235
+ key_ceremony:
236
+ title: Schlüsselzeremonie
237
+ trustees: Wahlhelfer
238
+ key_ceremony_ended:
239
+ errors:
240
+ time_before: Die Wahl ist startbereit. Sie können die Abstimmungsperiode frühestens %{hours} Stunden vor der Startzeit (%{start_time}) eröffnen.
241
+ invalid: Beim Starten der Abstimmungsperiode ist ein Fehler aufgetreten
242
+ requirements:
243
+ time_before: Die Wahl wird bald beginnen. Sie können die Abstimmungsperiode manuell eröffnen, oder sie wird automatisch zur Startzeit um %{start_time} eröffnet.
244
+ submit: Abstimmungsperiode eröffnen
245
+ success: Die Anfrage zum Starten der Abstimmungsperiode wurde erfolgreich ans Bulletin Board gesendet
246
+ title: Startbereit
247
+ processing: In Verarbeitung...
248
+ results_published:
249
+ title: Ergebnisse veröffentlicht
250
+ tally:
251
+ title: Stimmenzähl-Prozess
252
+ trustees: Wahlhelfer
253
+ tally_ended:
254
+ submit: Resultate veröffentlichen
255
+ title: Resultate berechnet
256
+ vote:
257
+ errors:
258
+ time_after: Die Wahl läuft noch. Sie müssen bis zum Ende (%{end_time}) warten, um die Abstimmungsperiode zu schließen.
259
+ invalid: Beim Schließen der Abstimmungsperiode ist ein Fehler aufgetreten
260
+ requirements:
261
+ time_after: Die Wahl ist beendet. Sie können die Abstimmungsperiode manuell schließen, oder sie wird in wenigen Minuten automatisch geschlossen.
262
+ submit: Abstimmungsperiode schließen
263
+ success: Die Anfrage zum Schließen der Abstimmungsperiode wurde erfolgreich ans Bulletin Board gesendet
264
+ title: Abstimmungsperiode
265
+ vote_ended:
266
+ invalid: Beim Starten der Stimmenzählung ist ein Fehler aufgetreten
267
+ submit: Stimmenzählung starten
268
+ success: Die Anfrage zum Starten der Stimmenzählung wurde erfolgreich ans Bulletin Board gesendet
269
+ title: Abstimmungsperiode abgeschlossen
270
+ vote_stats:
271
+ no_vote_statistics_yet: Noch keine Statistiken zur Abstimmung
272
+ title: Statistiken zur Abstimmung
273
+ voters: Wähler
274
+ votes: Stimmen
275
+ trustees_participatory_spaces:
276
+ actions:
277
+ disable: Deaktivieren
278
+ enable: Berücksichtigen
279
+ create:
280
+ exists: Ein Wahlhelfer existiert für diesen partizipativen Raum
281
+ invalid: Es ist ein Problem beim erstellen des Wahlhelfers aufgetreten
282
+ success: Wahlhelfer erfolgreich erstellt
283
+ delete:
284
+ invalid: Es ist ein Problem beim entfernen des Wahlhelfers aufgetreten
285
+ success: Wahlhelfer erfolgreich entfernt
286
+ form:
287
+ select_user: Nutzer wählen
288
+ index:
289
+ title: Wahlhelfer
290
+ new:
291
+ create: Wahlhelfer erstellen
292
+ title: Neuer Wahlhelfer
293
+ update:
294
+ invalid: Es ist ein Problem beim Aktualisieren des Wahlhelfers %{trustee} aufgetreten
295
+ success: Wahlhelfer %{trustee} erfolgreich aktualisiert
140
296
  admin_log:
141
297
  election:
298
+ end_vote: "%{user_name} hat die Abstimmungsperiode für die Wahl %{resource_name} im Bulletin Board beendet"
142
299
  publish: "%{user_name} hat die %{resource_name} Wahl veröffentlicht"
300
+ setup: "%{user_name} hat die Wahl %{resource_name} auf dem Bulletin Board erstellt"
301
+ start_key_ceremony: "%{user_name} hat die Schlüssel-Zeremonie für die Wahl %{resource_name} im Bulletin Board eröffnet"
302
+ start_tally: "%{user_name} hat die Stimmenzählung für die Wahl %{resource_name} im Bulletin Board eröffnet"
303
+ start_vote: "%{user_name} hat die Abstimmungsperiode für die Wahl %{resource_name} im Bulletin Board eröffnet"
143
304
  unpublish: "%{user_name} hat die %{resource_name} Wahl zurückgezogen"
144
305
  election_m:
145
306
  badge_name:
@@ -172,14 +333,40 @@ de:
172
333
  filter: Filter
173
334
  filter_by: Filtern nach
174
335
  unfold: Aufklappen
336
+ preview:
337
+ available_answers: Verfügbare Antworten
338
+ description: Dies sind die Fragen, die Sie im Abstimmungsverfahren finden werden
339
+ title: Wahlfragen
340
+ results:
341
+ description: Dies sind die Abstimmungsergebnisse für jede Frage
342
+ selected: Ausgewählt
343
+ title: Wahlergebnisse
344
+ votes:
345
+ one: ""
346
+ other: ""
175
347
  show:
176
- back: Alle Wahlen
348
+ action-button:
349
+ change-vote: Stimme ändern
350
+ vote: Jetzt abstimmen
351
+ vote-again: Erneut abstimmen
352
+ back: Verfügbare Wahlen
353
+ callout:
354
+ already-voted: Sie haben bei dieser Wahl bereits abgestimmt. Sie können Ihre Stimme ändern oder sie verifizieren.
355
+ vote-rejected: Es war nicht möglich, Ihre Stimme zu verifizieren. Bitte geben Sie ihre Stimme erneut ab.
177
356
  preview: Vorschau
178
- vote: Stimmen
357
+ verify:
358
+ already-voted: Bereits abgestimmt?
359
+ verify-here: Stimme hier verifizieren.
360
+ will-verify: Sie können ihre Stimme nach dem Start der Wahl verifizieren.
179
361
  voting_period_status:
180
362
  finished: Die Abstimmung begann am %{start_time} und endete am %{end_time}
181
- ongoing: Die Abstimmung endet am %{end_time}
363
+ ongoing: 'Abstimmung aktiv bis: %{end_time}'
182
364
  upcoming: Die Abstimmung beginnt am %{start_time}
365
+ feedback:
366
+ answer:
367
+ invalid: Beim Senden Ihrer Meldung ist ein Fehler aufgetreten.
368
+ spam_detected: Bei der Beantwortung des Fragebogens ist ein Fehler aufgetreten. Möglicherweise waren Sie zu schnell. Versuchen Sie es vielleicht erneut.
369
+ success: Feedback erfolgreich versand.
183
370
  models:
184
371
  answer:
185
372
  fields:
@@ -187,6 +374,7 @@ de:
187
374
  title: Titel
188
375
  election:
189
376
  fields:
377
+ bb_status: Bulletin Board Status
190
378
  end_time: Endet um
191
379
  start_time: Beginnt um
192
380
  title: Titel
@@ -195,10 +383,114 @@ de:
195
383
  answers: Antworten
196
384
  max_selections: Max. Antworten
197
385
  title: Titel
386
+ trustees_participatory_space:
387
+ fields:
388
+ considered: berücksichtigt
389
+ email: E-Mail
390
+ inactive: inaktiv
391
+ name: Name
392
+ notification: Benachrichtigung versendet um
393
+ public_key: Öffentlicher Schlüssel
394
+ status: Status
198
395
  orders:
199
396
  label: Wahlen ordnen nach
200
397
  older: Chronologisch
201
398
  recent: Kürzlich hinzugefügt
399
+ trustee_zone:
400
+ elections:
401
+ backup_modal:
402
+ description: Diese Wahl wird im Bulletin Board erstellt. Es ist sehr wichtig dass alle Wahlhelfer, welche daran teilnehmen, eine Sicherungskopie dieser Schlüssel erstellen und sie an einem sicheren Ort speichern. Danach wird der Prozess fortgesetzt.
403
+ download_election_keys: Schlüssel herunterladen
404
+ download_icon: Symbol, das eine Download-Aktion anzeigt
405
+ title: Wahl-Schlüssel für %{election} sichern
406
+ key_ceremony_steps:
407
+ back: Zurück
408
+ description: Diese Wahl wird im Bulletin Board erstellt. Um diesen Prozess abzuschliessen, ist Ihre Teilnahme als Wahlhelfer nötig.
409
+ keys:
410
+ create_election: Schlüssel erstellen
411
+ key_ceremony:
412
+ joint_election_key: Gemeinsame Schlüssel erstellen
413
+ step_1: Schlüssel veröffentlichen
414
+ list:
415
+ status: Status
416
+ task: Aufgabe
417
+ process_warning: Sobald der Prozess gestartet ist, sollten Sie diese Seite nicht verlassen, bis der Prozess endet. Dies kann einige Minuten dauern, da alle Wahlhelfer verbunden sein müssen um den Prozess abzuschliessen.
418
+ start: Start
419
+ start_icon: Symbol, das einen Startknopf anzeigt, um die Erzeugung der Wahl-Schlüssel zu starten
420
+ status:
421
+ completed: Abgeschlossen
422
+ pending: Ausstehend
423
+ processing: In Verarbeitung
424
+ title: Wahl-Schlüssel für %{election} erstellen
425
+ restore_modal:
426
+ description: Das Bulletin Board hat Informationen von Ihnen als Wahlhelfer zu dieser Wahl. Um den Vorgang fortzusetzen, laden Sie zuerst die Sicherungsdatei hoch, die während der vorherigen Sitzung erstellt wurde.
427
+ title: Wahl-Schlüssel für %{election} wiederherstellen
428
+ upload_election_keys: Wahl-Schlüssel hochladen
429
+ upload_icon: Symbol, das eine Download-Aktion anzeigt
430
+ tally_steps:
431
+ back: Zurück
432
+ description: Die Ergebnisse dieser Wahl werden im Bulletin Board berechnet. Um diesen Prozess abzuschließen ist Ihre Teilnahme als Wahlhelfer erforderlich.
433
+ keys:
434
+ end_tally: Stimmenzählung abgeschloßen
435
+ tally:
436
+ cast: Stimmzählung abgeben
437
+ share: Stimmzählung austauschen
438
+ list:
439
+ status: Status
440
+ task: Aufgabe
441
+ process_warning: Sobald der Prozess gestartet ist, sollten Sie diese Seite nicht verlassen, bis der Prozess endet. Dies kann einige Minuten dauern, da alle Wahlhelfer verbunden sein müssen um den Prozess abzuschliessen.
442
+ start: Beginnen
443
+ start_icon: Symbol, das einen Startknopf anzeigt, um die Erzeugung der Wahl-Schlüssel zu starten
444
+ status:
445
+ completed: Abgeschlossen
446
+ pending: Ausstehend
447
+ processing: In Verarbeitung
448
+ title: Stimmenzählung für %{election}
449
+ update:
450
+ error: Der Wahlstatus wurde nicht aktualisiert.
451
+ success: 'Der Wahlstatus ist: %{status}'
452
+ menu:
453
+ trustee_zone: Wahlhelfer Zone
454
+ no_bulletin_board:
455
+ body: Ein konfiguriertes Bulletin-Board ist für diesen Bereich erforderlich. Kontaktieren Sie den Administrator für weitere Informationen.
456
+ title: Leider ist das Bulletin Board noch nicht eingerichtet.
457
+ trustees:
458
+ show:
459
+ elections:
460
+ list:
461
+ action_required:
462
+ 'false': 'Nein'
463
+ name: Aktion erforderlich?
464
+ 'true': Aktion ausführen
465
+ bb_status: Status
466
+ election: Wahl
467
+ voting_period: Abstimmungsperiode
468
+ no_elections: Es gibt keine Wahlen, bei denen Sie als Wahlhelfer agieren.
469
+ title: Wahlen
470
+ identification_keys:
471
+ cancel: Abbrechen
472
+ generate: Identifikationsschlüssel generieren
473
+ generate_error: Beim Generieren der Identifikationsschlüssel ist ein Fehler aufgetreten.
474
+ generate_legend: Sie müssen ein Schlüsselpaar generieren, um an Wahlen als Wahlhelfer teilzunehmen.
475
+ generate_legend_1: Nach Drücken des Buttons sollten Sie die Datei mit den generierten Identifikationsschlüssel herunterladen.
476
+ generate_legend_2: Kopiere die heruntergeladene Datei auf ein sauberen USB-Stick
477
+ generate_legend_3: Stellen Sie sicher, dass Ihr Computer keine Kopie der Datei hat (z.B. überprüfen Sie die Download- und Desktop-Ordner).
478
+ generate_legend_4: Machen Sie eine weitere Kopie der Datei auf einem anderen externen Gerät und speichern Sie sie an einem sehr sicheren Ort.
479
+ submit: Einreichen
480
+ submit_legend: Nachdem Sie alle oben beschriebenen Schritte befolgt haben, führen Sie den Prozess durch, der den öffentlichen Identifikationsschlüssel an den Decidim-Server sendet.
481
+ submit_title: Öffentlichen Identifikationsschlüssel einreichen
482
+ title: Wahlhelfer-Identifikationsschlüssel
483
+ upload: Lade deine Identifikationsschlüssel hoch
484
+ upload_error:
485
+ invalid_format: Die hochgeladene Datei enthält keinen Identifikationsschlüssel.
486
+ invalid_key: Die Identifikationsschlüssel in der hochgeladenen Datei können nicht geladen werden.
487
+ invalid_public_key: Die Identifikationsschlüssel in der hochgeladenen Datei stimmen nicht mit dem öffentlichen Identifikationsschlüssel überein, der von Decidim gespeichert wird.
488
+ upload_legend: Decidim hat Ihren öffentlichen Identifikationsschlüssel, aber Ihr Browser hat ihn immer noch nicht. Sie müssen die Datei mit Ihren Identifikationsschlüssel aus dem Backup auf Ihren Computer importieren, das Sie nach der Generierung erstellt haben.
489
+ not_supported_browser_description: Es sieht so aus, als ob Sie einen Webbrowser verwenden, der als Wahlhelfer nicht verwendet werden kann. Stellen Sie sicher, dass Sie die neueste Version Ihres Browsers verwenden, oder versuchen Sie, einen der üblichen Browser zu verwenden, um Ihre Wahlhelfer-Aufgaben zu erfüllen.
490
+ not_supported_browser_title: Browser aktualisieren, um als Wahlhelfer zu agieren
491
+ trustee_role_description: Sie wurden beauftragt, bei einigen der auf dieser Plattform gehaltenen Wahlen als Wahlhelfer zu agieren.
492
+ update:
493
+ success: Ihr öffentlicher Identifikationsschlüssel wurde erfolgreich gespeichert.
202
494
  votes:
203
495
  confirm:
204
496
  answer: Antwort
@@ -211,15 +503,20 @@ de:
211
503
  question: Frage %{count}
212
504
  confirmed:
213
505
  back: Zurück zu den Wahlen
506
+ error: Leider ist ein Fehler bei der Bestätigung der Abstimmung aufgetreten. Bitte erneut abstimmen.
214
507
  experience: Wie war Ihre Erfahrung mit uns?
215
508
  feedback: Gib uns dein Feedback
216
509
  header: Abstimmung bestätigt
217
510
  lead: Deine Stimme wurde bereits abgegeben!
218
511
  text: 'Sie können überprüfen, ob Ihre Stimme erfolgreich zur Wahlurne mit folgendem Identifikator hinzugefügt wurde: <strong class="evote__poll-id">%{e_vote_poll_id}</strong>'
219
- verify_text: Um dies zu überprüfen, kopieren Sie die Kennung und fügen Sie sie auf der <a href="evote-verify">Bestätigungsseite</a> ein
512
+ verify_link: Um dies zu überprüfen, kopieren Sie die Kennung und fügen Sie sie auf der <a href="%{link}">Bestätigungsseite</a> ein
220
513
  encrypting:
221
514
  header: Abstimmung wird verschlüsselt...
222
515
  text: Deine Stimme wird verschlüsselt, um sicherzustellen, dass du sie anonym abgeben kannst.
516
+ failed:
517
+ header: Abstimmung fehlgeschlagen
518
+ lead: Ihre Stimme wurde nicht abgegeben!
519
+ text: Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.
223
520
  header:
224
521
  confirm: Bestätige deine Stimme
225
522
  confirmed: Abstimmung bestätigt
@@ -236,6 +533,28 @@ de:
236
533
  preview_alert: Dies ist eine Vorschau des Abstimmungsstandes.
237
534
  question_steps: Frage %{current_step} von %{total_steps}
238
535
  selections: "%{selected} von %{max_selections}<br> ausgewählt"
536
+ processing:
537
+ header: Stimme wird verarbeitet...
538
+ text: Ihre Stimme wurde empfangen und wird verarbeitet. Bitte warten.
539
+ update:
540
+ error: Beim Aktualisieren dieses Status ist ein Problem aufgetreten
541
+ success: Abstimmung erfolgreich aktualisiert
542
+ verify:
543
+ content:
544
+ heading: Stimme verifizieren
545
+ info: Dieser Verifikator prüft, dass Ihre Stimme, welche durch eine verschlüsselte Kennung identifiziert wird, korrekt abgegeben wurde und sich in der Wahlurne befindet.
546
+ error:
547
+ header: Stimme nicht gefunden!
548
+ info: Diese Kennung wurde nicht in der Wahlurne %{link} gefunden. Versuchen Sie es erneut.
549
+ form:
550
+ back: Zurück zu Decidim
551
+ submit: Überprüfen
552
+ vote_identifier: 'Kennung:'
553
+ header:
554
+ title: Stimme verifizieren
555
+ success:
556
+ header: Stimme gefunden!
557
+ info: Ihre verschlüsselte Stimme ist in der Wahlurne %{link}
239
558
  voting_step:
240
559
  back: Zurück
241
560
  continue: Weiter
@@ -249,6 +568,38 @@ de:
249
568
  email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{participatory_space_title} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den obigen Link.
250
569
  email_subject: Die Wahl %{resource_title} ist jetzt aktiv für %{participatory_space_title}.
251
570
  notification_title: Die Wahl <a href="%{resource_path}">%{resource_title}</a> ist jetzt aktiv für %{participatory_space_title}.
571
+ trustees:
572
+ new_election:
573
+ email_intro: Sie sind Wahlhelfer für die %{resource_title} -Wahl.
574
+ email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie als Wahlhelfer bei der Wahl %{resource_title} hinzugefügt wurden.
575
+ email_subject: Sie sind Wahlhelfer für die %{resource_title} -Wahl..
576
+ notification_title: Sie sind Wahlhelfer für die Wahl <a href="%{resource_path}">%{resource_title}</a>.
577
+ new_trustee:
578
+ email_intro: Ein Administrator hat Sie als Wahlhelfer für %{resource_name} hinzugefügt. Sie sollten Ihren öffentlichen Schlüssel <a href='%{trustee_zone_url}'> in Ihrer Wahlhelfer Zone anlegen</a>
579
+ email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie als Wahlhelfer für %{resource_name} hinzugefügt wurden.
580
+ email_subject: Sie sind Wahlhelfer für %{resource_name}.
581
+ notification_title: Sie sind Wahlhelfer für <a href="%{participatory_space_url}">%{resource_name}</a>.
582
+ votes:
583
+ accepted_votes:
584
+ email_intro: 'Deine Stimme wurde angenommen! Benutze deinen Stimm-Token: %{encrypted_vote_hash}, du kannst deine Stimme <a href="%{verify_url}">hier verifizieren</a>.'
585
+ email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie für die %{resource_name} -Wahl gestimmt haben.
586
+ email_subject: Deine Stimme für %{resource_name} wurde angenommen.
587
+ notification_title: 'Deine Stimme wurde akzeptiert. Verifiziere deine Stimme <a href="%{verify_url}">hier</a> mit deinem Voting-Token: %{encrypted_vote_hash}'
588
+ votings:
589
+ polling_officers:
590
+ polling_station_assigned:
591
+ email_intro: Ihnen wurde die Rolle %{role} im Wahllokal %{polling_station_name} in <a href="%{resource_url}">%{resource_title}</a> zugewiesen. Sie können das Wahllokal im dazu vorgesehenen <a href="%{polling_officer_zone_url}">Bereich</a> verwalten.
592
+ email_outro: Sie haben diese Benachrichtigung erhalten, weil Ihnen die Rolle %{role} in %{polling_station_name} zugewiesen wurde.
593
+ email_subject: Sie haben die Rolle %{role} im Wahllokal %{polling_station_name}.
594
+ notification_title: Sie haben die Rolle %{role} im Wahllokal %{polling_station_name} der Abstimmung <a href="%{resource_path}">%{resource_title}</a>.
595
+ help:
596
+ participatory_spaces:
597
+ votings:
598
+ contextual: "<p>Eine <strong>Abstimmung</strong> erlaubt es Ihnen, eine klare Frage an alle Personen einer Organisation zu stellen, zur Teilnahme an der Abstimmung aufzurufen und die Debatte für oder gegen eine Antwort zu eröffnen. Am Abstimmungsdatum können Sie abstimmen und die Resultate der Abstimmung veröffentlichen.</p> <p>Beispiele: Die Abstimmungen können fast beliebige Aspekte einer Organisation betreffen. Zum Beispiel kann über verschiedene Varianten des Namens oder des Logos der Organisation abgestimmt werden, Sie können sich dafür oder dagegen entscheiden, Teil einer grösseren Organisation zu werden, eine neue Strategie oder das Resultat einer Arbeitsgruppe bestätigen oder ablehnen oder die Anzahl Mandate in der Organisation definieren.</p>\n"
599
+ page: "<p>Eine <strong>Abstimmung</strong> erlaubt es Ihnen, eine klare Frage an alle Personen einer Organisation zu stellen, zur Teilnahme an der Abstimmung aufzurufen und die Debatte für oder gegen eine Antwort zu eröffnen. Am Abstimmungsdatum können Sie abstimmen und die Resultate der Abstimmung veröffentlichen.</p> <p>Beispiele: Die Abstimmungen können fast beliebige Aspekte einer Organisation betreffen. Zum Beispiel kann über verschiedene Varianten des Namens oder des Logos der Organisation abgestimmt werden, Sie können sich dafür oder dagegen entscheiden, Teil einer grösseren Organisation zu werden, eine neue Strategie oder das Resultat einer Arbeitsgruppe bestätigen oder ablehnen oder die Anzahl Mandate in der Organisation definieren.</p>\n"
600
+ title: Was sind Abstimmungen?
601
+ menu:
602
+ votings: Abstimmungen
252
603
  pages:
253
604
  home:
254
605
  statistics:
@@ -256,7 +607,285 @@ de:
256
607
  participatory_processes:
257
608
  statistics:
258
609
  elections_count: Wahlen
610
+ votings:
611
+ admin:
612
+ content_blocks:
613
+ highlighted_votings:
614
+ max_results: Maximale Anzahl angezeigte Elemente
615
+ landing_page:
616
+ attachments_and_folders:
617
+ name: Materialien und Verzeichnisse zur Abstimmung
618
+ description:
619
+ name: Beschreibung der Abstimmung
620
+ elections:
621
+ name: Wahlen
622
+ header:
623
+ name: Überschrift
624
+ html_block_1:
625
+ name: Abstimmung HTML Block 1
626
+ html_block_2:
627
+ name: Abstimmung HTML Block 2
628
+ html_block_3:
629
+ name: Abstimmung HTML Block 3
630
+ metrics:
631
+ name: Abstimmungsmetriken
632
+ polling_stations:
633
+ name: Wahllokale
634
+ stats:
635
+ name: Abstimmungsstatistiken
636
+ timeline:
637
+ name: Abstimmungs-Timeline
638
+ index:
639
+ not_published: Unveröffentlicht
640
+ published: Veröffentlicht
641
+ landing_page:
642
+ content_blocks:
643
+ edit:
644
+ update: Aktualisieren
645
+ edit:
646
+ active_content_blocks: Aktive Inhaltsblöcke
647
+ inactive_content_blocks: Inaktive Inhaltsblöcke
648
+ menu:
649
+ votings: Abstimmungen
650
+ votings_submenu:
651
+ attachment_collections: Ordner
652
+ attachment_files: Dateien
653
+ attachments: Dateianhänge
654
+ components: Komponenten
655
+ info: Information
656
+ landing_page: Landing-Page
657
+ monitoring_committee_members: Überwachungskomitee
658
+ polling_officers: Wahllokal-Mitarbeitende
659
+ polling_stations: Wahllokale
660
+ models:
661
+ monitoring_committee_member:
662
+ fields:
663
+ email: E-Mail
664
+ name: Name
665
+ name: Mitglied des Überwachungskomitees
666
+ polling_officer:
667
+ fields:
668
+ email: E-Mail
669
+ name: Name
670
+ polling_station: Wahllokal (Rolle)
671
+ name: Wahllokal-Mitarbeitender
672
+ polling_station:
673
+ fields:
674
+ address: Adresse
675
+ polling_station_managers: Manager
676
+ polling_station_president: Präsident
677
+ title: Titel
678
+ name: Wahllokal
679
+ voting:
680
+ fields:
681
+ created_at: Erstellt am
682
+ promoted: Hervorgehoben
683
+ published: Veröffentlicht
684
+ title: Titel
685
+ monitoring_committee_members:
686
+ create:
687
+ invalid: Beim Erfassen dieses Überwachungskomitee-Mitglieds ist ein Fehler aufgetreten
688
+ success: Überwachungskomitee-Mitglied erfolgreich erfasst
689
+ destroy:
690
+ invalid: Beim Löschen dieses Überwachungskomitee-Mitglieds ist ein Fehler aufgetreten
691
+ success: Überwachungskomitee-Mitglied erfolgreich entfernt
692
+ form:
693
+ existing_user: Existierender Benutzer
694
+ non_user: Neuen Benutzer einladen
695
+ select_user: Suchen nach Name, E-Mail oder Benutzername
696
+ user_type: Benutzertyp
697
+ index:
698
+ title: Überwachungskomitee
699
+ new:
700
+ create: Hinzufügen
701
+ title: Überwachungskomitee-Mitglied erfassen
702
+ polling_officers:
703
+ create:
704
+ invalid: Beim Erfassen dieses Wahllokal-Mitarbeiters ist ein Fehler aufgetreten
705
+ success: Wahllokal-Mitarbeitender wurde erfolgreich erfasst
706
+ destroy:
707
+ invalid: Beim Entfernen dieses Wahllokal-Mitarbeitenden ist ein Fehler aufgetreten
708
+ success: Wahllokal-Mitarbeitender wurde erfolgreich entfernt
709
+ form:
710
+ existing_user: Existierender Benutzer
711
+ non_user: Neuen Benutzer einladen
712
+ select_user: Suchen nach Name, E-Mail oder Benutzername
713
+ user_type: Benutzertyp
714
+ index:
715
+ role_manager: Manager
716
+ role_president: Präsident
717
+ title: Wahllokal-Mitarbeitende
718
+ new:
719
+ create: Erfassen
720
+ title: Wahllokal-Mitarbeiter erfassen
721
+ polling_officers_picker:
722
+ choose_polling_officers: Wahllokal-Mitarbeitende auswählen
723
+ close: Schließen
724
+ more_polling_officers: Es gibt %{number} weitere Wahllokal-Mitarbeitende. Verfeinern Sie Ihre Suche um sie zu finden.
725
+ no_polling_officers: Keine Wahllokal-Mitarbeitenden passen zu Ihren Suchkriterien, oder es gibt keine Wahllokal-Mitarbeitenden.
726
+ polling_stations:
727
+ create:
728
+ invalid: Beim Erstellen dieses Wahllokals ist ein Fehler aufgetreten
729
+ success: Wahllokal erfolgreich erfasst
730
+ destroy:
731
+ invalid: Beim Löschen dieses Wahllokals ist ein Fehler aufgetreten
732
+ success: Wahllokal erfolgreich gelöscht
733
+ edit:
734
+ title: Wahllokal bearbeiten
735
+ update: Wahllokal aktualisieren
736
+ form:
737
+ address_help: 'Adresse: Wird vom Geocoder zur Lokalisierung verwendet'
738
+ location_help: 'Ort: Beschreibung des genauen Orts des Wahllokals für die Wähler'
739
+ location_hints_help: 'Ortshinweise: Zusätzliche Informationen. Beispiel: Das Stockwerk des Gebäudes in dem sich das Wahllokal befindet.'
740
+ polling_station_managers_help: 'Wahllokal-Manager: Die Mitarbeitenden die als Verwalter des Wahllokals agieren werden. Stellen Sie sicher dass diese Personen bereits als Wahllokal-Mitarbeitende erfasst wurden, und dass sie nicht bereits zu einem anderen Wahllokal zugewiesen sind'
741
+ polling_station_president_help: 'Wahllokal-Mitarbeiter: Der Mitarbeiter der als Präsident des Wahllokals agiert. Stellen Sie sicher dass diese Person bereits als Wahllokal-Mitarbeitender erfasst wurde, und dass sie nicht bereits zu einem anderen Wahllokal zugewiesen ist'
742
+ select_president: Wählen Sie einen Wahllokal-Mitarbeiter als Präsident für das Wahllokal
743
+ index:
744
+ title: Wahllokale
745
+ new:
746
+ create: Erstellen
747
+ title: Wahllokal erstellen
748
+ update:
749
+ invalid: Beim Aktualisieren dieses Wahllokals ist ein Fehler aufgetreten
750
+ success: Wahllokal erfolgreich aktualisiert
751
+ titles:
752
+ votings: Abstimmungen
753
+ votings:
754
+ actions:
755
+ confirm_destroy: Sind Sie sicher?
756
+ destroy: Löschen
757
+ new_voting: Neue Abstimmung
758
+ publish: Veröffentlichen
759
+ unpublish: Veröffentlichung rückgängig machen
760
+ create:
761
+ invalid: Beim Erstellen dieser Abstimmung ist ein Problem aufgetreten
762
+ success: Abstimmung erfolgreich erstellt
763
+ edit:
764
+ add_election_component: Sie haben keine Wahl für diese Abstimmung konfiguriert. Bitte fügen Sie sie im Abschnitt Komponenten hinzu
765
+ assign_missing_officers: Es gibt noch Wahllokale ohne Präsident und/oder Wahlleiter. Bitte ordnen Sie diese im Wahllokal-Abschnitt zu
766
+ update: Aktualisieren
767
+ form:
768
+ select_a_voting_type: Bitte einen Abstimmungs-Typ auswählen
769
+ slug_help: 'URL-Slugs werden zum Generieren der URLs verwendet, die auf diese Abstimmung verweisen. Akzeptiert nur Buchstaben, Zahlen und Bindestriche und muss mit einem Buchstaben beginnen. Beispiel: %{url}'
770
+ title: Titel
771
+ voting_type:
772
+ hybrid: Hybrid
773
+ in_person: Persönlich
774
+ online: Online
775
+ new:
776
+ create: Erstellen
777
+ title: Neue Abstimmung
778
+ publish:
779
+ success: Abstimmung erfolgreich veröffentlicht
780
+ unpublish:
781
+ success: Veröffentlichung der Abstimmung erfolgreich rückgängig gemacht
782
+ update:
783
+ invalid: Beim Aktualisieren dieser Abstimmung ist ein Problem aufgetreten
784
+ success: Abstimmung erfolgreich aktualisiert
785
+ admin_log:
786
+ voting:
787
+ create: "%{user_name} hat die Abstimmung %{resource_name} erstellt"
788
+ publish: "%{user_name} hat die Abstimmung %{resource_name} veröffentlicht"
789
+ unpublish: "%{user_name} hat die Abstimmung %{resource_name} auf \"unveröffentlicht\" gesetzt"
790
+ content_blocks:
791
+ highlighted_votings:
792
+ name: Hervorgehobene Abstimmungen
793
+ monitoring_committee_members:
794
+ actions:
795
+ confirm_destroy: Sind Sie sicher?
796
+ destroy: Entfernen
797
+ new: Neues Mitglied
798
+ title: Aktionen
799
+ pages:
800
+ home:
801
+ highlighted_votings:
802
+ active_votings: Aktive Abstimmungen
803
+ see_all_votings: Alle Abstimmungen ansehen
804
+ votings_button_title: Link zur Seite die alle Abstimmungen anzeigt
805
+ polling_officer_zone:
806
+ menu:
807
+ polling_officer_zone: Wahllokal-Mitarbeiter-Bereich
808
+ polling_officers:
809
+ show:
810
+ actions:
811
+ count_votes: Stimmen in der Wahlurne zählen
812
+ identify_person: Eine Person identifizieren und verifizieren
813
+ polling_officer_role_description: Ihnen wurde eine Rolle als Wahlhelfer (Präsident oder Manager) in Wahlen dieser Plattform zugewiesen.
814
+ polling_stations:
815
+ list:
816
+ actions: Aktionen
817
+ address: Adresse
818
+ name: Name
819
+ role: Ihre Rolle
820
+ voting: Abstimmung
821
+ no_polling_stations: Sie sind noch zu keinem Wahllokal zugewiesen.
822
+ title: Wahllokale
823
+ polling_officers:
824
+ actions:
825
+ confirm_destroy: Sind Sie sicher?
826
+ destroy: Entfernen
827
+ new: Neu
828
+ title: Aktionen
829
+ roles:
830
+ manager: Manager
831
+ president: Präsident
832
+ unassigned: Nicht zugewiesen
833
+ polling_stations:
834
+ actions:
835
+ confirm_destroy: Sind Sie sicher?
836
+ destroy: Löschen
837
+ edit: Bearbeiten
838
+ new: Neu
839
+ title: Aktionen
840
+ votings:
841
+ count:
842
+ title:
843
+ one: "%{count} Abstimmung"
844
+ other: "%{count} Abstimmungen"
845
+ filters:
846
+ active: Aktiv
847
+ all: Alle
848
+ finished: Abgeschlossen
849
+ search: Suchen
850
+ state: Status
851
+ upcoming: Zukünftig
852
+ filters_small_view:
853
+ close_modal: Dialog schließen
854
+ filter: Filter
855
+ filter_by: Filtern nach
856
+ unfold: Aufklappen
857
+ index:
858
+ no_votings: Keine Abstimmung gefunden, die Ihren Suchkriterien entspricht.
859
+ only_finished: Momentan gibt es keine geplanten Abstimmungen, aber hier finden Sie alle abgeschlossenen Abstimmungen.
860
+ title: Abstimmungen
861
+ orders:
862
+ label: 'Abstimmungen sortieren nach:'
863
+ random: Zufällig
864
+ recent: Neueste zuerst
865
+ show:
866
+ dates: Daten
867
+ votings_m:
868
+ badge_name:
869
+ finished: Abgeschlossen
870
+ ongoing: Aktuell
871
+ upcoming: Zukünftig
872
+ footer_button_text:
873
+ participate: Mitmachen
874
+ view: Anzeigen
875
+ vote: Abstimmen
876
+ unspecified: Keine Angabe
877
+ voting_type:
878
+ hybrid: Hybrid
879
+ in_person: Persönlich
880
+ online: Online
881
+ voting_types_label: Abstimmungsart
259
882
  layouts:
260
883
  decidim:
261
884
  election_votes_header:
262
885
  exit: Beenden
886
+ votings:
887
+ index:
888
+ promoted_votings: Hervorgehobene Abstimmungen
889
+ promoted_voting:
890
+ more_info: Mehr Informationen
891
+ vote: Abstimmen