decidim-elections 0.23.6 → 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/key_ceremony.js.es6 +126 -0
  13. data/app/assets/javascripts/decidim/elections/trustee_zone/tally.js.es6 +104 -0
  14. data/app/assets/javascripts/decidim/elections/trustee_zone.js.es6 +54 -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/_votings-header.scss +99 -0
  27. data/app/assets/stylesheets/decidim/votings/votings/_votings-home-banner.scss +11 -0
  28. data/app/assets/stylesheets/decidim/votings/votings.scss +1 -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 +53 -20
  245. data/config/locales/cs.yml +641 -7
  246. data/config/locales/de.yml +635 -6
  247. data/config/locales/el.yml +0 -6
  248. data/config/locales/en.yml +636 -6
  249. data/config/locales/es-MX.yml +7 -11
  250. data/config/locales/es-PY.yml +6 -10
  251. data/config/locales/es.yml +15 -19
  252. data/config/locales/fi-plain.yml +636 -7
  253. data/config/locales/fi.yml +637 -8
  254. data/config/locales/fr-CA.yml +422 -6
  255. data/config/locales/fr.yml +422 -6
  256. data/config/locales/gl.yml +63 -8
  257. data/config/locales/it.yml +97 -10
  258. data/config/locales/ja.yml +8 -10
  259. data/config/locales/lv.yml +0 -6
  260. data/config/locales/nl.yml +498 -6
  261. data/config/locales/no.yml +0 -5
  262. data/config/locales/pl.yml +570 -7
  263. data/config/locales/pt.yml +0 -10
  264. data/config/locales/ro-RO.yml +0 -44
  265. data/config/locales/sv.yml +8 -12
  266. data/config/locales/tr-TR.yml +114 -6
  267. data/config/locales/zh-CN.yml +0 -10
  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/admin_engine.rb +42 -1
  296. data/lib/decidim/elections/answer_serializer.rb +48 -0
  297. data/lib/decidim/elections/api.rb +11 -0
  298. data/lib/decidim/elections/component.rb +367 -24
  299. data/lib/decidim/elections/engine.rb +8 -1
  300. data/lib/decidim/elections/test/factories.rb +201 -4
  301. data/lib/decidim/elections/trustee_zone.rb +10 -0
  302. data/lib/decidim/elections/trustee_zone_engine.rb +35 -0
  303. data/lib/decidim/elections/version.rb +1 -1
  304. data/lib/decidim/elections.rb +19 -2
  305. data/lib/decidim/votings/admin.rb +10 -0
  306. data/lib/decidim/votings/admin_engine.rb +71 -0
  307. data/lib/decidim/votings/api.rb +7 -0
  308. data/lib/decidim/votings/engine.rb +147 -0
  309. data/lib/decidim/votings/participatory_space.rb +92 -0
  310. data/lib/decidim/votings/polling_officer_zone.rb +10 -0
  311. data/lib/decidim/votings/polling_officer_zone_engine.rb +33 -0
  312. data/lib/decidim/votings/query_extensions.rb +43 -0
  313. data/lib/decidim/votings/test/capybara_polling_officers_picker.rb +49 -0
  314. data/lib/decidim/votings/test/factories.rb +83 -0
  315. data/lib/decidim/votings/voting_serializer.rb +54 -0
  316. data/lib/decidim/votings.rb +16 -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
@@ -17,6 +17,9 @@ en:
17
17
  max_selections: Maximum number of selections
18
18
  min_selections: None of the above option
19
19
  title: Title
20
+ voting:
21
+ end_time: Voting ends
22
+ start_time: Voting begins
20
23
  errors:
21
24
  models:
22
25
  answer:
@@ -27,7 +30,25 @@ en:
27
30
  attributes:
28
31
  attachment:
29
32
  needs_to_be_reattached: Needs to be reattached
33
+ trustee:
34
+ attributes:
35
+ name:
36
+ cant_be_changed: can't be changed
37
+ public_key:
38
+ cant_be_changed: can't be changed
30
39
  activerecord:
40
+ errors:
41
+ models:
42
+ decidim/votings/polling_officer:
43
+ attributes:
44
+ presided_polling_station:
45
+ president_and_manager: Polling officer already is a polling station president/manager
46
+ voting:
47
+ different_organization: The voting must be in the same organizatoin as the user
48
+ decidim/votings/polling_station:
49
+ attributes:
50
+ polling_station_president:
51
+ different_voting: The polling officer must be in the same voting as the polling station
31
52
  models:
