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