decidim-elections 0.24.3 → 0.25.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (433) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -0
  3. data/app/cells/decidim/elections/election_m/tags.erb +3 -0
  4. data/app/cells/decidim/elections/election_m_cell.rb +1 -8
  5. data/app/cells/decidim/elections/election_preview/show.erb +28 -0
  6. data/app/cells/decidim/elections/election_preview_cell.rb +13 -0
  7. data/app/cells/decidim/elections/election_results/blank_votes.erb +7 -0
  8. data/app/cells/decidim/elections/election_results/progress_bar.erb +16 -0
  9. data/app/cells/decidim/elections/election_results/show.erb +40 -0
  10. data/app/cells/decidim/elections/election_results_cell.rb +13 -0
  11. data/app/cells/decidim/elections/election_vote_cta/show.erb +35 -0
  12. data/app/cells/decidim/elections/election_vote_cta_cell.rb +83 -0
  13. data/app/cells/decidim/elections/remaining_time_callout/show.erb +5 -0
  14. data/app/cells/decidim/elections/remaining_time_callout_cell.rb +28 -0
  15. data/app/cells/decidim/elections/voting_step_navigation/show.erb +1 -1
  16. data/app/cells/decidim/elections/voting_step_navigation_cell.rb +1 -1
  17. data/app/cells/decidim/votings/content_blocks/highlighted_votings/show.erb +1 -1
  18. data/app/cells/decidim/votings/content_blocks/landing_page/attachments_and_folders_cell.rb +8 -1
  19. data/app/cells/decidim/votings/content_blocks/landing_page/description/show.erb +25 -0
  20. data/app/cells/decidim/votings/content_blocks/landing_page/description_cell.rb +20 -2
  21. data/app/cells/decidim/votings/content_blocks/landing_page/elections/show.erb +15 -0
  22. data/app/cells/decidim/votings/content_blocks/landing_page/elections/single.erb +11 -0
  23. data/app/cells/decidim/votings/content_blocks/landing_page/elections_cell.rb +33 -1
  24. data/app/cells/decidim/votings/content_blocks/landing_page/header/show.erb +29 -0
  25. data/app/cells/decidim/votings/content_blocks/landing_page/header_cell.rb +95 -2
  26. data/app/cells/decidim/votings/content_blocks/landing_page/header_settings_form/show.erb +4 -0
  27. data/app/cells/decidim/votings/content_blocks/landing_page/{stats_cell.rb → header_settings_form_cell.rb} +5 -3
  28. data/app/cells/decidim/votings/content_blocks/landing_page/metrics/show.erb +12 -0
  29. data/app/cells/decidim/votings/content_blocks/landing_page/metrics_cell.rb +6 -2
  30. data/app/cells/decidim/votings/content_blocks/landing_page/polling_stations/address.erb +14 -0
  31. data/app/cells/decidim/votings/content_blocks/landing_page/polling_stations/map.erb +18 -0
  32. data/app/cells/decidim/votings/content_blocks/landing_page/polling_stations/show.erb +25 -0
  33. data/app/cells/decidim/votings/content_blocks/landing_page/polling_stations_cell.rb +42 -1
  34. data/app/cells/decidim/votings/content_blocks/landing_page/statistics_cell.rb +24 -0
  35. data/app/cells/decidim/votings/content_blocks/landing_page/timeline/show.erb +7 -0
  36. data/app/cells/decidim/votings/content_blocks/landing_page/timeline_cell.rb +4 -2
  37. data/app/cells/decidim/votings/polling_officers/polling_officers_picker/show.erb +1 -1
  38. data/app/cells/decidim/votings/polling_station_closure_certificate/show.erb +9 -0
  39. data/app/cells/decidim/votings/polling_station_closure_certificate_cell.rb +12 -0
  40. data/app/cells/decidim/votings/polling_station_closure_recount/show.erb +74 -0
  41. data/app/cells/decidim/votings/polling_station_closure_recount_cell.rb +9 -0
  42. data/app/cells/decidim/votings/voting_m_cell.rb +2 -2
  43. data/app/commands/decidim/elections/admin/add_user_as_trustee.rb +2 -1
  44. data/app/commands/decidim/elections/admin/create_election.rb +2 -1
  45. data/app/commands/decidim/elections/admin/publish_results.rb +10 -6
  46. data/app/commands/decidim/elections/admin/setup_election.rb +73 -67
  47. data/app/commands/decidim/elections/admin/update_answer_selection.rb +1 -1
  48. data/app/commands/decidim/elections/trustee_zone/update_election_bulletin_board_status.rb +61 -2
  49. data/app/commands/decidim/elections/trustee_zone/update_trustee.rb +3 -0
  50. data/app/commands/decidim/elections/voter/cast_vote.rb +4 -7
  51. data/app/commands/decidim/elections/voter/update_vote_status.rb +23 -7
  52. data/app/commands/decidim/votings/admin/create_ballot_style.rb +58 -0
  53. data/app/commands/decidim/votings/admin/create_voting.rb +2 -1
  54. data/app/commands/decidim/votings/admin/destroy_ballot_style.rb +33 -0
  55. data/app/commands/decidim/votings/admin/monitoring_committee_validate_polling_station_closure.rb +37 -0
  56. data/app/commands/decidim/votings/admin/update_ballot_style.rb +70 -0
  57. data/app/commands/decidim/votings/admin/update_voting.rb +5 -14
  58. data/app/commands/decidim/votings/census/admin/create_dataset.rb +82 -0
  59. data/app/commands/decidim/votings/census/admin/create_datum.rb +55 -0
  60. data/app/commands/decidim/votings/census/admin/destroy_dataset.rb +45 -0
  61. data/app/commands/decidim/votings/census/admin/increment_dataset_processed_rows.rb +43 -0
  62. data/app/commands/decidim/votings/census/admin/launch_access_codes_export.rb +38 -0
  63. data/app/commands/decidim/votings/census/admin/launch_access_codes_generation.rb +44 -0
  64. data/app/commands/decidim/votings/census/admin/update_dataset.rb +51 -0
  65. data/app/commands/decidim/votings/certify_polling_station_closure.rb +46 -0
  66. data/app/commands/decidim/votings/check_census.rb +35 -0
  67. data/app/commands/decidim/votings/create_polling_station_closure.rb +53 -0
  68. data/app/commands/decidim/votings/create_polling_station_results.rb +83 -0
  69. data/app/commands/decidim/votings/send_access_code.rb +48 -0
  70. data/app/commands/decidim/votings/sign_polling_station_closure.rb +41 -0
  71. data/app/commands/decidim/votings/voter/in_person_vote.rb +55 -0
  72. data/app/commands/decidim/votings/voter/update_in_person_vote_status.rb +52 -0
  73. data/app/controllers/concerns/decidim/elections/has_vote_flow.rb +43 -0
  74. data/app/controllers/concerns/decidim/monitoring_committee_polling_station_closures/admin/filterable.rb +72 -0
  75. data/app/controllers/concerns/decidim/votings/needs_voting.rb +5 -5
  76. data/app/controllers/decidim/elections/admin/steps_controller.rb +5 -2
  77. data/app/controllers/decidim/elections/elections_controller.rb +18 -5
  78. data/app/controllers/decidim/elections/feedbacks_controller.rb +37 -3
  79. data/app/controllers/decidim/elections/trustee_zone/elections_controller.rb +15 -1
  80. data/app/controllers/decidim/elections/votes_controller.rb +101 -41
  81. data/app/controllers/decidim/votings/admin/ballot_styles_controller.rb +93 -0
  82. data/app/controllers/decidim/votings/admin/monitoring_committee_election_results_controller.rb +69 -0
  83. data/app/controllers/decidim/votings/admin/monitoring_committee_members_controller.rb +4 -0
  84. data/app/controllers/decidim/votings/admin/monitoring_committee_polling_station_closures_controller.rb +73 -0
  85. data/app/controllers/decidim/votings/admin/monitoring_committee_verify_elections_controller.rb +24 -0
  86. data/app/controllers/decidim/votings/admin/polling_stations_controller.rb +4 -0
  87. data/app/controllers/decidim/votings/admin/votings_controller.rb +1 -1
  88. data/app/controllers/decidim/votings/census/admin/application_controller.rb +19 -0
  89. data/app/controllers/decidim/votings/census/admin/census_controller.rb +191 -0
  90. data/app/controllers/decidim/votings/polling_officer_zone/closures_controller.rb +131 -0
  91. data/app/controllers/decidim/votings/polling_officer_zone/in_person_votes_controller.rb +149 -0
  92. data/app/controllers/decidim/votings/polling_officer_zone/polling_officers_controller.rb +10 -2
  93. data/app/controllers/decidim/votings/votings_controller.rb +91 -4
  94. data/app/events/decidim/elections/votes/vote_accepted_event.rb +1 -1
  95. data/app/forms/decidim/elections/admin/action_form.rb +5 -0
  96. data/app/forms/decidim/elections/admin/question_form.rb +1 -1
  97. data/app/forms/decidim/elections/admin/trustees_participatory_space_form.rb +1 -1
  98. data/app/forms/decidim/elections/{ballot → voter}/verify_vote_form.rb +1 -5
  99. data/app/forms/decidim/elections/voter/vote_form.rb +50 -0
  100. data/app/forms/decidim/votings/admin/ballot_style_form.rb +19 -0
  101. data/app/forms/decidim/votings/admin/monitoring_committee_polling_station_closure_form.rb +11 -0
  102. data/app/forms/decidim/votings/admin/publish_results_form.rb +64 -0
  103. data/app/forms/decidim/votings/admin/voting_form.rb +3 -2
  104. data/app/forms/decidim/votings/answer_result_form.rb +24 -0
  105. data/app/forms/decidim/votings/ballot_result_form.rb +28 -0
  106. data/app/forms/decidim/votings/census/admin/dataset_form.rb +25 -0
  107. data/app/forms/decidim/votings/census/admin/datum_form.rb +30 -0
  108. data/app/forms/decidim/votings/census/check_fields.rb +28 -0
  109. data/app/forms/decidim/votings/census/check_form.rb +13 -0
  110. data/app/forms/decidim/votings/census/frontend_fields.rb +42 -0
  111. data/app/forms/decidim/votings/census/in_person_fields.rb +48 -0
  112. data/app/forms/decidim/votings/census/in_person_form.rb +13 -0
  113. data/app/forms/decidim/votings/census/login_form.rb +13 -0
  114. data/app/forms/decidim/votings/census/online_fields.rb +28 -0
  115. data/app/forms/decidim/votings/closure_certify_form.rb +20 -0
  116. data/app/forms/decidim/votings/closure_result_form.rb +37 -0
  117. data/app/forms/decidim/votings/closure_sign_form.rb +11 -0
  118. data/app/forms/decidim/votings/envelopes_result_form.rb +34 -0
  119. data/app/forms/decidim/votings/question_result_form.rb +24 -0
  120. data/app/forms/decidim/votings/voter/in_person_vote_form.rb +40 -0
  121. data/app/jobs/decidim/votings/census/admin/create_datum_job.rb +41 -0
  122. data/app/jobs/decidim/votings/census/admin/export_access_codes_job.rb +39 -0
  123. data/app/jobs/decidim/votings/census/admin/generate_access_codes_job.rb +44 -0
  124. data/app/mailers/decidim/elections/vote_accepted_mailer.rb +29 -0
  125. data/app/mailers/decidim/votings/access_code_mailer.rb +34 -0
  126. data/app/mailers/decidim/votings/census/export_mailer.rb +44 -0
  127. data/app/models/decidim/elections/action.rb +1 -1
  128. data/app/models/decidim/elections/answer.rb +21 -0
  129. data/app/models/decidim/elections/bulletin_board_closure.rb +19 -0
  130. data/app/models/decidim/elections/election.rb +5 -4
  131. data/app/models/decidim/elections/question.rb +24 -13
  132. data/app/models/decidim/elections/result.rb +22 -0
  133. data/app/models/decidim/elections/trustee.rb +10 -1
  134. data/app/models/decidim/elections/vote.rb +2 -2
  135. data/app/models/decidim/votings/ballot_style.rb +29 -0
  136. data/app/models/decidim/votings/ballot_style_question.rb +11 -0
  137. data/app/models/decidim/votings/census/dataset.rb +32 -0
  138. data/app/models/decidim/votings/census/datum.rb +34 -0
  139. data/app/models/decidim/votings/in_person_vote.rb +22 -0
  140. data/app/models/decidim/votings/polling_station.rb +18 -1
  141. data/app/models/decidim/votings/polling_station_closure.rb +43 -0
  142. data/app/models/decidim/votings/voting.rb +38 -15
  143. data/app/packs/entrypoints/decidim_elections.js +2 -0
  144. data/app/packs/entrypoints/decidim_elections_admin_pending_action.js +1 -0
  145. data/app/packs/entrypoints/decidim_elections_admin_vote_statistics.js +1 -0
  146. data/app/packs/entrypoints/decidim_elections_election_log.js +1 -0
  147. data/app/packs/entrypoints/decidim_elections_onboarding.js +1 -0
  148. data/app/packs/entrypoints/decidim_elections_trustee_key_ceremony.js +1 -0
  149. data/app/packs/entrypoints/decidim_elections_trustee_tally.js +1 -0
  150. data/app/packs/entrypoints/decidim_elections_trustee_trustee_zone.js +1 -0
  151. data/app/packs/entrypoints/decidim_elections_trustee_zone.js +1 -0
  152. data/app/packs/entrypoints/decidim_elections_trustee_zone.scss +1 -0
  153. data/app/packs/entrypoints/decidim_elections_voter_casting-vote.js +1 -0
  154. data/app/packs/entrypoints/decidim_elections_voter_new-vote.js +1 -0
  155. data/app/packs/entrypoints/decidim_elections_voter_setup-preview.js +1 -0
  156. data/app/packs/entrypoints/decidim_elections_voter_setup-vote.js +1 -0
  157. data/app/packs/entrypoints/decidim_elections_voter_verify-vote.js +1 -0
  158. data/app/packs/entrypoints/decidim_votings_admin_monitoring_committee_members_form.js +1 -0
  159. data/app/packs/entrypoints/decidim_votings_admin_polling_officers_form.js +1 -0
  160. data/app/packs/entrypoints/decidim_votings_admin_polling_officers_picker.js +1 -0
  161. data/app/packs/entrypoints/decidim_votings_admin_polling_stations_form.js +1 -0
  162. data/app/packs/entrypoints/decidim_votings_admin_update_census_dataset_status.js +1 -0
  163. data/app/packs/entrypoints/decidim_votings_admin_votings.js +1 -0
  164. data/app/packs/entrypoints/decidim_votings_admin_votings.scss +1 -0
  165. data/app/packs/entrypoints/decidim_votings_in-person-vote.js +1 -0
  166. data/app/packs/entrypoints/decidim_votings_voting-description-cell.js +1 -0
  167. data/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-edit-closure.js +1 -0
  168. data/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-in-person-vote.js +1 -0
  169. data/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-new-closure.js +1 -0
  170. data/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-sign-closure.js +1 -0
  171. data/app/{assets/images/decidim/elections/icon.svg → packs/images/decidim/elections/decidim_elections.svg} +0 -0
  172. data/app/{assets/images/decidim/votings/icon.svg → packs/images/decidim/votings/decidim_votings.svg} +0 -0
  173. data/app/{assets/javascripts/decidim/elections/admin/pending_action.js.es6 → packs/src/decidim/elections/admin/pending_action.js} +4 -6
  174. data/app/{assets/javascripts/decidim/elections/admin/vote_statistics.js.es6 → packs/src/decidim/elections/admin/vote_statistics.js} +0 -0
  175. data/app/packs/src/decidim/elections/election_log.js +145 -0
  176. data/app/packs/src/decidim/elections/onboarding.js +5 -0
  177. data/app/{assets/javascripts/decidim/elections/trustee_zone/key_ceremony.js.es6 → packs/src/decidim/elections/trustee/key_ceremony.js} +59 -22
  178. data/app/{assets/javascripts/decidim/elections/trustee_zone/tally.js.es6 → packs/src/decidim/elections/trustee/tally.js} +48 -12
  179. data/app/{assets/javascripts/decidim/elections/trustee_zone.js.es6 → packs/src/decidim/elections/trustee/trustee_zone.js} +3 -6
  180. data/app/packs/src/decidim/elections/voter/casting-vote.js +14 -0
  181. data/app/packs/src/decidim/elections/voter/new-vote.js +83 -0
  182. data/app/packs/src/decidim/elections/voter/setup-preview.js +79 -0
  183. data/app/packs/src/decidim/elections/voter/setup-vote.js +50 -0
  184. data/app/{assets/javascripts/decidim/elections/vote_verify.js.es6 → packs/src/decidim/elections/voter/verify-vote.js} +22 -21
  185. data/app/packs/src/decidim/elections/voter/vote_questions.component.js +124 -0
  186. data/app/{assets/javascripts/decidim/votings/admin/monitoring_committee_members_form.js.es6 → packs/src/decidim/votings/admin/monitoring_committee_members_form.js} +3 -3
  187. data/app/{assets/javascripts/decidim/votings/admin/polling_officers_form.js.es6 → packs/src/decidim/votings/admin/polling_officers_form.js} +3 -3
  188. data/app/{assets/javascripts/decidim/votings/admin/polling_officers_picker.js.es6 → packs/src/decidim/votings/admin/polling_officers_picker.js} +0 -0
  189. data/app/{assets/javascripts/decidim/votings/admin/polling_stations_form.js.es6 → packs/src/decidim/votings/admin/polling_stations_form.js} +4 -3
  190. data/app/packs/src/decidim/votings/admin/update_census_dataset_status.js +13 -0
  191. data/app/packs/src/decidim/votings/in-person-vote.js +20 -0
  192. data/app/packs/src/decidim/votings/polling_officer_zone/edit-closure.js +26 -0
  193. data/app/packs/src/decidim/votings/polling_officer_zone/in-person-vote.js +5 -0
  194. data/app/packs/src/decidim/votings/polling_officer_zone/new-closure.js +35 -0
  195. data/app/packs/src/decidim/votings/polling_officer_zone/sign-closure.js +13 -0
  196. data/app/packs/src/decidim/votings/voting-description-cell.js +41 -0
  197. data/app/packs/stylesheets/decidim/elections/elections.scss +8 -0
  198. data/app/{assets → packs}/stylesheets/decidim/elections/focus/_accordion.scss +0 -0
  199. data/app/{assets → packs}/stylesheets/decidim/elections/focus/_evote.scss +8 -1
  200. data/app/{assets → packs}/stylesheets/decidim/elections/focus/_focus.scss +0 -0
  201. data/app/{assets → packs}/stylesheets/decidim/elections/trustee_zone.scss +0 -0
  202. data/app/packs/stylesheets/decidim/votings/admin/votings.scss +3 -0
  203. data/app/packs/stylesheets/decidim/votings/admin/votings/_ballot-styles.scss +16 -0
  204. data/app/packs/stylesheets/decidim/votings/admin/votings/_monitoring-committee-polling-station-closures.scss +9 -0
  205. data/app/packs/stylesheets/decidim/votings/admin/votings/_results.scss +3 -0
  206. data/app/packs/stylesheets/decidim/votings/votings.scss +2 -0
  207. data/app/packs/stylesheets/decidim/votings/votings/_polling-stations-cell.scss +6 -0
  208. data/app/packs/stylesheets/decidim/votings/votings/_voting-description-cell.scss +29 -0
  209. data/app/permissions/decidim/elections/admin/permissions.rb +5 -0
  210. data/app/permissions/decidim/elections/permissions.rb +18 -33
  211. data/app/permissions/decidim/votings/admin/permissions.rb +87 -27
  212. data/app/permissions/decidim/votings/permissions.rb +5 -1
  213. data/app/permissions/decidim/votings/polling_officer_zone/permissions.rb +8 -2
  214. data/app/presenters/decidim/votings/census/admin_log/dataset_presenter.rb +30 -0
  215. data/app/presenters/decidim/votings/voting_presenter.rb +2 -11
  216. data/app/presenters/decidim/votings/voting_stats_presenter.rb +52 -0
  217. data/app/queries/decidim/elections/admin/votes_for_statistics.rb +1 -1
  218. data/app/queries/decidim/elections/votes/last_vote_for_voter.rb +29 -0
  219. data/app/queries/decidim/votings/admin/admin_users.rb +15 -10
  220. data/app/queries/decidim/votings/admin/ballot_style_by_voting_code.rb +31 -0
  221. data/app/queries/decidim/votings/votes/in_person_vote_for_voter.rb +27 -0
  222. data/app/queries/decidim/votings/votes/pending_in_person_votes.rb +20 -0
  223. data/app/serializers/decidim/votings/census/datum_serializer.rb +29 -0
  224. data/app/services/decidim/elections/current_user_vote_flow.rb +68 -0
  225. data/app/services/decidim/elections/vote_flow.rb +109 -0
  226. data/app/services/decidim/votings/census/access_codes_exporter.rb +50 -0
  227. data/app/services/decidim/votings/census_vote_flow.rb +106 -0
  228. data/app/uploaders/decidim/cw/votings/census/voting_census_uploader.rb +19 -0
  229. data/app/views/decidim/elections/admin/answers/index.html.erb +23 -4
  230. data/app/views/decidim/elections/admin/elections/index.html.erb +5 -5
  231. data/app/views/decidim/elections/admin/questions/index.html.erb +2 -2
  232. data/app/views/decidim/elections/admin/steps/_results_published.html.erb +62 -0
  233. data/app/views/decidim/elections/admin/steps/_tally_ended.html.erb +49 -3
  234. data/app/views/decidim/elections/admin/steps/_vote.html.erb +1 -1
  235. data/app/views/decidim/elections/admin/steps/_vote_ended.html.erb +4 -0
  236. data/app/views/decidim/elections/admin/steps/index.html.erb +2 -2
  237. data/app/views/decidim/elections/admin/trustees_participatory_spaces/index.html.erb +7 -3
  238. data/app/views/decidim/elections/elections/_filters.html.erb +1 -0
  239. data/app/views/decidim/elections/elections/election_log.html.erb +182 -0
  240. data/app/views/decidim/elections/elections/index.html.erb +0 -2
  241. data/app/views/decidim/elections/elections/show.html.erb +11 -37
  242. data/app/views/decidim/elections/trustee_zone/elections/_key_ceremony_steps.html.erb +41 -39
  243. data/app/views/decidim/elections/trustee_zone/elections/show.html.erb +11 -27
  244. data/app/views/decidim/elections/trustee_zone/elections/update.js.erb +1 -1
  245. data/app/views/decidim/elections/trustee_zone/trustees/show.html.erb +7 -7
  246. data/app/views/decidim/elections/vote_accepted_mailer/notification.html.erb +3 -0
  247. data/app/views/decidim/elections/votes/{_election_votes_header.html.erb → _focus_header.html.erb} +0 -0
  248. data/app/views/decidim/elections/votes/_new_ballot_decision_step.html.erb +30 -0
  249. data/app/views/decidim/elections/votes/{_election_votes_confirm.html.erb → _new_confirm_step.html.erb} +5 -5
  250. data/app/views/decidim/elections/votes/{_election_votes_confirm_footer.html.erb → _new_confirm_step_footer.html.erb} +2 -3
  251. data/app/views/decidim/elections/votes/{_election_votes_encrypting.html.erb → _new_encrypting_step.html.erb} +1 -1
  252. data/app/views/decidim/elections/votes/{_election_votes_question.html.erb → _new_question.html.erb} +7 -7
  253. data/app/views/decidim/elections/votes/{_election_votes_modal.html.erb → _new_question_modal.html.erb} +1 -1
  254. data/app/views/decidim/elections/votes/_onboarding_modal.html.erb +23 -0
  255. data/app/views/decidim/elections/votes/_show_casted.html.erb +36 -0
  256. data/app/views/decidim/elections/votes/_show_casting.html.erb +25 -0
  257. data/app/views/decidim/elections/votes/{_election_votes_failed.html.erb → _show_failed.html.erb} +6 -4
  258. data/app/views/decidim/elections/votes/new.html.erb +29 -16
  259. data/app/views/decidim/elections/votes/show.html.erb +11 -0
  260. data/app/views/decidim/elections/votes/verify.html.erb +6 -9
  261. data/app/views/decidim/votings/access_code_mailer/send_access_code.html.erb +5 -0
  262. data/app/views/decidim/votings/admin/ballot_styles/_form.html.erb +24 -0
  263. data/app/views/decidim/votings/admin/ballot_styles/edit.html.erb +7 -0
  264. data/app/views/decidim/votings/admin/ballot_styles/index.html.erb +68 -0
  265. data/app/views/decidim/votings/admin/ballot_styles/new.html.erb +7 -0
  266. data/app/views/decidim/votings/admin/monitoring_committee_election_results/_results.html.erb +53 -0
  267. data/app/views/decidim/votings/admin/monitoring_committee_election_results/index.html.erb +32 -0
  268. data/app/views/decidim/votings/admin/monitoring_committee_election_results/show.html.erb +24 -0
  269. data/app/views/decidim/votings/admin/monitoring_committee_members/_form.html.erb +1 -1
  270. data/app/views/decidim/votings/admin/monitoring_committee_members/index.html.erb +1 -1
  271. data/app/views/decidim/votings/admin/monitoring_committee_polling_station_closures/_closure_certificate_results.erb +9 -0
  272. data/app/views/decidim/votings/admin/monitoring_committee_polling_station_closures/_closures.html.erb +71 -0
  273. data/app/views/decidim/votings/admin/monitoring_committee_polling_station_closures/_elections.html.erb +32 -0
  274. data/app/views/decidim/votings/admin/monitoring_committee_polling_station_closures/edit.html.erb +29 -0
  275. data/app/views/decidim/votings/admin/monitoring_committee_polling_station_closures/index.html.erb +5 -0
  276. data/app/views/decidim/votings/admin/monitoring_committee_polling_station_closures/show.html.erb +10 -0
  277. data/app/views/decidim/votings/admin/monitoring_committee_verify_elections/index.html.erb +59 -0
  278. data/app/views/decidim/votings/admin/polling_officers/_form.html.erb +1 -1
  279. data/app/views/decidim/votings/admin/polling_officers/index.html.erb +1 -1
  280. data/app/views/decidim/votings/admin/polling_stations/_form.html.erb +1 -1
  281. data/app/views/decidim/votings/admin/polling_stations/index.html.erb +2 -2
  282. data/app/views/decidim/votings/admin/votings/_form.html.erb +9 -2
  283. data/app/views/decidim/votings/admin/votings/edit.html.erb +1 -1
  284. data/app/views/decidim/votings/admin/votings/index.html.erb +3 -2
  285. data/app/views/decidim/votings/census/admin/census/_creating_data.html.erb +10 -0
  286. data/app/views/decidim/votings/census/admin/census/_export_codes.html.erb +8 -0
  287. data/app/views/decidim/votings/census/admin/census/_exporting_codes.html.erb +3 -0
  288. data/app/views/decidim/votings/census/admin/census/_freeze.html.erb +3 -0
  289. data/app/views/decidim/votings/census/admin/census/_generate_codes.html.erb +25 -0
  290. data/app/views/decidim/votings/census/admin/census/_generating_codes.html.erb +3 -0
  291. data/app/views/decidim/votings/census/admin/census/_new_census.html.erb +22 -0
  292. data/app/views/decidim/votings/census/admin/census/_upload_info.html.erb +17 -0
  293. data/app/views/decidim/votings/census/admin/census/show.html.erb +23 -0
  294. data/app/views/decidim/votings/census/admin/census/status.js.erb +1 -0
  295. data/app/views/decidim/votings/census/export_mailer/access_codes_export.erb +7 -0
  296. data/app/views/decidim/votings/polling_officer_zone/closures/_answer_results_form_fields.html.erb +12 -0
  297. data/app/views/decidim/votings/polling_officer_zone/closures/_ballot_results_form_fields.html.erb +40 -0
  298. data/app/views/decidim/votings/polling_officer_zone/closures/_certify_form.html.erb +15 -0
  299. data/app/views/decidim/votings/polling_officer_zone/closures/_modal_ballots_count_error.html.erb +60 -0
  300. data/app/views/decidim/votings/polling_officer_zone/closures/_modal_ballots_results_count_error.html.erb +19 -0
  301. data/app/views/decidim/votings/polling_officer_zone/closures/_question_results_form_fields.html.erb +22 -0
  302. data/app/views/decidim/votings/polling_officer_zone/closures/_sign_form.html.erb +55 -0
  303. data/app/views/decidim/votings/polling_officer_zone/closures/edit.html.erb +48 -0
  304. data/app/views/decidim/votings/polling_officer_zone/closures/new.html.erb +62 -0
  305. data/app/views/decidim/votings/polling_officer_zone/closures/show.html.erb +35 -0
  306. data/app/views/decidim/votings/polling_officer_zone/in_person_votes/_complete_voting.html.erb +59 -0
  307. data/app/views/decidim/votings/polling_officer_zone/in_person_votes/_in_person_form.html.erb +50 -0
  308. data/app/views/decidim/votings/polling_officer_zone/in_person_votes/_verify_document.html.erb +23 -0
  309. data/app/views/decidim/votings/polling_officer_zone/in_person_votes/new.html.erb +21 -0
  310. data/app/views/decidim/votings/polling_officer_zone/in_person_votes/show.html.erb +25 -0
  311. data/app/views/decidim/votings/polling_officer_zone/polling_officers/_polling_station.html.erb +60 -0
  312. data/app/views/decidim/votings/polling_officer_zone/polling_officers/index.html.erb +15 -0
  313. data/app/views/decidim/votings/votings/_access_code_modal.html.erb +33 -0
  314. data/app/views/decidim/votings/votings/_check_fields.html.erb +31 -0
  315. data/app/views/decidim/votings/votings/_filters.html.erb +1 -0
  316. data/app/views/decidim/votings/votings/_promoted_voting.html.erb +1 -1
  317. data/app/views/decidim/votings/votings/check_census.html.erb +64 -0
  318. data/app/views/decidim/votings/votings/elections_log.html.erb +34 -0
  319. data/app/views/decidim/votings/votings/index.html.erb +0 -2
  320. data/app/views/decidim/votings/votings/login.html.erb +50 -0
  321. data/app/views/decidim/votings/votings/show.html.erb +11 -11
  322. data/app/views/layouts/decidim/_election_votes_header.html.erb +3 -3
  323. data/app/views/layouts/decidim/admin/voting.html.erb +5 -83
  324. data/app/views/layouts/decidim/election_votes.html.erb +1 -0
  325. data/app/views/layouts/decidim/voting_landing.html.erb +13 -0
  326. data/app/views/layouts/decidim/{voting.html.erb → votings.html.erb} +3 -1
  327. data/config/assets.rb +35 -0
  328. data/config/initializers/decidim_bulletin_board.rb +17 -11
  329. data/config/initializers/rack_attack.rb +15 -0
  330. data/config/locales/ca.yml +496 -49
  331. data/config/locales/cs.yml +498 -43
  332. data/config/locales/de.yml +469 -44
  333. data/config/locales/el.yml +0 -14
  334. data/config/locales/en.yml +491 -42
  335. data/config/locales/es-MX.yml +338 -42
  336. data/config/locales/es-PY.yml +338 -42
  337. data/config/locales/es.yml +338 -42
  338. data/config/locales/fi-plain.yml +489 -42
  339. data/config/locales/fi.yml +489 -42
  340. data/config/locales/fr-CA.yml +241 -39
  341. data/config/locales/fr-LU.yml +890 -0
  342. data/config/locales/fr.yml +241 -39
  343. data/config/locales/gl.yml +418 -34
  344. data/config/locales/hu.yml +29 -0
  345. data/config/locales/it.yml +1027 -17
  346. data/config/locales/ja.yml +578 -17
  347. data/config/locales/lb-LU.yml +1 -0
  348. data/config/locales/lv.yml +0 -14
  349. data/config/locales/nl.yml +308 -42
  350. data/config/locales/no.yml +12 -36
  351. data/config/locales/pl.yml +670 -215
  352. data/config/locales/pt-BR.yml +1338 -0
  353. data/config/locales/pt.yml +0 -19
  354. data/config/locales/ro-RO.yml +99 -19
  355. data/config/locales/sv.yml +49 -22
  356. data/config/locales/tr-TR.yml +3 -24
  357. data/config/locales/zh-CN.yml +0 -19
  358. data/db/migrate/20210308104024_add_decidim_votings_census_datasets.rb +17 -0
  359. data/db/migrate/20210308104154_add_decidim_votings_census_data.rb +23 -0
  360. data/db/migrate/20210326090435_create_elections_results.rb +16 -0
  361. data/db/migrate/20210330102348_remove_votes_count_from_answer.rb +7 -0
  362. data/db/migrate/20210330123606_add_voting_ballot_style.rb +19 -0
  363. data/db/migrate/20210330183204_add_email_to_votes.rb +10 -0
  364. data/db/migrate/20210331152729_add_census_contact_information_to_votings.rb +7 -0
  365. data/db/migrate/20210401095507_add_organization_to_decidim_elections_trustee.rb +11 -0
  366. data/db/migrate/20210402102215_add_ballot_style_to_decidim_votings_census_data.rb +7 -0
  367. data/db/migrate/20210402140402_add_salt_to_elections.rb +22 -0
  368. data/db/migrate/20210412144721_change_elections_results.rb +24 -0
  369. data/db/migrate/20210412144740_create_elections_bulletin_board_closures.rb +13 -0
  370. data/db/migrate/20210412144741_create_votings_polling_station_closures.rb +22 -0
  371. data/db/migrate/20210420112721_create_decidim_votings_in_person_votes.rb +21 -0
  372. data/db/migrate/20210422124826_add_verifiable_results_to_decidim_elections_election.rb +8 -0
  373. data/db/migrate/20210426072845_add_signed_at_to_polling_station_closure.rb +7 -0
  374. data/db/migrate/20210427131742_add_validated_at_to_votings_polling_station_closures.rb +8 -0
  375. data/db/seeds/Exampledocument.pdf +0 -0
  376. data/db/seeds/city2.jpeg +0 -0
  377. data/lib/decidim/api/bulletin_board_closure_type.rb +16 -0
  378. data/lib/decidim/api/election_answer_type.rb +3 -2
  379. data/lib/decidim/api/election_result_type.rb +19 -0
  380. data/lib/decidim/api/polling_station_closure_type.rb +19 -0
  381. data/lib/decidim/api/polling_station_type.rb +24 -0
  382. data/lib/decidim/elections.rb +8 -0
  383. data/lib/decidim/elections/admin_engine.rb +14 -15
  384. data/lib/decidim/elections/answer_serializer.rb +2 -1
  385. data/lib/decidim/elections/api.rb +2 -0
  386. data/lib/decidim/elections/component.rb +85 -19
  387. data/lib/decidim/elections/engine.rb +4 -6
  388. data/lib/decidim/elections/test/factories.rb +76 -11
  389. data/lib/decidim/elections/trustee_zone_engine.rb +5 -4
  390. data/lib/decidim/elections/version.rb +1 -1
  391. data/lib/decidim/votings.rb +17 -0
  392. data/lib/decidim/votings/admin_engine.rb +134 -8
  393. data/lib/decidim/votings/api.rb +2 -0
  394. data/lib/decidim/votings/census.rb +16 -0
  395. data/lib/decidim/votings/census_admin.rb +12 -0
  396. data/lib/decidim/votings/census_admin_engine.rb +22 -0
  397. data/lib/decidim/votings/census_engine.rb +19 -0
  398. data/lib/decidim/votings/engine.rb +25 -20
  399. data/lib/decidim/votings/participatory_space.rb +149 -2
  400. data/lib/decidim/votings/polling_officer_zone_engine.rb +15 -6
  401. data/lib/decidim/votings/test/factories.rb +163 -0
  402. data/lib/decidim/votings/voting_serializer.rb +1 -0
  403. data/lib/tasks/decidim_voting_census.rake +26 -0
  404. metadata +326 -72
  405. data/app/assets/config/admin/decidim_votings_manifest.css +0 -0
  406. data/app/assets/config/admin/decidim_votings_manifest.js +0 -4
  407. data/app/assets/config/decidim_elections_manifest.css +0 -3
  408. data/app/assets/config/decidim_elections_manifest.js +0 -8
  409. data/app/assets/config/decidim_votings_manifest.css +0 -3
  410. data/app/assets/config/decidim_votings_manifest.js +0 -0
  411. data/app/assets/javascripts/decidim/elections/vote.js.es6 +0 -117
  412. data/app/assets/javascripts/decidim/elections/vote_questions.component.js.es6 +0 -129
  413. data/app/assets/stylesheets/decidim/elections/elections.scss +0 -6
  414. data/app/assets/stylesheets/decidim/votings/votings.scss +0 -1
  415. data/app/assets/stylesheets/decidim/votings/votings/_votings-header.scss +0 -99
  416. data/app/assets/stylesheets/decidim/votings/votings/_votings-home-banner.scss +0 -11
  417. data/app/controllers/decidim/votings/polling_officer_zone/polling_stations_controller.rb +0 -22
  418. data/app/forms/decidim/elections/voter/encrypted_vote_form.rb +0 -49
  419. data/app/helpers/decidim/elections/elections_helper.rb +0 -29
  420. data/app/queries/decidim/elections/votes/election_votes.rb +0 -19
  421. data/app/queries/decidim/elections/votes/user_election_last_vote.rb +0 -26
  422. data/app/queries/decidim/elections/votes/user_votes.rb +0 -19
  423. data/app/views/decidim/elections/elections/_preview.html.erb +0 -26
  424. data/app/views/decidim/elections/elections/_results.html.erb +0 -47
  425. data/app/views/decidim/elections/votes/_election_votes_confirmed.html.erb +0 -47
  426. data/app/views/decidim/elections/votes/_election_votes_steps_header.html.erb +0 -12
  427. data/app/views/decidim/elections/votes/cast_failed.js.erb +0 -1
  428. data/app/views/decidim/elections/votes/cast_success.js.erb +0 -1
  429. data/app/views/decidim/votings/polling_officer_zone/polling_officers/show.html.erb +0 -42
  430. data/app/views/decidim/votings/polling_officer_zone/polling_stations/show.html.erb +0 -1
  431. data/app/views/decidim/votings/votings/_voting_details.html.erb +0 -7
  432. data/app/views/layouts/decidim/_voting_header.html.erb +0 -16
  433. data/config/locales/ja-JP.yml +0 -216