32
53
  decidim/elections/answer:
33
54
  one: Answer
@@ -38,7 +59,33 @@ en:
38
59
  decidim/elections/question:
39
60
  one: Question
40
61
  other: Questions
62
+ decidim/votings/polling_officer:
63
+ one: Polling officer
64
+ other: Polling officers
65
+ decidim/votings/polling_station:
66
+ one: Polling station
67
+ other: Polling stations
68
+ decidim/votings/voting:
69
+ one: Voting
70
+ other: Votings
41
71
  decidim:
72
+ admin:
73
+ filters:
74
+ officers_assigned_eq:
75
+ label: Officers
76
+ values:
77
+ assigned: Assigned
78
+ unassigned: Not assigned
79
+ role_eq:
80
+ label: Role
81
+ values:
82
+ manager: Manager
83
+ president: President
84
+ unassigned: Unassigned
85
+ search_placeholder:
86
+ name_or_email_or_nickname_or_presided_station_title_or_managed_station_title_cont: Search %{collection} by name/email/nickname or polling station.
87
+ ? title_or_address_or_manager_name_or_manager_email_or_manager_nickname_or_president_name_or_president_email_or_president_nickname_cont
88
+ : Search %{collection} by title, address or officer name/email/nickname.
42
89
  components:
43
90
  elections:
44
91
  actions:
@@ -54,9 +101,11 @@ en:
54
101
  confirm_destroy: Are you sure?
55
102
  destroy: Destroy
56
103
  edit: Edit
57
- edit_answers: Edit answers
58
- edit_questions: Edit questions
104
+ feedback: Voter feedback
59
105
  import: Import proposals to answers
106
+ manage_answers: Manage answers
107
+ manage_questions: Manage questions
108
+ manage_steps: Manage steps
60
109
  new: New %{name}
61
110
  preview: Preview
62
111
  publish: Publish
@@ -79,6 +128,14 @@ en:
79
128
  new:
80
129
  create: Create answer
81
130
  title: New answer
131
+ select:
132
+ disable: Unselect answer
133
+ enable: Mark answer as selected
134
+ invalid: There was a problem selecting this answer
135
+ success: Answer successfully selected
136
+ unselect:
137
+ invalid: There was a problem unselecting this answer
138
+ success: Answer successfully unselected
82
139
  update:
83
140
  invalid: There was a problem updating this answer
84
141
  success: Answer successfully updated
@@ -105,6 +162,9 @@ en:
105
162
  update:
106
163
  invalid: There was a problem updating this election
107
164
  success: Election successfully updated
165
+ exports:
166
+ elections: Elections
167
+ feedback_form_answers: Feedback form answers
108
168
  models:
109
169
  answer:
110
170
  name: Answer
@@ -112,6 +172,8 @@ en:
112
172
  name: Election
113
173
  question:
114
174
  name: Question
175
+ trustee:
176
+ name: Trustee
115
177
  proposals_imports:
116
178
  create:
117
179
  invalid: There was a problem importing the proposals into answers
@@ -120,6 +182,7 @@ en:
120
182
  create: Import proposals to answers
121
183
  no_components: There are no other proposal components in this participatory space to import the proposals into answers.
122
184
  select_component: Please select a component
185
+ title: Import proposals
123
186
  questions:
124
187
  create:
125
188
  invalid: There was a problem creating this question
@@ -138,9 +201,107 @@ en:
138
201
  update:
139
202
  invalid: There was a problem updating this question
140
203
  success: Question successfully updated