@@ -0,0 +1,34 @@
1
+ <% add_decidim_meta_tags(title: t("votings.index.title", scope: "decidim.votings")) %>
2
+
3
+ <%
4
+ edit_link(
5
+ decidim_admin_votings.votings_path,
6
+ :read,
7
+ :voting
8
+ )
9
+ %>
10
+ <%= cell("decidim/votings/content_blocks/landing_page/header", nil) %>
11
+
12
+ <div class="row section">
13
+ <div class="column large-8">
14
+ <h1 class="heading3"><%= t(".title") %></h1>
15
+ <p><%= t(".description") %></p>
16
+ <div class="card card--list">
17
+ <% elections.each do |election| %>
18
+ <div class="card--list__item">
19
+ <div class="card--list__text">
20
+ <div>
21
+ <%= link_to translated_attribute(election.title), election_log_path(election), class: "card--list__heading heading6" %>
22
+ <span class="text-small">
23
+ <strong><%= t(".bb_status") %>: </strong><%= election.bb_status.to_s.titlecase %>
24
+ </span>
25
+ </div>
26
+ </div>
27
+ <div class="card--list__data">
28
+ <%= icon_link_to "chevron-right", election_log_path(election), t(".election_log"), class:"card--list__data__icon" %>
29
+ </div>
30
+ </div>
31
+ <% end %>
32
+ </div>
33
+ </div>
34
+ </div>
@@ -38,5 +38,3 @@ edit_link(
38
38
  </div>
39
39
  </div>
40
40
  <% end %>
41
-
42
- <%= javascript_include_tag "decidim/filters" %>
@@ -0,0 +1,50 @@
1
+ <% add_decidim_meta_tags(title: translated_attribute(current_participatory_space.title)) %>
2
+
3
+ <%= display_flash_messages unless request.post? && @form.invalid? %>
4
+ <div class="focus__header">
5
+ <div class="row">
6
+ <div class="focus__steps">
7
+ <strong>
8
+ <%= t("votings.login.step", scope: "decidim.votings") %>
9
+ </strong>
10
+ </div>
11
+ <div class="heading5 focus__header-title">
12
+ <%= translated_attribute(election.title) %>
13
+ </div>
14
+ </div>
15
+ </div>
16
+ <div class="focus__content evote">
17
+ <div class="row">
18
+ <h1 class="heading2">
19
+ <%= t("votings.login.title", scope: "decidim.votings") %>
20
+ </h1>
21
+ <div class="evote__content">
22
+ <div class="evote__grid">
23
+ <%= decidim_form_for(@form, url: params[:vote_path], html: { class: "form", autocomplete: "off" }) do |f| %>
24
+ <div class="row mt-sm">
25
+ <div class="columns medium-centered large-8">
26
+ <p class="text-center"><strong><%= t(".form_title") %></strong></p>
27
+ <div class="card">
28
+ <div class="card__content">
29
+ <form>
30
+ <div>
31
+ <%= render partial: "check_fields", locals: { f: f, form: @form } %>
32
+ </div>
33
+ <div>
34
+ <%= f.text_field :access_code, label: t(".access_code"), placeholder: t(".access_code_placeholder") %>
35
+ </div>
36
+ <%= f.submit t(".start_voting"), class: "button expanded mt-s mb-none" %>
37
+ </form>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ <% end %>
43
+ </div>
44
+ <p>
45
+ <%= t("votings.login.dont_have_access_code", scope: "decidim.votings") %>
46
+ <%= link_to t("votings.login.ask_for_a_new_one", scope: "decidim.votings"), voting_check_census_path %>
47
+ </p>
48
+ </div>
49
+ </div>
50
+ </div>
@@ -1,20 +1,20 @@
1
+ <% add_decidim_meta_tags(title: translated_attribute(current_participatory_space.title)) %>
2
+
1
3
  <%
2
4
  edit_link(
3
- resource_locator(current_voting).edit,
5
+ resource_locator(current_participatory_space).edit,
4
6
  :update,
5
7
  :voting,
6
- voting: current_voting
8
+ voting: current_participatory_space
7
9
  )
8
10
  %>
9
11
 
10
- <div class="wrapper">
11
- <div class="row column">
12
- <% Decidim::ContentBlock.published.for_scope(:voting_landing_page, organization: current_organization).where(scoped_resource_id: current_voting.id).each do |content_block| %>
13
- <% next unless content_block.manifest %>
12
+ <% landing_content_blocks.each do |content_block| %>
13
+ <%= cell content_block.manifest.cell, content_block %>
14
+ <% end %>
14
15
 
15
- <%= cell content_block.manifest.cell, content_block %>
16
- <% end %>
17
- </div>
18
- </div>
16
+ <% if landing_content_blocks.empty? %>
17
+ <%= cell("decidim/votings/content_blocks/landing_page/header", nil) %>
19
18
 
20
- <%= render partial: "voting_details", locals: { voting: current_voting } %>
19
+ <%= cell("decidim/votings/content_blocks/landing_page/description", nil) %>
20
+ <% end %>
@@ -1,12 +1,12 @@
1
- <% if booth_mode == :preview %>
1
+ <% if preview_mode? %>
2
2
  <div class="focus__top_warning"><%= icon :warning %> <%= t("decidim.elections.votes.new.preview_alert") %></div>
3
3
  <% end %>
4
4
  <div class="focus__top">
5
5
  <%= render partial: "layouts/decidim/logo", locals: { organization: current_organization } %>
6
6
  <nav class="focus__user topbar__user__logged">
7
- <%= current_user.name %>
7
+ <%= voter_name %>
8
8
  </nav>
9
- <%= link_to election_path(election), class: "focus__exit" do %>
9
+ <%= link_to exit_path, class: "focus__exit" do %>
10
10
  <span class="focus__x-icon" aria-hidden="true">×</span>
11
11
  <%= t(".exit") %>
12
12
  <% end %>
@@ -1,85 +1,7 @@
1
- <% content_for :secondary_nav do %>
2
- <div class="secondary-nav secondary-nav--subnav">
3
- <ul>
4
- <%= public_page_link decidim_votings.voting_path(current_participatory_space) %>
5
- <% if allowed_to? :update, :voting, voting: current_participatory_space %>
6
- <li <% if is_active_link?(decidim_admin_votings.edit_voting_path(current_participatory_space)) %> class="is-active" <% end %>>
7
- <%= aria_selected_link_to t("info", scope: "decidim.votings.admin.menu.votings_submenu"),
8
- decidim_admin_votings.edit_voting_path(current_participatory_space) %>
9
- </li>
10
-
11
- <li <% if is_active_link?(decidim_admin_votings.voting_landing_page_path(current_participatory_space)) %> class="is-active" <% end %>>
12
- <%= aria_selected_link_to t("landing_page", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.edit_voting_landing_page_path(current_participatory_space) %>
13
- </li>
14
- <% end %>
15
-
16
- <% if allowed_to? :read, :component, voting: current_participatory_space %>
17
- <li <% if is_active_link?(decidim_admin_votings.components_path(current_participatory_space)) %> class="is-active" <% end %>>
18
- <%= aria_selected_link_to t("components", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.components_path(current_participatory_space) %>
19
- <ul>
20
- <% current_participatory_space.components.each do |component| %>
21
- <% if component.manifest.admin_engine %>
22
- <li <% if is_active_link?(manage_component_path(component)) %> class="is-active" <% end %>>
23
- <%= link_to manage_component_path(component) do %>
24
- <%= translated_attribute component.name %>
25
- <% if component.primary_stat.present? %>
26
- <span class="component-counter <%= "component-counter--off" if component.primary_stat.zero? %>">
27
- <%= component.primary_stat %>
28
- </span>
29
- <% end %>
30
- <% end %>
31
- </li>
32
- <% end %>
33
- <% end %>
34
- </ul>
35
- </li>
36
- <% end %>
37
-
38
- <% if allowed_to?(:read, :attachment_collection) || allowed_to?(:read, :attachment) %>
39
- <li>
40
- <span class="secondary-nav__subtitle"><%= t("attachments", scope: "decidim.votings.admin.menu.votings_submenu") %></span>
41
- <ul>
42
- <% if allowed_to? :read, :attachment_collection %>
43
- <li <% if is_active_link?(decidim_admin_votings.voting_attachment_collections_path(current_participatory_space)) %> class="is-active" <% end %>>
44
- <%= aria_selected_link_to t("attachment_collections", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.voting_attachment_collections_path(current_participatory_space) %>
45
- </li>
46
- <% end %>
47
- <% if allowed_to? :read, :attachment %>
48
- <li <% if is_active_link?(decidim_admin_votings.voting_attachments_path(current_participatory_space)) %> class="is-active" <% end %>>
49
- <%= aria_selected_link_to t("attachment_files", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.voting_attachments_path(current_participatory_space) %>
50
- </li>
51
- <% end %>
52
- </ul>
53
- </li>
54
- <% end %>
55
-
56
- <% if allowed_to?(:read, :polling_stations) %>
57
- <% if !current_participatory_space.online_voting? %>
58
- <li <% if is_active_link?(decidim_admin_votings.voting_polling_stations_path(current_participatory_space)) %> class="is-active" <% end %>>
59
- <%= aria_selected_link_to t("polling_stations", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.voting_polling_stations_path(current_participatory_space) %>
60
- </li>
61
- <% end %>
62
- <% end %>
63
-
64
- <% if allowed_to?(:read, :polling_officers) %>
65
- <% if !current_participatory_space.online_voting? %>
66
- <li <% if is_active_link?(decidim_admin_votings.voting_polling_officers_path(current_participatory_space)) %> class="is-active" <% end %>>
67
- <%= aria_selected_link_to t("polling_officers", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.voting_polling_officers_path(current_participatory_space) %>
68
- </li>
69
- <% end %>
70
- <% end %>
71
-
72
- <% if allowed_to?(:read, :monitoring_committee_members) %>
73
- <% if !current_participatory_space.online_voting? %>
74
- <li <% if is_active_link?(decidim_admin_votings.voting_monitoring_committee_members_path(current_participatory_space)) %> class="is-active" <% end %>>
75
- <%= aria_selected_link_to t("monitoring_committee_members", scope: "decidim.votings.admin.menu.votings_submenu"), decidim_admin_votings.voting_monitoring_committee_members_path(current_participatory_space) %>
76
- </li>
77
- <% end %>
78
- <% end %>
79
-
80
- <%= Decidim::Admin.view_hooks.render(:admin_secondary_nav, deep_dup) %>
81
- </ul>
82
- </div>
1
+ <% content_for :sidebar_menu_nav do %>
2
+ <%= sidebar_menu(:admin_voting_menu).render do
3
+ public_page_link decidim_votings.voting_path(current_participatory_space)
4
+ end %>
83
5
  <% end %>
84
6
 
85
7
  <%= render "layouts/decidim/admin/application" do %>
@@ -90,7 +12,7 @@
90
12
  </div>
91
13
 
92
14
  <div class="voting-content">
93
- <% if current_participatory_space.needs_elections? %>
15
+ <% if !current_participatory_space.elections.any? %>
94
16
  <%= cell("decidim/announcement", t("votings.edit.add_election_component", scope: "decidim.votings.admin"), callout_class: "alert") %>
95
17
  <% end %>
96
18
  <% if current_participatory_space.polling_stations_with_missing_officers? %>
@@ -19,6 +19,7 @@
19
19
  <main class="focus">
20
20
  <%= render partial: "layouts/decidim/election_votes_header" %>
21
21
  <%= yield %>
22
+ <%= render partial: "layouts/decidim/js_configuration" %>
22
23
  </main>
23
24
  </body>
24
25
  </html>
@@ -0,0 +1,13 @@
1
+ <%= render "layouts/decidim/application" do %>
2
+ <%= yield %>
3
+
4
+ <% if content_for? :expanded %>
5
+ <div class="expanded">
6
+ <div class="wrapper wrapper--inner">
7
+ <div class="row">
8
+ <%= yield :expanded %>
9
+ </div>
10
+ </div>
11
+ </div>
12
+ <% end %>
13
+ <% end %>
@@ -1,9 +1,11 @@
1
1
  <%= render "layouts/decidim/application" do %>
2
+ <%= cell("decidim/votings/content_blocks/landing_page/header", nil) %>
3
+
2
4
  <div class="wrapper">
3
- <%= render partial: "layouts/decidim/voting_header" %>
4
5
  <%= cell "decidim/translation_bar", current_organization %>
5
6
  <%= yield %>
6
7
  </div>
8
+
7
9
  <% if content_for? :expanded %>
8
10
  <div class="expanded">
9
11
  <div class="wrapper wrapper--inner">
data/config/assets.rb ADDED
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ base_path = File.expand_path("..", __dir__)
4
+
5
+ Decidim::Webpacker.register_path("#{base_path}/app/packs")
6
+ Decidim::Webpacker.register_entrypoints(
7
+ decidim_elections: "#{base_path}/app/packs/entrypoints/decidim_elections.js",
8
+ decidim_elections_election_log: "#{base_path}/app/packs/entrypoints/decidim_elections_election_log.js",
9
+ decidim_elections_onboarding: "#{base_path}/app/packs/entrypoints/decidim_elections_onboarding.js",
10
+ decidim_elections_admin_pending_action: "#{base_path}/app/packs/entrypoints/decidim_elections_admin_pending_action.js",
11
+ decidim_elections_admin_vote_statistics: "#{base_path}/app/packs/entrypoints/decidim_elections_admin_vote_statistics.js",
12
+ decidim_elections_trustee_key_ceremony: "#{base_path}/app/packs/entrypoints/decidim_elections_trustee_key_ceremony.js",
13
+ decidim_elections_trustee_tally: "#{base_path}/app/packs/entrypoints/decidim_elections_trustee_tally.js",
14
+ decidim_elections_trustee_zone: "#{base_path}/app/packs/entrypoints/decidim_elections_trustee_zone.js",
15
+ decidim_elections_trustee_trustee_zone: "#{base_path}/app/packs/entrypoints/decidim_elections_trustee_trustee_zone.js",
16
+ decidim_elections_voter_casting_vote: "#{base_path}/app/packs/entrypoints/decidim_elections_voter_casting-vote.js",
17
+ decidim_elections_voter_new_vote: "#{base_path}/app/packs/entrypoints/decidim_elections_voter_new-vote.js",
18
+ decidim_elections_voter_setup_preview: "#{base_path}/app/packs/entrypoints/decidim_elections_voter_setup-preview.js",
19
+ decidim_elections_voter_setup_vote: "#{base_path}/app/packs/entrypoints/decidim_elections_voter_setup-vote.js",
20
+ decidim_elections_voter_verify_vote: "#{base_path}/app/packs/entrypoints/decidim_elections_voter_verify-vote.js",
21
+ decidim_votings_admin_monitoring_committee_members_form: "#{base_path}/app/packs/entrypoints/decidim_votings_admin_monitoring_committee_members_form.js",
22
+ decidim_votings_admin_polling_officers_form: "#{base_path}/app/packs/entrypoints/decidim_votings_admin_polling_officers_form.js",
23
+ decidim_votings_admin_polling_officers_picker: "#{base_path}/app/packs/entrypoints/decidim_votings_admin_polling_officers_picker.js",
24
+ decidim_votings_voting_polling_officer_zone_in_person_vote: "#{base_path}/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-in-person-vote.js",
25
+ decidim_votings_voting_polling_officer_zone_new_closure: "#{base_path}/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-new-closure.js",
26
+ decidim_votings_voting_polling_officer_zone_edit_closure: "#{base_path}/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-edit-closure.js",
27
+ decidim_votings_voting_polling_officer_zone_sign_closure: "#{base_path}/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-sign-closure.js",
28
+ decidim_votings_admin_polling_stations_form: "#{base_path}/app/packs/entrypoints/decidim_votings_admin_polling_stations_form.js",
29
+ decidim_votings_admin_update_census_dataset_status: "#{base_path}/app/packs/entrypoints/decidim_votings_admin_update_census_dataset_status.js",
30
+ decidim_votings_voting_description_cell: "#{base_path}/app/packs/entrypoints/decidim_votings_voting-description-cell.js",
31
+ decidim_votings_in_person_vote: "#{base_path}/app/packs/entrypoints/decidim_votings_in-person-vote.js",
32
+ decidim_votings_admin_votings: "#{base_path}/app/packs/entrypoints/decidim_votings_admin_votings.js"
33
+ )
34
+ Decidim::Webpacker.register_stylesheet_import("stylesheets/decidim/elections/elections")
35
+ Decidim::Webpacker.register_stylesheet_import("stylesheets/decidim/votings/votings")
@@ -1,23 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- return if Rails.application.secrets.bulletin_board.blank?
3
+ return if Rails.application.secrets.elections.blank?
4
4
 
5
5
  Decidim::BulletinBoard.configure do |config|
6
6
  # Exposes a configuration option: the bulletin board server
7
- config.server = Rails.application.secrets.bulletin_board[:server]
7
+ config.bulletin_board_server = Rails.application.secrets.elections[:bulletin_board_server]
8
8
 
9
- # Exposes a configuration option: the api key generated by the Bulletin Board for the Decidim instance
10
- config.api_key = Rails.application.secrets.bulletin_board[:api_key]
9
+ # Exposes a configuration option: the bulletin board public key
10
+ config.bulletin_board_public_key = Rails.application.secrets.elections[:bulletin_board_public_key]
11
11
 
12
- # Exposes a configuration option: the scheme to be used for messages
13
- config.scheme = Rails.application.secrets.bulletin_board[:scheme]
12
+ # Exposes a configuration option: the api key generated by the Bulletin Board for the Decidim instance
13
+ config.authority_api_key = Rails.application.secrets.elections[:authority_api_key]
14
14
 
15
15
  # Exposes a configuration option: the authority name String
16
- config.authority_name = Rails.application.secrets.bulletin_board[:authority_name]
17
-
18
- # Exposes a configuration option: number of trustees for an election
19
- config.number_of_trustees = Rails.application.secrets.bulletin_board[:number_of_trustees]
16
+ config.authority_name = Rails.application.secrets.elections[:authority_name]
20
17
 
21
18
  # Exposes a configuration option: private key, that got generated by the Decidim instance
22
- config.identification_private_key = Rails.application.secrets.bulletin_board[:identification_private_key]
19
+ config.authority_private_key = Rails.application.secrets.elections[:authority_private_key]
20
+
21
+ # Exposes a configuration option: the scheme name to be used for messages
22
+ config.scheme_name = Rails.application.secrets.elections[:scheme_name]
23
+
24
+ # Exposes a configuration option: the quorum
25
+ config.quorum = Rails.application.secrets.elections[:quorum]
26
+
27
+ # Exposes a configuration option: number of trustees for an election
28
+ config.number_of_trustees = Rails.application.secrets.elections[:number_of_trustees]
23
29
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ if Rails.env.production? || Rails.env.test?
4
+ require "rack/attack"
5
+
6
+ # Throttle check census attempts by IP to 6 reqs/minute
7
+ # Return the IP as a discriminator on POST /check_census requests
8
+ Rack::Attack.throttle(
9
+ "limit check census data attempts per request by IP",
10
+ limit: Decidim::Votings.check_census_max_requests,
11
+ period: Decidim::Votings.throttling_period
12
+ ) do |request|
13
+ request.ip if request.path.include?("/check_census") && request.post?
14
+ end
15
+ end
@@ -43,7 +43,7 @@ ca:
43
43
  presided_polling_station:
44
44
  president_and_manager: El gestor de mesa ja es president/gestor del punt de votació
45
45
  voting:
46
- different_organization: La votació ha d'estar a la mateixa organització que l'usuària
46
+ different_organization: La votació ha d'estar a la mateixa organització que la usuària
47
47
  decidim/votings/polling_station:
48
48
  attributes:
49
49
  polling_station_president:
@@ -58,6 +58,12 @@ ca:
58
58
  decidim/elections/question:
59
59
  one: Pregunta
60
60
  other: Preguntes
61
+ decidim/votings/census/dataset:
62
+ one: Conjunt de dades
63
+ other: Conjunts de dades
64
+ decidim/votings/census/datum:
65
+ one: Dada
66
+ other: Dades
61
67
  decidim/votings/polling_officer:
62
68
  one: Gestor de mesa
63
69
  other: Gestors de mesa
@@ -71,7 +77,7 @@ ca:
71
77
  admin:
72
78
  filters:
73
79
  officers_assigned_eq:
74
- label: Gestors
80
+ label: Responsables
75
81
  values:
76
82
  assigned: Assignat
77
83
  unassigned: No assignat
@@ -84,7 +90,17 @@ ca:
84
90
  search_placeholder:
85
91
  name_or_email_or_nickname_or_presided_station_title_or_managed_station_title_cont: Cerca a %{collection} per nom, correu electrònic o àlies, o bé per punt de votació.
86
92
  ? title_or_address_or_manager_name_or_manager_email_or_manager_nickname_or_president_name_or_president_email_or_president_nickname_cont
87
- : Cercar %{collection} per títol, adreça o nom del gestor/email/àlies.
93
+ : Cerca %{collection} per títol, adreça o bé per responsable, amb el seu nom, correu electrònic o àlies.
94
+ signed_eq:
95
+ label: Signat
96
+ values:
97
+ 'false': Signat
98
+ 'true': Sense signar
99
+ validated_eq:
100
+ label: Validat
101
+ values:
102
+ 'false': Validat
103
+ 'true': Sense validar
88
104
  components:
89
105
  elections:
90
106
  actions:
@@ -127,11 +143,13 @@ ca:
127
143
  new:
128
144
  create: Crear resposta
129
145
  title: Nova resposta
146
+ not_selected: No seleccionada
130
147
  select:
131
148
  disable: Deseleccionar resposta
132
149
  enable: Marcar resposta com seleccionada
133
150
  invalid: S'ha produït un error en seleccionar la resposta
134
151
  success: Resposta seleccionada correctament
152
+ selected: Seleccionada
135
153
  unselect:
136
154
  invalid: Hi ha hagut un problema en deseleccionar la resposta
137
155
  success: Resposta deseleccionada correctament
@@ -164,6 +182,8 @@ ca:
164
182
  exports:
165
183
  elections: Eleccions
166
184
  feedback_form_answers: Feedback de les respostes
185
+ menu:
186
+ trustees: Garants
167
187
  models:
168
188
  answer:
169
189
  name: Resposta
@@ -246,12 +266,24 @@ ca:
246
266
  title: A punt per començar
247
267
  processing: Processant...
248
268
  results_published:
269
+ answer: Resposta
270
+ not_selected: No seleccionat
271
+ question: Pregunta
272
+ result: Resultat
273
+ selected: Seleccionat
274
+ submit: Enviar
249
275
  title: Resultats publicats
250
276
  tally:
251
277
  title: Procés de recompte
252
278
  trustees: Garants
253
279
  tally_ended:
280
+ answer: Resposta
281
+ not_selected: No seleccionat
282
+ question: Pregunta
283
+ result: Resultat
284
+ selected: Seleccionat
254
285
  submit: Publicar resultats
286
+ success: La sol·licitud per publicar els resultats s'ha enviat correctament al Bulletin Board
255
287
  title: Resultats calculats
256
288
  vote:
257
289
  errors:
@@ -266,6 +298,7 @@ ca:
266
298
  invalid: S'ha produït un error en començar el recompte
267
299
  submit: Començar recompte
268
300
  success: La sol·licitud per iniciar el recompte s'ha enviat correctament al Bulletin Board
301
+ text: La votació ha finalitzat. Pots iniciar el recompte ara.
269
302
  title: Període de votació finalitzat
270
303
  vote_stats:
271
304
  no_vote_statistics_yet: Les estadístiques de votacions encara no estan disponibles
@@ -281,10 +314,10 @@ ca:
281
314
  invalid: S'ha produït un error en crear un nou garant
282
315
  success: Garant creat correctament
283
316
  delete:
284
- invalid: S'ha produït un error en creant aquest garant
317
+ invalid: S'ha produït un error en eliminar aquest garant
285
318
  success: Garant eliminat correctament
286
319
  form:
287
- select_user: Selecciona l'usuari
320
+ select_user: Seleccionar usuari
288
321
  index:
289
322
  title: Garants
290
323
  new:
@@ -297,6 +330,7 @@ ca:
297
330
  election:
298
331
  end_vote: "%{user_name} ha finalittzat el període de votació per l'elecció %{resource_name} al Bulletin Board"
299
332
  publish: "%{user_name} ha publicat la votació %{resource_name}"
333
+ publish_results: "%{user_name} ha publicat els resultats de l'elecció %{resource_name} al Bulletin Board"
300
334
  setup: "%{user_name} ha creat l'elecció %{resource_name} al Bulletin Board"
301
335
  start_key_ceremony: "%{user_name} va començar la cerimònia de claus per l'elecció %{resource_name} al Bulletin Board"
302
336
  start_tally: "%{user_name} ha iniciat el recompte per a l'elecció %{resource_name} al Bulletin Board"
@@ -309,6 +343,9 @@ ca:
309
343
  upcoming: Properes
310
344
  end_date: Finalitza
311
345
  footer:
346
+ remaining_time:
347
+ one: "queda <strong>%{count} hora %{minutes} minuts</strong> per votar."
348
+ other: "queden <strong>%{count} hores %{minutes} minuts</strong> per votar."
312
349
  view: Veure
313
350
  vote: Votar
314
351
  label:
@@ -321,6 +358,51 @@ ca:
321
358
  elections_count:
322
359
  one: "%{count} votació"
323
360
  other: "%{count} votacions"
361
+ election_log:
362
+ chained_hash: El Hash encadenat d'aquest missatge
363
+ complete: Completar
364
+ creation_description:
365
+ complete: L'elecció s'ha creat i s'ha configurat amb èxit al Bulletin Board.
366
+ not_created: L'elecció no s'ha creat encara.
367
+ creation_title: Elecció creada
368
+ description: Aquest és el registre de l'elecció on pots comprovar l'estat de cada pas, per exemple, quan es va crear l'elecció, si el procés de recompte s'ha completat i quan s'ha tancat l'elecció.
369
+ download: Descarregar
370
+ key_ceremony_description:
371
+ complete: La cerimònia de claus s'ha completat. Tots els garants tenen claus vàlides i han descarregat les claus de seguretat necessàries.
372
+ not_started: La cerimònia de claus no ha començat encara.
373
+ started: La cerimònia de claus ha començat però no s'ha completat encara.
374
+ key_ceremony_title: Cerimònia de claus
375
+ not_available: Encara no està disponible
376
+ not_created: No s'ha creat
377
+ not_published: No publicat
378
+ not_ready: No preparat
379
+ not_started: No s'ha iniciat
380
+ published: Publicat
381
+ results_description:
382
+ not_published: Els resultats no s'han publicat encara.
383
+ published: Els resultats s'han publicat.
384
+ results_title: Resultats
385
+ started: Iniciat
386
+ tally_description:
387
+ finished: El procés de recompte ha finalitzat.
388
+ not_started: El procés de recompte no ha començat encara.
389
+ started: El procés de recompte ha començat.
390
+ tally_title: Procés de recompte
391
+ title: Registre de l'elecció
392
+ verifiable_results:
393
+ checksum: 'Suma de comprovació SHA256 de l''arxiu:'
394
+ description:
395
+ not_ready: L'arxiu verificable de l'elecció i la suma de comprovació SHA256 encara no estan disponibles. Quan es publiquin els resultats, podràs verificar aquesta elecció.
396
+ ready: 'Aquí tens l''opció de verificar l''elecció. En primer lloc, has de descarregar l''arxiu i assegurar-te que no s''ha corromput. Per a això, executa el següent comando i comprova que la sortida coincideix amb la suma de comprovació:'
397
+ how_to_verify: 'Una vegada que hagis descarregat l''arxiu i t''hagis assegurat que està bé, pots procedir a executar el verificador universal. Clona <a href=''https://github.com/decidim/decidim-bulletin-board''>aquest repositori</a> i, des de la carpeta arrel, executa el següent comando:'
398
+ title: Verificar resultats de l'elecció
399
+ verifiable_file: 'Arxiu verificable de l''elecció:'
400
+ verify: Verificar elecció
401
+ vote_description:
402
+ finished: El procés de votació ha finalitzat.
403
+ not_started: El procés de votació no ha començat encara.
404
+ started: El procés de votació ha començat.
405
+ vote_title: Procés de votació
324
406
  filters:
325
407
  active: Activa
326
408
  all: Totes
@@ -334,31 +416,33 @@ ca:
334
416
  filter_by: Filtra per
335
417
  unfold: Desplegar
336
418
  preview:
337
- available_answers: Respostes disponibles
338
- description: Aquestes són les preguntes que trobaràs al procés de votació
419
+ available_answers: 'Respostes disponibles:'
420
+ description: 'Aquestes són les preguntes que trobaràs al procés de votació:'
339
421
  title: Preguntes de l'elecció
340
422
  results:
341
- description: Aquests són els resultats de la votació, per a cada pregunta
423
+ description: 'Aquests són els resultats de la votació, per a cada pregunta:'
424
+ percentage: "%{count}%"
342
425
  selected: Seleccionat
343
426
  title: Resultats de l'elecció
344
427
  votes:
345
428
  one: "%{count} vot"
346
429
  other: "%{count} vots"
347
- zero: "%{count} vots"
348
430
  show:
349
- action-button:
350
- change-vote: Canvia el teu vot
431
+ action_button:
432
+ change_vote: Canvia el teu vot
351
433
  vote: Començar a votar
352
- vote-again: Votar de nou
434
+ vote_again: Votar de nou
353
435
  back: Eleccions disponibles
354
436
  callout:
355
- already-voted: Ja has votat en aquesta elecció. Pots canviar el teu vot o verificar-lo.
356
- vote-rejected: No ha estat possible verificar el teu vot. Si us plau, fes-ho de nou.
437
+ already_voted: Ja has votat en aquesta elecció. Pots canviar el teu vot o verificar-lo.
438
+ pending_vote: S'està dipositant el vot al servidor.
439
+ vote_rejected: No ha estat possible verificar el teu vot. Si us plau, fes-ho de nou.
440
+ election_log: Registre de l'elecció
357
441
  preview: Previsualitzar
358
442
  verify:
359
- already-voted: Ja has votat?
360
- verify-here: Comprova el teu vot aquí.
361
- will-verify: Podràs verificar el teu vot una vegada comenci l'elecció.
443
+ already_voted: Ja has votat?
444
+ verify_here: Comprova el teu vot aquí.
445
+ will_verify: Podràs verificar el teu vot una vegada comenci l'elecció.
362
446
  voting_period_status:
363
447
  finished: La votació va començar el %{start_time} i va acabar el %{end_time}
364
448
  ongoing: 'Votació activa fins: %{end_time}'
@@ -372,13 +456,17 @@ ca:
372
456
  answer:
373
457
  fields:
374
458
  proposals: Propostes
459
+ selected: Seleccionat
375
460
  title: Títol
461
+ votes: Vots
376
462
  election:
377
463
  fields:
378
464
  bb_status: Estat del tBulletin Board
379
465
  end_time: Finalitza el
380
466
  start_time: Comença el
381
467
  title: Títol
468
+ verifiable_results_file_hash: Comprovació de suma SHA256 del fitxer
469
+ verifiable_results_file_url: Fitxer de verificació de l'elecció
382
470
  question:
383
471
  fields:
384
472
  answers: Respostes
@@ -493,6 +581,16 @@ ca:
493
581
  update:
494
582
  success: La teva clau pública d'identificació va ser guardada amb èxit.
495
583
  votes:
584
+ ballot_decision:
585
+ audit: "( Auditar papereta )"
586
+ back: Començar de nou el procés de votació
587
+ ballot_hash: 'L''identificador de la teva papereta és:'
588
+ cast: Enviar papereta
589
+ description: Aquí tens les opcions per emetre la teva papereta perquè sigui degudament comptada o, alternativament, pots auditar que la teva papereta hagi estat xifrada correctament. Per raons de seguretat, l'auditoria de la teva papereta l'espatllarà, cosa que significa, que per a emetre el teu vot hauràs de reiniciar el procés de votació.
590
+ header: 'La papereta està xifrada: pots dipositar-la o auditar-la'
591
+ casting:
592
+ header: El vot s'està dipositant...
593
+ text: La papereta s'està dipositant a l'urna.
496
594
  confirm:
497
595
  answer: Resposta
498
596
  answer_number: resposta %{number}
@@ -504,25 +602,31 @@ ca:
504
602
  question: Preguntes %{count}
505
603
  confirmed:
506
604
  back: Tornar a les votacions
507
- error: Ho sentim, hi ha hagut un error al guardar el teu vot. Si us plau, vota de nou.
508
605
  experience: Com valores l'experiència?
509
606
  feedback: Dona'ns la teva opinió
510
607
  header: Vot confirmat
511
608
  lead: El teu vot ha estat emès!
512
609
  text: 'Pots comprovar que el teu vot s''ha afegit correctament a l''urna amb el següent identificador: <strong class="evote__poll-id">%{e_vote_poll_id}</strong>'
513
610
  verify_link: Per comprovar-ho, copia l'identificador i enganxa'l a la <a href="%{link}">pàgina de verificació de vot</a>
611
+ create:
612
+ error: Hi ha hagut un problema en emetre el vot. Prova-ho de nou.
514
613
  encrypting:
515
- header: Codificant el vot...
516
- text: El teu vot s'està xifrant per assegurar-te que l'emets de forma anònima.
614
+ header: El vot s'està xifrant...
615
+ text: La teva papereta s'està xifrant per a garantir el secret de vot.
517
616
  failed:
518
617
  header: Vot fallit
519
618
  lead: El teu vot no s'ha enviat!
520
619
  text: Alguna cosa ha anat malament. Si us plau, torna-ho a provar.
620
+ try_again: Prova-ho de nou
521
621
  header:
622
+ ballot_decision: Envia o audita el teu vot
623
+ casting: El vot s'està dipositant
522
624
  confirm: Confirma el teu vot
523
625
  confirmed: Vot confirmat
524
- encrypting: Confirmant vot
626
+ encrypting: El vot s'està xifrant
627
+ failed: Error en el vot
525
628
  messages:
629
+ invalid_token: La sessió de la cabina de votació no és vàlida. Prova de votar de nou.
526
630
  not_allowed: No pots votar en aquesta votació en aquest moment.
527
631
  modal:
528
632
  close: Tancar
@@ -534,12 +638,14 @@ ca:
534
638
  preview_alert: Aquesta és una vista prèvia de la cabina de votació.
535
639
  question_steps: Pregunta %{current_step} de %{total_steps}
536
640
  selections: "Seleccionada <br> %{selected} de %{max_selections}"
537
- processing:
538
- header: Processant...
539
- text: El teu vot s'ha rebut i s'està processant. Si us plau espera.
641
+ onboarding_modal:
642
+ close: Tanca el modal
643
+ create_account: Crea un compte
644
+ description: Vols crear un nou compte al Decidim? Podràs participar als processos i ser una part activa de l'organització.
645
+ no_account: No, gràcies.
646
+ title: Primer cop a Decidim?
540
647
  update:
541
- error: S'ha produït un error en actualitzar l'estat del vot
542
- success: L'estat del vot s'ha actualitzat correctament
648
+ error: Hi ha hagut un error en actualitzar el vot. Prova-ho de nou.
543
649
  verify:
544
650
  content:
545
651
  heading: Verifica el teu vot
@@ -593,6 +699,9 @@ ca:
593
699
  email_outro: Has rebut aquesta notificació perquè t'han assignat com %{role} de %{polling_station_name}.
594
700
  email_subject: Ets %{role} del punt de votació %{polling_station_name}.
595
701
  notification_title: Ets %{role} del punt de votació %{polling_station_name} a la votació <a href="%{resource_path}">%{resource_title}</a>.
702
+ send_access_code:
703
+ instruction: 'Aquí tens el codi d''accés que havies demanat: %{access_code}. Amb això ja pots participar a %{voting}.'
704
+ subject: El teu codi d'accés per participar a %{voting}
596
705
  help:
597
706
  participatory_spaces:
598
707
  votings:
@@ -601,15 +710,42 @@ ca:
601
710
  title: Què són les votacions?
602
711
  menu:
603
712
  votings: Votacions
604
- pages:
605
- home:
606
- statistics:
607
- elections_count: Votacions
608
- participatory_processes:
609
- statistics:
610
- elections_count: Votacions
713
+ statistics:
714
+ elections_count: Eleccions
715
+ votings_count: Votacions
611
716
  votings:
612
717
  admin:
718
+ ballot_styles:
719
+ create:
720
+ error: Hi ha hagut un error en crear l'estil de papereta
721
+ success: L'estil de papereta s'ha creat correctament
722
+ destroy:
723
+ invalid: Hi ha hagut un error en esborrar l'estil de papereta
724
+ success: S'ha esborrat l'estil de papereta correctament
725
+ edit:
726
+ title: Editar estil de papereta
727
+ update: Actualitzar
728
+ form:
729
+ code_help: 'Pista: El codi és l''enllaç entre el cens i l''estil de papereta. Quan puges les dades del cens, a cada entrada s''assigna un estil de papereta segons el seu codi'
730
+ election: Elecció
731
+ questions: Preguntes per a l'estil de papereta
732
+ questions_help: 'Pista: Escull les preguntes assignades a aquest estil de papereta en el component d''elecció per presentar-les a votants'
733
+ index:
734
+ actions:
735
+ confirm_destroy: N'estàs segura?
736
+ destroy: Esborrar
737
+ edit: Editar
738
+ new: Nou
739
+ title: Accions
740
+ associated_census_data: Entrades del cens associades
741
+ explanation_callout: Un estil de papereta especifica quines són les preguntes que veuran els votants a la cabina. Així, en aquesta elecció pots escollir-ne quines formaran part de la papereta. El codi d'estil de papereta normalment comprova al cens quin és el votant per tal de mostrar una o altra papereta a la cabina. No creïs cap estil de papereta si es mostren sempre les mateixes preguntes a tothom.
742
+ title: Estils de papereta
743
+ new:
744
+ create: Crear
745
+ title: Crear un estil de papereta
746
+ update:
747
+ invalid: Hi ha hagut un error en actualitzar l'estil de papereta
748
+ success: L'estil de papereta s'ha actualitzat correctament
613
749
  content_blocks:
614
750
  highlighted_votings:
615
751
  max_results: Quantitat màxima d'elements per mostrar
@@ -652,13 +788,23 @@ ca:
652
788
  attachment_collections: Carpetes
653
789
  attachment_files: Arxius
654
790
  attachments: Adjunts
791
+ ballot_styles: Estils de papereta
792
+ census: Cens
655
793
  components: Components
656
794
  info: Informació
657
795
  landing_page: Pàgina d'inici
658
- monitoring_committee_members: Comitè de seguiment
796
+ monitoring_committee: Comitè de seguiment
797
+ monitoring_committee_election_results: Valida els resultats
798
+ monitoring_committee_members: Membres
799
+ monitoring_committee_polling_station_closures: Valida els certificats
800
+ monitoring_committee_verify_elections: Valida les eleccions
659
801
  polling_officers: Gestors de mesa
660
802
  polling_stations: Punts de votació
661
803
  models:
804
+ ballot_style:
805
+ fields:
806
+ code: Codi
807
+ name: Estil de papereta
662
808
  monitoring_committee_member:
663
809
  fields:
664
810
  email: Correu electrònic
@@ -683,6 +829,33 @@ ca:
683
829
  promoted: Destacada
684
830
  published: Publicada
685
831
  title: Títol
832
+ monitoring_committee_election_results:
833
+ actions:
834
+ title: Accions
835
+ view: Mostra
836
+ index:
837
+ title: Escull l'elecció per veure-hi els resultats
838
+ results:
839
+ bulletin_board: Butlletí d'informació
840
+ election_totals: Totals de l'elecció
841
+ polling_stations: Punts de votació
842
+ result_types:
843
+ blank_answers: Respostes en blanc
844
+ blank_ballots: Vots en blanc
845
+ null_ballots: Vots nuls
846
+ total_ballots: Vots totals
847
+ valid_ballots: Vots vàlids
848
+ selected: Seleccionat
849
+ title: Resultats de l'elecció <i>%{election_title}</i>
850
+ totals: Totals
851
+ show:
852
+ change_election: Canvia d'elecció
853
+ publish_results: Publica els resultats
854
+ publishing: Estem publicant els resultats...
855
+ update:
856
+ invalid: Hi ha hagut un problema en publicar els resultats
857
+ rejected: El Butlletí d'Informació ha rebutjat la publicació dels resultats. Prova-ho de nou, o contacta amb l'administració del sistema.
858
+ success: Hem publicat correctament els resultats
686
859
  monitoring_committee_members:
687
860
  create:
688
861
  invalid: Hi ha hagut un problema en crear aquest membre del comitè de seguiment
@@ -700,6 +873,38 @@ ca:
700
873
  new:
701
874
  create: Crear
702
875
  title: Crear membre del comitè de seguiment
876
+ monitoring_committee_polling_station_closures:
877
+ actions:
878
+ title: Accions
879
+ validate: Valida
880
+ view: Mostra
881
+ closures:
882
+ change_election: Canvia d'elecció
883
+ signed: Signat?
884
+ title: Punts de votació de l'elecció <i>%{election_title}</i>
885
+ validated: Validat?
886
+ edit:
887
+ change_polling_station: Torna als punts de votació
888
+ monitoring_committee_notes: Observacions
889
+ monitoring_committee_notes_placeholder: Informa de qualsevol incidència aquí
890
+ title: Els resultats de l'elecció <i>%{election_title}</i> en el punt de votació <i>%{polling_station_title}</i>
891
+ elections:
892
+ title: Escull una elecció per validar
893
+ show:
894
+ change_polling_station: Torna als punts de votació
895
+ monitoring_committee_notes: Annotacions del Comitè de Seguiment
896
+ validate:
897
+ error: Hi ha hagut un problema en validar la cloenda
898
+ success: Hem validat correctament la cloenda
899
+ monitoring_committee_verify_elections:
900
+ index:
901
+ download: Baixa
902
+ how_to_checksum: 'Per assegurar-nos que el fitxer descarregat no estigui corromput o compromè durant el procès de baixada, executa el següent ordre en la consola i comprova que la resposta de sortida coincideixi amb la comprovació de suma que s''informa a dalt:'
903
+ how_to_download: Per verificar l'elecció, baixa el fitxer verificable de la taula de dalt.
904
+ how_to_run_verifier: 'Una vegada que has descarregat el fitxer i te''n has assegurat que és correcte, pots executar-hi el verificador universal. Clona <a href=''https://github.com/decidim/decidim-bulletin-board''>el repositori</a> i, des de la carpeta d''arrel, executa la següent ordre:'
905
+ how_to_title: Com es verifica la validesa d'una elecció
906
+ not_available: Encara no està disponible
907
+ title: Eleccions
703
908
  polling_officers:
704
909
  create:
705
910
  invalid: S'ha produït un error en crear aquest gestor de mesa
@@ -723,7 +928,7 @@ ca:
723
928
  choose_polling_officers: Escollir gestors de mesa
724
929
  close: Tancar
725
930
  more_polling_officers: Hi ha %{number} gestors de mesa més. Refina la teva cerca per localitzar-los.
726
- no_polling_officers: Cap gestor de mesa coincideix amb els teus criteris de cerca o no n'hi ha cap.
931
+ no_polling_officers: No hi ha gestors de mesa que coincideixin amb els teus criteris de cerca o no existeix cap.
727
932
  polling_stations:
728
933
  create:
729
934
  invalid: S'ha produït un error en crear aquest punt de votació
@@ -766,6 +971,7 @@ ca:
766
971
  assign_missing_officers: Hi ha punts de votació sense president i/o gestors. Si us plau, assigna'ls des de la secció de punts de votació
767
972
  update: Actualitzar
768
973
  form:
974
+ census_contact_information_help: La informació de contacte és per a participants que vulguin avisar d'incidències amb el cens. Pot ser una adreça de correu electrònic, un formulari de contacte ubicat en un altre lloc web, una enquesta de Decidim per a visitants, etc.
769
975
  select_a_voting_type: Si us plau selecciona un tipus de votació
770
976
  slug_help: 'Els noms curts d''URL s''utilitzen per generar els URL que apunten a aquest procés. Només accepta lletres, números i guions, i ha de començar amb una lletra. Exemple: %{url}'
771
977
  title: Títol
@@ -788,9 +994,84 @@ ca:
788
994
  create: "%{user_name} ha creat la votació %{resource_name}"
789
995
  publish: "%{user_name} ha publicat la votació %{resource_name}"
790
996
  unpublish: "%{user_name} ha despublicat la votació %{resource_name}"
997
+ census:
998
+ admin:
999
+ census:
1000
+ create:
1001
+ invalid: Hi ha hagut un error en pujar el cens, prova-ho de nou més tard.
1002
+ invalid_csv_header: La capçalera CSV no té el nombre correcte de camps. Consulta les instruccions amb atenció
1003
+ creating_data:
1004
+ info_message: "<strong>Si us plau espera</strong>, processades %{processed_count} de %{raw_count} fileres al fitxer de %{file}."
1005
+ delete:
1006
+ button: Eliminar totes les dades del cens
1007
+ confirm: L'eliminació del cens no es pot desfer. Segur que vols continuar?
1008
+ destroy:
1009
+ error: Hi ha hagut un error en esborrar el cens, prova-ho de nou més tard.
1010
+ success: Dades del cens eliminades
1011
+ export_access_codes:
1012
+ button: Exportar els codis d'accés de la votació
1013
+ callout: Ara ja pots exportar els codis d'accés. Això només es pot fer una sola vegada. Tan bon punt comencis amb l'exportació, rebràs un correu electrònic amb les instruccions a <strong>%{email}</strong>
1014
+ confirm: Només pots exportar els codis d'accés una sola vegada. Assegura't de poder rebre'ls correctament a l'adreça de correu electrònic <strong>%{email}</strong>.
1015
+ file_not_exists: El fitxer no existeix
1016
+ launch_error: Hi ha hagut un error en exportar els codis d'accés
1017
+ launch_success: S'ha iniciat l'exportació dels codis d'accés. En breu rebràs un correu a %{email}
1018
+ exporting_access_codes:
1019
+ info_message: "<strong>Si us plau espera</strong>, s'està preparant l'exportació. En breu rebràs un correu a %{email}"
1020
+ freeze:
1021
+ callout: El cens està tancat i no es pot modificar.
1022
+ generate_access_codes:
1023
+ button: Generar els codis d'accés de la votació
1024
+ callout: Ara ja pots generar els codis d'accés. Tingues en compte que, un cop els hagis generat, ja no podràs modificar el cens.
1025
+ confirm: Si continues, ja no podràs modificar el cens.
1026
+ info_message_all: "<strong>S'han exportat correctament totes les fileres</strong> del fitxer %{file} (%{raw_count} de %{data_count})."
1027
+ info_message_warn: Si us plau, comprova que no s'hagi perdut cap dada, s'han creat %{data_count} registres i el fitxer pujat %{file} té %{raw_count} fileres.
1028
+ launch_error: Hi ha hagut un error en generar els codis d'accés
1029
+ launch_success: S'ha iniciat la generació dels codis.
1030
+ generating_access_codes:
1031
+ info_message: "<strong>Si us plau, espera</strong>, s'estan generant el codis d'accés a la votació..."
1032
+ new:
1033
+ file_help:
1034
+ explanation: 'Instruccions per al fitxer:'
1035
+ message_1: Només es permeten fitxers CSV (.csv).
1036
+ message_2: El separador entre columnes ha de ser un punt i coma (";").
1037
+ has_ballot_styles_message: Estàs configurant estils de papereta. Si us plau assegura't de que el camp "%{ballot_style_code_header}" del CSV correspongui al codi de l'estil de papereta que vols.
1038
+ info_message: "<strong>Encara no hi ha cap cens.</strong> Si us plau, utilitza el següent formulari per a crear-lo important un fitxer CSV."
1039
+ missing_ballot_styles_message: 'Encara no hi ha cap estil de papereta per a aquesta votació. Si vols disposar de preguntes condicionals (com ara que votants puguin rebre diferents preguntes segons el seu districte o la seva regió de residència, per exemple) cal que importis el cens <strong>abans</strong> de configurar l''<a href=%{ballot_styles_admin_path}>estil de papereta</a>. Si el que vols és mostrar les mateixes preguntes a tothom, pots iniciar el procès d''importació del cens.'
1040
+ submit: Enviar csv
1041
+ title: Crear el cens
1042
+ show:
1043
+ heading: Cens de l'espai de votació
1044
+ upload_info:
1045
+ csv_example_with_ballot_style: 'Exemple del fitxer <strong>amb</strong> estils de papereta:'
1046
+ csv_example_without_ballot_style: 'Exemple del fitxer <strong>sense</strong> estils de papereta:'
1047
+ csv_header_after: No incloguis l'últim camp ("%{ballot_style_code_header}") si no necessites preguntes condicionals/estils de papereta
1048
+ csv_header_before: 'El fitxer del cens ha de ser un fitxer CSV amb la següent capçalera:'
1049
+ document_types:
1050
+ dni: DNI
1051
+ nie: NIE
1052
+ passport: Passaport
1053
+ export_mailer:
1054
+ access_codes_export:
1055
+ click_button: 'Clica el següent enllaç per baixar les dades dels codis d''accés.<br/>El fitxer estarà disponible fins el %{date}.<br/>Per obrir-lo, cal que disposis de <a href="https://www.7-zip.org/">7-Zip</a> (per a Windows), <a href="https://www.keka.io/en/">Keka</a> (per a MacOS) o bé <a href="https://peazip.github.io">PeaZip</a> (per a Linux). Contrasenya: %{password}'
1056
+ download: Descarregar
1057
+ subject: L'exportació dels codis d'accés a la votació de %{voting_title} està disponible
1058
+ vote_flow:
1059
+ already_voted_in_person: La participant ja ha votat de forma presencial i no se l'insta a votar.
1060
+ datum_not_found: No hi ha cap votant amb aquestes dades.
791
1061
  content_blocks:
792
1062
  highlighted_votings:
793
1063
  name: Votacions destacades
1064
+ landing_page:
1065
+ description:
1066
+ show_less: Llegir menys
1067
+ show_more: Llegir més
1068
+ metrics:
1069
+ heading: Mètriques
1070
+ polling_stations:
1071
+ heading: Punts de votació
1072
+ no_polling_stations: Encara no hi ha cap punt de voració.
1073
+ timeline:
1074
+ heading: Línia de temps
794
1075
  monitoring_committee_members:
795
1076
  actions:
796
1077
  confirm_destroy: N'estàs segura?
@@ -804,23 +1085,124 @@ ca:
804
1085
  see_all_votings: Veure totes les votacions
805
1086
  votings_button_title: Enllaç a la pàgina de Votacions que les mostra totes
806
1087
  polling_officer_zone:
1088
+ closures:
1089
+ back_to_polling_stations: Tornar als punts de votació
1090
+ certify:
1091
+ add_images: Afegeix imatges
1092
+ error: S'ha produït un error en annexar el certificat. Torneu a provar-ho.
1093
+ form_legend: Puja una imatge del Certificat de Cloenda Electoral
1094
+ heading: Recompte de vots - Puja certificat
1095
+ info_text: Puja una imatge del Certificat de Cloenda Electoral.
1096
+ submit: Puja el certificat
1097
+ success: Hem pujat el certificat correctament.
1098
+ create:
1099
+ error: S'ha produït un error en crear el tancament. Si us plau, intenta-ho més tard.
1100
+ success: Tancament creat correctament.
1101
+ edit:
1102
+ heading: Recompte de vots - recompte de respostes
1103
+ info_text: Si us plau, introdueix el nombre total de respostes per a cada pregunta.
1104
+ modal_ballots_results_count_error:
1105
+ close_modal: Tancar
1106
+ info_text: El nombre total de paperetes no coincideix amb el nombre total de sobres. Si us plau, revisa el total de paperetes.
1107
+ title: El total de paperetes no coincideix
1108
+ save_recount: Desar recompte
1109
+ total_ballots: Total de paperetes
1110
+ total_blank_ballots: Total de paperetes en blanc
1111
+ total_null_ballots: Total de paperetes nul·les
1112
+ total_valid_ballots: Total de paperetes vàlides
1113
+ new:
1114
+ election: 'Elecció:'
1115
+ heading: Recompte de vots
1116
+ info_text: 'Si us plau, introdueix el nombre total de paperetes (sobres) recomptades en aquest punt de votació:'
1117
+ modal_ballots_count_error:
1118
+ btn_validate_total: Validar recompte total de paperetes
1119
+ close_modal: Tancar
1120
+ info_explanation_text: 'Si us plau, revisa el nombre total de paperetes. Si el número total és correcte, has de proporcionar una explicació per al Comitè de Seguiment:'
1121
+ info_text: El nombre total de paperetes (sobres) introduïdes no coincideix amb el registre de persones que han votat en aquest punt de votació.
1122
+ message_for_monitoring_committee: Missatge per al Comitè de Seguiment
1123
+ review_recount: Revisar el recompte
1124
+ text_area_placeholder: Si us plau, escriu el teu missatge
1125
+ title: El total de registres no coincideix
1126
+ total_ballots: 'Total de paperetes:'
1127
+ total_people: 'Total de persones:'
1128
+ polling_station: 'Punt de votació:'
1129
+ submit: Verificar nombre total
1130
+ total_ballots_count: Nombre de paperetes
1131
+ show:
1132
+ heading: Recompte de vots
1133
+ info_text: Cloenda electoral del punt de votació.
1134
+ sign:
1135
+ cancel: Cancel·la
1136
+ check_box: Ho he revisat i és idèntic que el certificat físic de cloenda electoral
1137
+ close_modal: Clou
1138
+ confirm: D'acord, continua
1139
+ error: Ha occorregut un error. Torna a provar-ho.
1140
+ heading: Recompte de vots - Signa la cloenda
1141
+ info_text: D'ara en endavant ja no podríeu modificar cap informació perquè l'acció no es pot desfer.
1142
+ submit: Signa la cloenda
1143
+ success: Has signat correctament la cloenda.
1144
+ title: No es pot desfer l'acció
1145
+ update:
1146
+ error: S'ha produït un error en actualitzar els resultats del tancament. Intenta-ho de nou més tard.
1147
+ success: Resultats de tancament actualitzats correctament.
1148
+ in_person_votes:
1149
+ complete_voting:
1150
+ available_answers: 'Respostes disponibles:'
1151
+ census_verified: La participant encara no ha votat.
1152
+ complete_voting: Completa el vot
1153
+ identify_another: Identifica una altra participant
1154
+ questions_title: 'Se l''insta a votar les següents preguntes:'
1155
+ questions_title_voted: 'La participant ja ha votat en línia i se l''insta a votar les següents preguntes:'
1156
+ voted: La participant ha votat
1157
+ create:
1158
+ error: No hem registrat el vot. Prova-ho de nou.
1159
+ in_person_form:
1160
+ census_not_present: La participant no és a la llista del cens.
1161
+ census_not_present_description: Ha d'anar a l'oficina del cens o contactar l'assistència.
1162
+ date_of_birth: Data de naixement
1163
+ day: Dia
1164
+ day_placeholder: DD
1165
+ document_number: Número de document
1166
+ document_number_placeholder: Número d'ID
1167
+ month: Mes
1168
+ month_placeholder: MM
1169
+ select: Escull el tipus de document
1170
+ title: 'Escull el tipus de document i introdueix el número de document de la participant:'
1171
+ validate_document: Valida el document
1172
+ year: Any
1173
+ year_placeholder: AAAA
1174
+ new:
1175
+ back: Torna als punts de votació
1176
+ title: Identifica i verifica participant
1177
+ show:
1178
+ back: Torna als punts de votació
1179
+ title: En espera del registre de vot presencial
1180
+ update:
1181
+ error: Hi ha hagut un problema en registrar el vot. Prova-ho de nou.
1182
+ success:
1183
+ accepted: Hem registrat el vot correctament.
1184
+ rejected: El Butlletí d'Informació no ha acceptat el vot. Contacta amb l'administrador del sistema.
1185
+ verify_document:
1186
+ census_present: Hem trobat la participant al cens.
1187
+ name: Nom
1188
+ title: 'Comprova que les dades següents són correctes:'
1189
+ verify_document: Verifica el document
807
1190
  menu:
808
1191
  polling_officer_zone: Zona del gestor de mesa
809
1192
  polling_officers:
810
- show:
811
- actions:
812
- count_votes: Comptar els vots a les urnes
813
- identify_person: Identificar i verificar una persona
1193
+ index:
814
1194
  polling_officer_role_description: Has estat assignat per a actuar com a gestor de mesa (President o Administrador) en algunes de les eleccions celebrades en aquesta plataforma.
815
- polling_stations:
816
- list:
817
- actions: Accions
818
- address: Adreça
819
- name: Nom
820
- role: El teu rol
821
- voting: Votacions
1195
+ polling_station:
1196
+ address: Adreça
1197
+ count_votes: Comptar vots
1198
+ election: Elecció
1199
+ identify_person: Identificar una persona
1200
+ name: Nom
822
1201
  no_polling_stations: Encara no has estat assignat a cap punt de votació.
1202
+ role: El teu rol
1203
+ show_closure: Veure tancament
823
1204
  title: Punts de votació
1205
+ voting: Votacions
824
1206
  polling_officers:
825
1207
  actions:
826
1208
  confirm_destroy: N'estàs segura?
@@ -831,6 +1213,16 @@ ca:
831
1213
  manager: Administrador
832
1214
  president: President
833
1215
  unassigned: Sense assignar
1216
+ polling_station_closure_recount:
1217
+ nota_option: En blanc, o cap dels de dalt
1218
+ polling_officer_notes: 'Annotacions del gestor de mesa:'
1219
+ polling_officer_notes_blank: Cap annotació
1220
+ recount_summary: 'Sumari del recompte:'
1221
+ signed: Signat
1222
+ total_ballots: 'Vots en total:'
1223
+ total_blank_ballots: 'Vots en blanc en total:'
1224
+ total_null_ballots: 'Vots nuls en total:'
1225
+ total_valid_ballots: 'Vots vàlids en total:'
834
1226
  polling_stations:
835
1227
  actions:
836
1228
  confirm_destroy: N'estàs segura?
@@ -839,14 +1231,52 @@ ca:
839
1231
  new: Nou
840
1232
  title: Accions
841
1233
  votings:
1234
+ access_code_modal:
1235
+ email: Envia un correu a %{email}
1236
+ info: Necessites un codi d'accés per perticipar-hi. Si no n'has rebut cap per correu postal, podem enviar-te un de nou.
1237
+ no_email: No hi ha cap correu disponible
1238
+ no_sms: No hi ha cap número de telèfon disponible
1239
+ sms: Envia un SMS a %{sms}
1240
+ title: Obtenir un codi d'accés
1241
+ check_census:
1242
+ check_status: Comprovar l'estat
1243
+ description: Comprova les dades del cens per saber si tens dret a participar en la votació. Si les dades són correctes, hauries de tenir ja un codi d'accés, però si l'has perdut pots demanar-lo de nou si les teves dades són correctes.
1244
+ error:
1245
+ info: 'Prova de nou, si us plau. Si creus que les dades que tenim al sistema no són correctes, pots avisar-nos a %{census_contact_information}.'
1246
+ title: Les teves dades del cens no són correctes!
1247
+ form_title: 'Emplena el formulari següent per comprovar les dades del cens:'
1248
+ invalid: Hi ha hagut un problema en comprovar el cens.
1249
+ success:
1250
+ access_link: via SMS o correu electrònic.
1251
+ info: Ja hauries d'haver rebut el codi d'accés per correu postal. En cas que no l'hagis rebut, pots demanar-lo de nou aquí
1252
+ title: Les teves dades del cens són correctes!
1253
+ title: Puc votar?
1254
+ check_fields:
1255
+ date_of_birth: Data de naixement
1256
+ day: Dia
1257
+ day_placeholder: DD
1258
+ document_number: Número de document
1259
+ document_number_placeholder: Número d'ID
1260
+ month: Mes
1261
+ month_placeholder: MM
1262
+ postal_code: Codi postal
1263
+ postal_code_placeholder: Número del codi postal
1264
+ select: Selecciona el tipus de document
1265
+ year: Any
1266
+ year_placeholder: AAAA
842
1267
  count:
843
1268
  title:
844
1269
  one: "%{count} votació"
845
1270
  other: "%{count} votacions"
1271
+ elections_log:
1272
+ bb_status: Estat de l'elecció
1273
+ description: El registre de l'elecció et mostrarà tota la informació rellevant sobre cada votació. Per exemple, l'estat de la cerimònia de claus o el recompte o si els resultats ja estan publicats. Fes clic en l'elecció sobre la qual vols la informació del registre.
1274
+ election_log: Registre de l'elecció
1275
+ title: Registre de l'elecció
846
1276
  filters:
847
1277
  active: Actives
848
- all: Todas
849
- finished: Finalizades
1278
+ all: Totes
1279
+ finished: Finalitzades
850
1280
  search: Cercar
851
1281
  state: Estat
852
1282
  upcoming: Properes
@@ -859,15 +1289,28 @@ ca:
859
1289
  no_votings: Cap votació s'ajusta als vostres criteris de cerca.
860
1290
  only_finished: Actualment no hi ha votacions programades, però podeu trobar les votacions ja finalitzades.
861
1291
  title: Votacions
1292
+ login:
1293
+ access_code: Codi d'accés
1294
+ access_code_placeholder: Codi d'accés
1295
+ ask_for_a_new_one: Sol·licita'n un de nou.
1296
+ dont_have_access_code: No tens un codi d'accès?
1297
+ form_title: 'Emplena el formulari següent per accedir a la votació:'
1298
+ start_voting: Començar a votar
1299
+ step: Identificació
1300
+ title: Vull identificar-me amb les meves dades del cens de la votació
1301
+ no_census_contact_information: Encara no hi ha cap informació de contacte
862
1302
  orders:
863
1303
  label: 'Ordenar votacions per:'
864
1304
  random: Aleatori
865
1305
  recent: Més recents
1306
+ send_access_code:
1307
+ invalid: Hi ha hagut un problema en enviar el codi d'accès
1308
+ success: El codi d'accès s'ha enviat correctament
866
1309
  show:
867
1310
  dates: Dates
868
1311
  votings_m:
869
1312
  badge_name:
870
- finished: Finalizades
1313
+ finished: Finalitzades
871
1314
  ongoing: En curs
872
1315
  upcoming: Properes
873
1316
  footer_button_text:
@@ -884,6 +1327,10 @@ ca:
884
1327
  decidim:
885
1328
  election_votes_header:
886
1329
  exit: Sortir
1330
+ voting_navigation:
1331
+ check_census: Puc votar?
1332
+ election_log: Registre de l'elecció
1333
+ voting_menu_item: La votació
887
1334
  votings:
888
1335
  index:
889
1336
  promoted_votings: Votacions destacades