204
+ steps:
205
+ create_election:
206
+ errors:
207
+ max_selections: The questions do not have a <strong>correct value for amount of answers</strong>
208
+ minimum_answers: Questions must have <strong>at least two answers</strong>.
209
+ minimum_questions: The election <strong>must have at least one question</strong>.
210
+ published: The election is <strong>not published</strong>.
211
+ time_before: The start time is in <strong>less than 3 hours</strong> before the election starts.
212
+ trustees_number: The participatory space <strong>must have at least %{number} trustees with public key</strong>.
213
+ invalid: There was a problem setting up this election
214
+ no_trustees: There are no Trustees configured for this participatory space
215
+ not_used_trustee: "(not used)"
216
+ public_key:
217
+ 'false': does not have a <strong>public key</strong>
218
+ 'true': has a <strong>public key</strong>
219
+ requirements:
220
+ max_selections: All the questions have a correct value for <strong>maximum of answers</strong>.
221
+ minimum_answers: Each question has <strong>at least 2 answers</strong>.
222
+ minimum_questions: The election has <strong>at least 1 question</strong>.
223
+ published: The election is <strong>published</strong>.
224
+ time_before: The setup is being done <strong>at least %{hours} hours</strong> before the election starts.
225
+ trustees_number: The participatory space has <strong>at least %{number} trustees with public key</strong>.
226
+ submit: Setup election
227
+ success: Election successfully sent to the Bulletin Board
228
+ title: Setup election
229
+ trustees: Election Trustees
230
+ created:
231
+ invalid: There was a problem starting the key ceremony
232
+ submit: Start the key ceremony
233
+ success: Start key ceremony request was successfully sent to the Bulletin Board
234
+ title: Election created
235
+ trustees: Trustees
236
+ key_ceremony:
237
+ title: Key ceremony
238
+ trustees: Trustees
239
+ key_ceremony_ended:
240
+ errors:
241
+ time_before: The election is ready to start. You have to wait until %{hours} hours before the starting time (%{start_time}) to start the voting period.
242
+ invalid: There was a problem starting the voting period
243
+ requirements:
244
+ time_before: The election will start soon. You can start the voting period manually, or it will be started automatically before the starting time, at %{start_time}.
245
+ submit: Start voting period
246
+ success: Start voting period request was successfully sent to the Bulletin Board
247
+ title: Ready to start
248
+ processing: Processing...
249
+ results_published:
250
+ title: Results published
251
+ tally:
252
+ title: Tally process
253
+ trustees: Trustees
254
+ tally_ended:
255
+ submit: Publish results
256
+ title: Results calculated
257
+ vote:
258
+ errors:
259
+ time_after: The election is still ongoing. You have to wait until the ending time (%{end_time}) to end the voting period.
260
+ invalid: There was a problem ending the voting period
261
+ requirements:
262
+ time_after: The election has ended. You can end the voting period manually, or it will be ended automatically in a few minutes.
263
+ submit: End voting period
264
+ success: End voting period request was successfully sent to the Bulletin Board
265
+ title: Vote period
266
+ vote_ended:
267
+ invalid: There was a problem starting the tally
268
+ submit: Start tally
269
+ success: Start tally request was successfully sent to the Bulletin Board
270
+ title: Vote period ended
271
+ vote_stats:
272
+ no_vote_statistics_yet: No vote statistics yet
273
+ title: Vote Statistics
274
+ voters: Voters
275
+ votes: Votes
276
+ trustees_participatory_spaces:
277
+ actions:
278
+ disable: Disable
279
+ enable: Consider
280
+ create:
281
+ exists: Trustee exists for this participatory space
282
+ invalid: There was a problem creating a trustee
283
+ success: Trustee successfully created
284
+ delete:
285
+ invalid: There was a problem removing this trustee
286
+ success: Trustee successfully removed
287
+ form:
288
+ select_user: Select user
289
+ index:
290
+ title: Trustees
291
+ new:
292
+ create: Create Trustee
293
+ title: New Trustee
294
+ update:
295
+ invalid: There was a problem updating %{trustee} trustee
296
+ success: Trustee %{trustee} successfully updated
141
297
  admin_log:
142
298
  election:
299
+ end_vote: "%{user_name} ended the voting period for the %{resource_name} election on the Bulletin Board"
143
300
  publish: "%{user_name} published the %{resource_name} election"
301
+ setup: "%{user_name} created the %{resource_name} election on the Bulletin Board"
302
+ start_key_ceremony: "%{user_name} started the key ceremony for the %{resource_name} election on the Bulletin Board"
303
+ start_tally: "%{user_name} started the tally for the %{resource_name} election on the Bulletin Board"
304
+ start_vote: "%{user_name} started the voting period for the %{resource_name} election on the Bulletin Board"
144
305
  unpublish: "%{user_name} unpublished the %{resource_name} election"
145
306
  election_m:
146
307
  badge_name:
@@ -173,14 +334,41 @@ en:
173
334
  filter: Filter
174
335
  filter_by: Filter by
175
336
  unfold: Unfold
337
+ preview:
338
+ available_answers: Available answers
339
+ description: These are the questions you will find in the voting process
340
+ title: Election questions
341
+ results:
342
+ description: These are the results of the voting, for each question
343
+ selected: Selected
344
+ title: Election results
345
+ votes:
346
+ one: "%{count} vote"
347
+ other: "%{count} votes"
348
+ zero: "%{count} votes"
176
349
  show:
177
- back: All elections
350
+ action-button:
351
+ change-vote: Change your vote
352
+ vote: Start voting
353
+ vote-again: Vote again
354
+ back: Available elections
355
+ callout:
356
+ already-voted: You have already voted in this election. You can change your vote or verify it.
357
+ vote-rejected: It was not possible to verify your vote. Please cast it again.
178
358
  preview: Preview
179
- vote: Vote
359
+ verify:
360
+ already-voted: Already voted?
361
+ verify-here: Check your vote here.
362
+ will-verify: You will be able to verify your vote once the election is started.
180
363
  voting_period_status:
181
364
  finished: Voting began on %{start_time} and ended on %{end_time}
182
- ongoing: Voting ends on %{end_time}
365
+ ongoing: 'Active voting until: %{end_time}'
183
366
  upcoming: Voting begins on %{start_time}
367
+ feedback:
368
+ answer:
369
+ invalid: There was a problem submiting your feedback.
370
+ spam_detected: There was a problem answering the form. Maybe you've been too quick, can you try again?
371
+ success: Feedback successfully sent.
184
372
  models:
185
373
  answer:
186
374
  fields:
@@ -188,6 +376,7 @@ en:
188
376
  title: Title
189
377
  election:
190
378
  fields:
379
+ bb_status: Bulletin Board status
191
380
  end_time: End at
192
381
  start_time: Starts at
193
382
  title: Title
@@ -196,10 +385,114 @@ en:
196
385
  answers: Answers
197
386
  max_selections: Max. selections
198
387
  title: Title
388
+ trustees_participatory_space:
389
+ fields:
390
+ considered: considered
391
+ email: Email
392
+ inactive: inactive
393
+ name: Name
394
+ notification: Notification sent at
395
+ public_key: Public Key
396
+ status: Status
199
397
  orders:
200
398
  label: Order elections by
201
399
  older: Older
202
400
  recent: Recent
401
+ trustee_zone:
402
+ elections:
403
+ backup_modal:
404
+ description: This election is being created in the Bulletin Board. Is is very important that every Trustee participating in it creates a backup copy of these keys and store them in a safe place. After that, the process continues.
405
+ download_election_keys: Download keys
406
+ download_icon: Icon that indicates a download action
407
+ title: Backup election keys for %{election}
408
+ key_ceremony_steps:
409
+ back: Back
410
+ description: This election is being created in the Bulletin Board. To complete this process, your participitation as a Trustee is needed.
411
+ keys:
412
+ create_election: Keys generation
413
+ key_ceremony:
414
+ joint_election_key: Joint Key generation
415
+ step_1: Keys publishing
416
+ list:
417
+ status: Status
418
+ task: Task
419
+ process_warning: Once the process is started, you should not exit this page until the process ends. It will take several minutes, as all Trustees should be connected to complete it.
420
+ start: Start
421
+ start_icon: Icon that indicates a start button to start the election keys generation
422
+ status:
423
+ completed: Completed
424
+ pending: Pending
425
+ processing: Processing
426
+ title: Create election keys for %{election}
427
+ restore_modal:
428
+ description: The Bulletin Board has information from you as a Trustee on this election. To continue the process, first upload the backup file generated during the previous session.
429
+ title: Restore election keys for %{election}
430
+ upload_election_keys: Upload election keys
431
+ upload_icon: Icon that indicates a download action
432
+ tally_steps:
433
+ back: Back
434
+ description: The results for this election are being computed in the Bulletin Board. To complete this process, your participitation as a Trustee is needed.
435
+ keys:
436
+ end_tally: Tally ended
437
+ tally:
438
+ cast: Tally cast
439
+ share: Tally share
440
+ list:
441
+ status: Status
442
+ task: Task
443
+ process_warning: Once the process is started, you should not exit this page until the process ends. It will take several minutes, as all Trustees should be connected to complete it.
444
+ start: Start
445
+ start_icon: Icon that indicates a start button to start the election keys generation
446
+ status:
447
+ completed: Completed
448
+ pending: Pending
449
+ processing: Processing
450
+ title: Tally for %{election}
451
+ update:
452
+ error: The election status wasn't updated.
453
+ success: 'The election status is: %{status}'
454
+ menu:
455
+ trustee_zone: Trustee zone
456
+ no_bulletin_board:
457
+ body: A configured Bulletin Board is required for this section. Contact the Administrator for more details.
458
+ title: Sorry, the Bulletin Board is not configured yet.
459
+ trustees:
460
+ show:
461
+ elections:
462
+ list:
463
+ action_required:
464
+ 'false': 'No'
465
+ name: Action required?
466
+ 'true': Perform action
467
+ bb_status: Status
468
+ election: Election
469
+ voting_period: Voting period
470
+ no_elections: There are no elections where you act as a Trustee.
471
+ title: Elections
472
+ identification_keys:
473
+ cancel: Cancel
474
+ generate: Generate identification keys
475
+ generate_error: There was an error generating the identification keys.
476
+ generate_legend: You need to generate an identification pair of keys to participate on elections as a Trustee.
477
+ generate_legend_1: After pressing the button you should download the file with the generated identification keys.
478
+ generate_legend_2: Copy the downloaded file to a clean USB device
479
+ generate_legend_3: Ensure your computer doesn't have a copy of the file (e.g. check the Downloads and Desktop folders).
480
+ generate_legend_4: Make another copy of the file on a different external device and store it in a very safe place.
481
+ submit: Submit
482
+ submit_legend: After following all the steps explained above, complete the process sending the public identification key to the Decidim server.
483
+ submit_title: Submit the public identification key
484
+ title: Trustee identification keys
485
+ upload: Upload your identification keys
486
+ upload_error:
487
+ invalid_format: The uploaded file doesn't contain any identification key.
488
+ invalid_key: The identification keys in the uploaded file can't be loaded.
489
+ invalid_public_key: The identification keys in the uploaded file doesn't match the public identification key stored by Decidim.
490
+ upload_legend: Decidim has your public identification keys, but your browser still doesn't have it. You need to import the file with your identification keys to your computer from the backup you created after generating them.
491
+ not_supported_browser_description: It looks like you are using a web browser that can't be used to act as a Trustee. Make sure you're using the most recent version of your browser, or try using any of the most popular browsers to be able to complete your Trustee tasks.
492
+ not_supported_browser_title: Upgrade browser to act as a Trustee
493
+ trustee_role_description: You have been assigned to act as a Trustee in some of the elections celebrated in this platform.
494
+ update:
495
+ success: Your identification public key was successfully stored.
203
496
  votes:
204
497
  confirm:
205
498
  answer: Answer
@@ -212,15 +505,20 @@ en:
212
505
  question: Question %{count}
213
506
  confirmed:
214
507
  back: Back to elections
508
+ error: Sorry, there was an error confirming the vote. Please vote again.
215
509
  experience: How was your experience?
216
510
  feedback: Give us some feedback
217
511
  header: Vote confirmed
218
512
  lead: Your vote has already been cast!
219
513
  text: 'You can check that your vote has been successfully added to the ballot box with the following identifier: <strong class="evote__poll-id">%{e_vote_poll_id}</strong>'
220
- verify_text: To check it, copy the identifier and paste it on the <a href="evote-verify">vote verification page</a>
514
+ verify_link: To check it, copy the identifier and paste it on the <a href="%{link}">vote verification page</a>
221
515
  encrypting:
222
516
  header: Encoding vote...
223
517
  text: Your vote is being encrypted to ensure you can cast it anonymously.
518
+ failed:
519
+ header: Vote failed
520
+ lead: Your vote has not been casted!
521
+ text: Something went wrong, please try it again.
224
522
  header:
225
523
  confirm: Confirm your vote
226
524
  confirmed: Vote confirmed
@@ -237,6 +535,28 @@ en:
237
535
  preview_alert: This is a preview of the voting booth.
238
536
  question_steps: Question %{current_step} of %{total_steps}
239
537
  selections: "%{selected} of %{max_selections}<br> selections"
538
+ processing:
539
+ header: Processing vote...
540
+ text: Your vote has been received and it is being processing. Please wait.
541
+ update:
542
+ error: There was a problem updating the vote status
543
+ success: Vote status successfully updated
544
+ verify:
545
+ content:
546
+ heading: Verify your vote
547
+ info: This verifier checks that your vote, identified with an encrypted text string, has been cast correctly and is inside the ballot box.
548
+ error:
549
+ header: Vote not found!
550
+ info: The vote code was not found in the %{link} ballot box, try again.
551
+ form:
552
+ back: Back to Decidim
553
+ submit: Check
554
+ vote_identifier: 'Identifier code:'
555
+ header:
556
+ title: Verify your vote
557
+ success:
558
+ header: Vote located!
559
+ info: Your encrypted vote is in the %{link} ballot box
240
560
  voting_step:
241
561
  back: Back
242
562
  continue: Next
@@ -250,6 +570,38 @@ en:
250
570
  email_outro: You have received this notification because you are following %{participatory_space_title}. You can stop receiving notifications following the previous link.
251
571
  email_subject: The %{resource_title} election is now active for %{participatory_space_title}.
252
572
  notification_title: The <a href="%{resource_path}">%{resource_title}</a> election is now active for %{participatory_space_title}.
573
+ trustees:
574
+ new_election:
575
+ email_intro: You got added as a trustee for the %{resource_title} election.
576
+ email_outro: You have received this notification because you've been added as trustee for the %{resource_title} election.
577
+ email_subject: You are a trustee for the %{resource_title} election..
578
+ notification_title: You are a trustee for <a href="%{resource_path}">%{resource_title}</a> election.
579
+ new_trustee:
580
+ email_intro: An admin has added you as trustee for %{resource_name}. You should create your public key <a href='%{trustee_zone_url}'>in your trustee zone</a>
581
+ email_outro: You have received this notification because you've been added as trustee for %{resource_name}.
582
+ email_subject: You are a trustee for %{resource_name}.
583
+ notification_title: You are a trustee for <a href="%{participatory_space_url}">%{resource_name}</a>.
584
+ votes:
585
+ accepted_votes:
586
+ email_intro: 'Your vote was accepted! Using your voting token: %{encrypted_vote_hash}, you can verify your vote <a href="%{verify_url}">here</a>.'
587
+ email_outro: You have received this notification because you've voted for the %{resource_name} election.
588
+ email_subject: Your vote for %{resource_name} was accepted.
589
+ notification_title: 'Your vote was accepted. Verify your vote <a href="%{verify_url}">here</a> using your vote token: %{encrypted_vote_hash}'
590
+ votings:
591
+ polling_officers:
592
+ polling_station_assigned:
593
+ email_intro: You have been assigned as %{role} of the Polling Station %{polling_station_name} in <a href="%{resource_url}">%{resource_title}</a>. You can manage the Polling Station from the dedicated <a href="%{polling_officer_zone_url}">Polling Officer Zone</a>.
594
+ email_outro: You have received this notification because you have been assigned as %{role} of %{polling_station_name}.
595
+ email_subject: You are %{role} of the Polling Station %{polling_station_name}.
596
+ notification_title: You are %{role} of the Polling Station %{polling_station_name} in the voting <a href="%{resource_path}">%{resource_title}</a>.
597
+ help:
598
+ participatory_spaces:
599
+ votings:
600
+ contextual: "<p>A <strong>voting</strong> is a space that allows you to ask a clear question to all the people who form an organization, make a call to participate in the voting, spark and order the debate for or against a response. When the voting date arrives, you can vote and publish the results of the votes.</p> <p>Examples: The votings can be about almost any aspect that affects an organization: some examples are changing the name or logo of the organization offering several alternatives, deciding Yes or No to become part of a larger organization, validating or rejecting a new strategic plan or the result of a working group, or defining whether the positions should remain a maximum of 1, 2 or 3 mandates.</p>\n"
601
+ page: "<p>A <strong>voting</strong> is a space that allows you to ask a clear question to all the people who form an organization, make a call to participate in the voting, spark and order the debate for or against a response. When the voting date arrives, you can vote and publish the results of the votes.</p> <p>Examples: The votings can be about almost any aspect that affects an organization: some examples are changing the name or logo of the organization offering several alternatives, deciding Yes or No to become part of a larger organization, validating or rejecting a new strategic plan or the result of a working group, or defining whether the positions should remain a maximum of 1, 2 or 3 mandates.</p>\n"
602
+ title: What are votings?
603
+ menu:
604
+ votings: Votings
253
605
  pages:
254
606
  home:
255
607
  statistics:
@@ -257,7 +609,285 @@ en:
257
609
  participatory_processes:
258
610
  statistics:
259
611
  elections_count: Elections
612
+ votings:
613
+ admin:
614
+ content_blocks:
615
+ highlighted_votings:
616
+ max_results: Maximum amount of elements to show
617
+ landing_page:
618
+ attachments_and_folders:
619
+ name: Voting attachments and folders
620
+ description:
621
+ name: Voting description
622
+ elections:
623
+ name: Voting elections
624
+ header:
625
+ name: Voting header
626
+ html_block_1:
627
+ name: Voting html block 1
628
+ html_block_2:
629
+ name: Voting html block 2
630
+ html_block_3:
631
+ name: Voting html block 3
632
+ metrics:
633
+ name: Voting metrics
634
+ polling_stations:
635
+ name: Voting polling stations
636
+ stats:
637
+ name: Voting statistics
638
+ timeline:
639
+ name: Voting timeline
640
+ index:
641
+ not_published: Unpublished
642
+ published: Published
643
+ landing_page:
644
+ content_blocks:
645
+ edit:
646
+ update: Update
647
+ edit:
648
+ active_content_blocks: Active content blocks
649
+ inactive_content_blocks: Inactive content blocks
650
+ menu:
651
+ votings: Votings
652
+ votings_submenu:
653
+ attachment_collections: Folders
654
+ attachment_files: Files
655
+ attachments: Attachments
656
+ components: Components
657
+ info: Information
658
+ landing_page: Landing Page
659
+ monitoring_committee_members: Monitoring Committee
660
+ polling_officers: Polling Officers
661
+ polling_stations: Polling Stations
662
+ models:
663
+ monitoring_committee_member:
664
+ fields:
665
+ email: Email
666
+ name: Name
667
+ name: Monitoring Committee Member
668
+ polling_officer:
669
+ fields:
670
+ email: Email
671
+ name: Name
672
+ polling_station: Polling station (role)
673
+ name: Polling Officer
674
+ polling_station:
675
+ fields:
676
+ address: Address
677
+ polling_station_managers: Managers
678
+ polling_station_president: President
679
+ title: Title
680
+ name: Polling Station
681
+ voting:
682
+ fields:
683
+ created_at: Created at
684
+ promoted: Highlighted
685
+ published: Published
686
+ title: Title
687
+ monitoring_committee_members:
688
+ create:
689
+ invalid: There was a problem creating this monitoring committee member
690
+ success: Monitoring committee member successfully created
691
+ destroy:
692
+ invalid: There was a problem deleting this monitoring committee member
693
+ success: Monitoring committee member successfully deleted
694
+ form:
695
+ existing_user: Existing participant
696
+ non_user: Invite new participant
697
+ select_user: Search by name, email or nickname
698
+ user_type: Participant type
699
+ index:
700
+ title: Monitoring committee
701
+ new:
702
+ create: Create
703
+ title: Create monitoring committee member
704
+ polling_officers:
705
+ create:
706
+ invalid: There was a problem creating this polling officer
707
+ success: Polling officer successfully created
708
+ destroy:
709
+ invalid: There was a problem deleting this polling officer
710
+ success: Polling officer successfully deleted
711
+ form:
712
+ existing_user: Existing participant
713
+ non_user: Invite new participant
714
+ select_user: Search by name, email or nickname
715
+ user_type: Participant type
716
+ index:
717
+ role_manager: manager
718
+ role_president: president
719
+ title: Polling officers
720
+ new:
721
+ create: Create
722
+ title: Create polling officer
723
+ polling_officers_picker:
724
+ choose_polling_officers: Choose polling officers
725
+ close: Close
726
+ more_polling_officers: There are %{number} more polling officers. Refine your search to locate them.
727
+ no_polling_officers: No polling officers match your search criteria or there isn't any polling officer.
728
+ polling_stations:
729
+ create:
730
+ invalid: There was a problem creating this polling station
731
+ success: Polling station successfully created
732
+ destroy:
733
+ invalid: There was a problem deleting this polling station
734
+ success: Polling station successfully deleted
735
+ edit:
736
+ title: Edit polling station
737
+ update: Update polling station
738
+ form:
739
+ address_help: 'Address: used by Geocoder to find the location'
740
+ location_help: 'Location: message directed to the voters implying the exact place of the polling station'
741
+ location_hints_help: 'Location hints: additional info. Example: the floor of the building where the polling station is located.'
742
+ polling_station_managers_help: 'Polling station managers: the officers that will act as polling station managers. Make sure the officers have already been created in Polling Officers and that they are not already assigned to another polling station'
743
+ polling_station_president_help: 'Polling station officer: the officer that will act as polling station president. Make sure the officer has already been created in Polling Officers and that (s)he is not already assigned to another polling station'
744
+ select_president: Select a polling officer as president of the polling station
745
+ index:
746
+ title: Polling stations
747
+ new:
748
+ create: Create
749
+ title: Create polling station
750
+ update:
751
+ invalid: There was a problem updating this polling station
752
+ success: Polling station successfully updated
753
+ titles:
754
+ votings: Votings
755
+ votings:
756
+ actions:
757
+ confirm_destroy: Are you sure?
758
+ destroy: Destroy
759
+ new_voting: New Voting Space
760
+ publish: Publish
761
+ unpublish: Unpublish
762
+ create:
763
+ invalid: There was a problem creating this voting
764
+ success: Voting successfully created
765
+ edit:
766
+ add_election_component: You don't have any election configured for this voting. Please add it in the Components section
767
+ assign_missing_officers: There are Polling Stations without President and/or Managers. Please assign them from the Polling stations section
768
+ update: Update
769
+ form:
770
+ select_a_voting_type: Please select a voting type
771
+ slug_help: 'URL slugs are used to generate the URLs that point to this voting. Only accepts letters, numbers and dashes, and must start with a letter. Example: %{url}'
772
+ title: Title
773
+ voting_type:
774
+ hybrid: Hybrid
775
+ in_person: In person
776
+ online: Online
777
+ new:
778
+ create: Create
779
+ title: New Voting
780
+ publish:
781
+ success: Voting successfully published
782
+ unpublish:
783
+ success: Voting successfully unpublished
784
+ update:
785
+ invalid: There was a problem updating this voting
786
+ success: Voting successfully updated
787
+ admin_log:
788
+ voting:
789
+ create: "%{user_name} created the %{resource_name} voting"
790
+ publish: "%{user_name} published the %{resource_name} voting"
791
+ unpublish: "%{user_name} unpublished the %{resource_name} voting"
792
+ content_blocks:
793
+ highlighted_votings:
794
+ name: Highlighted votings
795
+ monitoring_committee_members:
796
+ actions:
797
+ confirm_destroy: Are you sure?
798
+ destroy: Delete
799
+ new: New member
800
+ title: Actions
801
+ pages:
802
+ home:
803
+ highlighted_votings:
804
+ active_votings: Active votings
805
+ see_all_votings: See all votings
806
+ votings_button_title: Link to the Votings page displaying all the votings
807
+ polling_officer_zone:
808
+ menu:
809
+ polling_officer_zone: Polling Officer zone
810
+ polling_officers:
811
+ show:
812
+ actions:
813
+ count_votes: Count the votes in the ballot box
814
+ identify_person: Identify and verify a person
815
+ polling_officer_role_description: You have been assigned to act as a Polling Station Officer (President or Manager) in some of the elections celebrated in this platform.
816
+ polling_stations:
817
+ list:
818
+ actions: Actions
819
+ address: Address
820
+ name: Name
821
+ role: Your role
822
+ voting: Voting
823
+ no_polling_stations: You are not assigned to any Polling Station yet.
824
+ title: Polling Stations
825
+ polling_officers:
826
+ actions:
827
+ confirm_destroy: Are you sure?
828
+ destroy: Delete
829
+ new: New
830
+ title: Actions
831
+ roles:
832
+ manager: Manager
833
+ president: President
834
+ unassigned: Unassigned
835
+ polling_stations:
836
+ actions:
837
+ confirm_destroy: Are you sure?
838
+ destroy: Delete
839
+ edit: Edit
840
+ new: New
841
+ title: Actions
842
+ votings:
843
+ count:
844
+ title:
845
+ one: "%{count} voting"
846
+ other: "%{count} votings"
847
+ filters:
848
+ active: Active
849
+ all: All
850
+ finished: Finished
851
+ search: Search
852
+ state: Status
853
+ upcoming: Upcoming
854
+ filters_small_view:
855
+ close_modal: Close modal
856
+ filter: Filter
857
+ filter_by: Filter by
858
+ unfold: Unfold
859
+ index:
860
+ no_votings: No voting matches your search criteria.
861
+ only_finished: Currently, there are no scheduled votings, but here you can find the finished votings listed.
862
+ title: Votings
863
+ orders:
864
+ label: 'Sort votings by:'
865
+ random: Random
866
+ recent: Most recent
867
+ show:
868
+ dates: Dates
869
+ votings_m:
870
+ badge_name:
871
+ finished: Finished
872
+ ongoing: Ongoing
873
+ upcoming: Upcoming
874
+ footer_button_text:
875
+ participate: Participate
876
+ view: View
877
+ vote: Vote
878
+ unspecified: Not specified
879
+ voting_type:
880
+ hybrid: Hybrid
881
+ in_person: In person
882
+ online: Online
883
+ voting_types_label: Voting type
260
884
  layouts:
261
885
  decidim:
262
886
  election_votes_header:
263
887
  exit: Exit
888
+ votings:
889
+ index:
890
+ promoted_votings: Highlighted votings
891
+ promoted_voting:
892
+ more_info: More info
893
+ vote: Vote