decidim-elections 0.27.8 → 0.28.0.rc4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +60 -3
- data/app/cells/decidim/elections/content_blocks/related_elections_cell.rb +13 -0
- data/app/cells/decidim/elections/election_cell.rb +7 -2
- data/app/cells/decidim/elections/election_g_cell.rb +23 -0
- data/app/cells/decidim/elections/election_metadata_cell.rb +57 -0
- data/app/cells/decidim/elections/election_preview/show.erb +24 -24
- data/app/cells/decidim/elections/election_results/progress_bar.erb +6 -7
- data/app/cells/decidim/elections/election_results/show.erb +36 -33
- data/app/cells/decidim/elections/election_s_cell.rb +10 -0
- data/app/cells/decidim/elections/election_vote_cta/show.erb +14 -26
- data/app/cells/decidim/elections/election_vote_cta_cell.rb +0 -9
- data/app/cells/decidim/elections/highlighted_elections_for_component/show.erb +18 -0
- data/app/cells/decidim/elections/highlighted_elections_for_component_cell.rb +50 -0
- data/app/cells/decidim/elections/remaining_time_callout/show.erb +1 -3
- data/app/cells/decidim/elections/voting_step_navigation/show.erb +21 -25
- data/app/cells/decidim/elections/voting_step_navigation_cell.rb +2 -2
- data/app/cells/decidim/votings/content_block_cell.rb +5 -1
- data/app/cells/decidim/votings/content_blocks/hero_cell.rb +53 -0
- data/app/cells/decidim/votings/content_blocks/hero_settings_form_cell.rb +15 -0
- data/app/cells/decidim/votings/content_blocks/highlighted_votings_cell.rb +12 -21
- data/app/cells/decidim/votings/content_blocks/highlighted_votings_settings_form/show.erb +1 -1
- data/app/cells/decidim/votings/content_blocks/main_data_cell.rb +34 -0
- data/app/cells/decidim/votings/content_blocks/metrics_cell.rb +17 -0
- data/app/cells/decidim/votings/content_blocks/polling_stations/show.erb +21 -0
- data/app/cells/decidim/votings/content_blocks/polling_stations_cell.rb +31 -0
- data/app/cells/decidim/votings/content_blocks/statistics_cell.rb +18 -0
- data/app/cells/decidim/votings/polling_officers/polling_officers_picker/show.erb +14 -13
- data/app/cells/decidim/votings/polling_officers/polling_officers_picker_cell.rb +19 -16
- data/app/cells/decidim/votings/polling_station_closure_certificate/show.erb +5 -7
- data/app/cells/decidim/votings/polling_station_closure_recount/show.erb +55 -59
- data/app/cells/decidim/votings/voting_cell.rb +7 -2
- data/app/cells/decidim/votings/voting_dropdown_metadata_cell.rb +19 -0
- data/app/cells/decidim/votings/voting_g_cell.rb +19 -0
- data/app/cells/decidim/votings/voting_map/show.erb +16 -0
- data/app/cells/decidim/votings/voting_map_cell.rb +28 -0
- data/app/cells/decidim/votings/voting_metadata_cell.rb +66 -0
- data/app/cells/decidim/votings/voting_s_cell.rb +10 -0
- data/app/commands/decidim/elections/admin/add_user_as_trustee.rb +5 -5
- data/app/commands/decidim/elections/admin/create_answer.rb +0 -1
- data/app/commands/decidim/elections/admin/create_election.rb +0 -1
- data/app/commands/decidim/elections/admin/destroy_answer.rb +0 -1
- data/app/commands/decidim/elections/admin/destroy_election.rb +0 -1
- data/app/commands/decidim/elections/admin/end_vote.rb +2 -2
- data/app/commands/decidim/elections/admin/import_proposals_to_elections.rb +1 -1
- data/app/commands/decidim/elections/admin/publish_election.rb +1 -1
- data/app/commands/decidim/elections/admin/publish_results.rb +2 -2
- data/app/commands/decidim/elections/admin/report_missing_trustee.rb +2 -2
- data/app/commands/decidim/elections/admin/setup_election.rb +2 -2
- data/app/commands/decidim/elections/admin/start_key_ceremony.rb +2 -2
- data/app/commands/decidim/elections/admin/start_tally.rb +2 -2
- data/app/commands/decidim/elections/admin/start_vote.rb +2 -2
- data/app/commands/decidim/elections/admin/unpublish_election.rb +1 -1
- data/app/commands/decidim/elections/admin/update_answer.rb +0 -1
- data/app/commands/decidim/elections/admin/update_answer_selection.rb +1 -1
- data/app/commands/decidim/elections/admin/update_election.rb +0 -1
- data/app/commands/decidim/elections/trustee_zone/update_election_bulletin_board_status.rb +3 -3
- data/app/commands/decidim/elections/voter/cast_vote.rb +1 -1
- data/app/commands/decidim/elections/voter/update_vote_status.rb +2 -2
- data/app/commands/decidim/votings/admin/create_ballot_style.rb +1 -1
- data/app/commands/decidim/votings/admin/create_monitoring_committee_member.rb +4 -4
- data/app/commands/decidim/votings/admin/create_polling_officer.rb +4 -4
- data/app/commands/decidim/votings/admin/create_polling_station.rb +1 -1
- data/app/commands/decidim/votings/admin/create_voting.rb +1 -1
- data/app/commands/decidim/votings/admin/destroy_ballot_style.rb +1 -1
- data/app/commands/decidim/votings/admin/destroy_monitoring_committee_member.rb +1 -1
- data/app/commands/decidim/votings/admin/destroy_polling_officer.rb +1 -1
- data/app/commands/decidim/votings/admin/manage_polling_station.rb +1 -1
- data/app/commands/decidim/votings/admin/monitoring_committee_validate_polling_station_closure.rb +1 -1
- data/app/commands/decidim/votings/admin/update_ballot_style.rb +1 -1
- data/app/commands/decidim/votings/admin/update_voting.rb +1 -1
- data/app/commands/decidim/votings/census/admin/create_dataset.rb +2 -2
- data/app/commands/decidim/votings/census/admin/create_datum.rb +3 -3
- data/app/commands/decidim/votings/census/admin/destroy_dataset.rb +1 -1
- data/app/commands/decidim/votings/census/admin/increment_dataset_processed_rows.rb +1 -1
- data/app/commands/decidim/votings/census/admin/launch_access_codes_generation.rb +1 -1
- data/app/commands/decidim/votings/census/admin/update_dataset.rb +1 -1
- data/app/commands/decidim/votings/certify_polling_station_closure.rb +1 -2
- data/app/commands/decidim/votings/create_polling_station_closure.rb +1 -1
- data/app/commands/decidim/votings/create_polling_station_results.rb +1 -1
- data/app/commands/decidim/votings/send_access_code.rb +5 -1
- data/app/commands/decidim/votings/sign_polling_station_closure.rb +2 -2
- data/app/commands/decidim/votings/voter/in_person_vote.rb +1 -1
- data/app/constraints/decidim/votings/current_voting.rb +1 -1
- data/app/controllers/concerns/decidim/elections/content_security_policy.rb +23 -0
- data/app/controllers/concerns/decidim/elections/has_vote_flow.rb +2 -2
- data/app/controllers/concerns/decidim/votings/admin/voting_admin.rb +1 -1
- data/app/controllers/concerns/decidim/votings/needs_voting.rb +1 -1
- data/app/controllers/decidim/elections/admin/answers_controller.rb +9 -10
- data/app/controllers/decidim/elections/admin/application_controller.rb +1 -0
- data/app/controllers/decidim/elections/admin/elections_controller.rb +7 -7
- data/app/controllers/decidim/elections/admin/feedback_forms_controller.rb +2 -2
- data/app/controllers/decidim/elections/admin/proposals_imports_controller.rb +3 -3
- data/app/controllers/decidim/elections/admin/questions_controller.rb +7 -7
- data/app/controllers/decidim/elections/admin/steps_controller.rb +4 -4
- data/app/controllers/decidim/elections/admin/trustees_participatory_spaces_controller.rb +2 -2
- data/app/controllers/decidim/elections/application_controller.rb +1 -0
- data/app/controllers/decidim/elections/elections_controller.rb +5 -2
- data/app/controllers/decidim/elections/trustee_zone/application_controller.rb +1 -0
- data/app/controllers/decidim/elections/trustee_zone/elections_controller.rb +2 -2
- data/app/controllers/decidim/elections/trustee_zone/trustees_controller.rb +3 -3
- data/app/controllers/decidim/elections/votes_controller.rb +19 -13
- data/app/controllers/decidim/votings/admin/monitoring_committee_election_results_controller.rb +11 -3
- data/app/controllers/decidim/votings/admin/monitoring_committee_members_controller.rb +3 -3
- data/app/controllers/decidim/votings/admin/monitoring_committee_polling_station_closures_controller.rb +3 -3
- data/app/controllers/decidim/votings/admin/polling_officers_controller.rb +3 -3
- data/app/controllers/decidim/votings/admin/polling_stations_controller.rb +3 -4
- data/app/controllers/decidim/votings/admin/voting_attachment_collections_controller.rb +5 -0
- data/app/controllers/decidim/votings/admin/voting_attachments_controller.rb +5 -0
- data/app/controllers/decidim/votings/admin/voting_publications_controller.rb +25 -0
- data/app/controllers/decidim/votings/admin/votings_controller.rb +2 -26
- data/app/controllers/decidim/votings/admin/votings_landing_page_content_blocks_controller.rb +1 -5
- data/app/controllers/decidim/votings/admin/votings_landing_page_controller.rb +4 -7
- data/app/controllers/decidim/votings/census/admin/census_controller.rb +2 -2
- data/app/controllers/decidim/votings/polling_officer_zone/closures_controller.rb +12 -12
- data/app/controllers/decidim/votings/polling_officer_zone/in_person_votes_controller.rb +17 -10
- data/app/controllers/decidim/votings/polling_officer_zone/polling_officers_controller.rb +1 -1
- data/app/controllers/decidim/votings/votings_controller.rb +7 -9
- data/app/events/decidim/elections/election_published_event.rb +1 -1
- data/app/events/decidim/elections/trustees/notify_new_trustee_event.rb +1 -1
- data/app/events/decidim/elections/trustees/notify_trustee_new_election_event.rb +1 -1
- data/app/events/decidim/elections/votes/vote_accepted_event.rb +1 -1
- data/app/events/decidim/votings/polling_officers/polling_station_assigned_event.rb +1 -1
- data/app/forms/decidim/elections/admin/answer_form.rb +1 -1
- data/app/forms/decidim/elections/admin/election_form.rb +1 -1
- data/app/forms/decidim/votings/admin/publish_results_form.rb +5 -5
- data/app/forms/decidim/votings/admin/voting_form.rb +1 -1
- data/app/forms/decidim/votings/admin/{polling_officer_form.rb → voting_user_role_form.rb} +1 -1
- data/app/forms/decidim/votings/census/frontend_fields.rb +1 -1
- data/app/forms/decidim/votings/census/in_person_fields.rb +8 -4
- data/app/forms/decidim/votings/closure_result_form.rb +2 -2
- data/app/helpers/decidim/elections/admin/trustees_participatory_spaces_helper.rb +4 -2
- data/app/helpers/decidim/elections/application_helper.rb +8 -0
- data/app/helpers/decidim/votings/map_helper.rb +22 -0
- data/app/helpers/decidim/votings/votings_helper.rb +33 -0
- data/app/jobs/decidim/votings/census/admin/create_datum_job.rb +1 -1
- data/app/jobs/decidim/votings/census/admin/generate_access_codes_job.rb +2 -2
- data/app/mailers/decidim/votings/access_code_mailer.rb +1 -1
- data/app/mailers/decidim/votings/census/export_mailer.rb +1 -1
- data/app/models/decidim/elections/trustee.rb +2 -2
- data/app/models/decidim/votings/ballot_style.rb +1 -1
- data/app/models/decidim/votings/polling_officer.rb +2 -2
- data/app/models/decidim/votings/polling_station.rb +1 -1
- data/app/packs/entrypoints/decidim_elections.js +12 -0
- data/app/packs/entrypoints/decidim_elections_admin.js +6 -0
- data/app/packs/entrypoints/decidim_votings.js +11 -0
- data/app/packs/entrypoints/decidim_votings_admin.js +10 -0
- data/app/packs/src/decidim/elections/admin/pending_action.js +10 -7
- data/app/packs/src/decidim/elections/admin/trustees_process.js +107 -104
- data/app/packs/src/decidim/elections/admin/vote_statistics.js +6 -3
- data/app/packs/src/decidim/elections/broken_promises_handler.js +9 -7
- data/app/packs/src/decidim/elections/election_log.js +126 -128
- data/app/packs/src/decidim/elections/trustee/key_ceremony.js +138 -139
- data/app/packs/src/decidim/elections/trustee/tally.js +122 -118
- data/app/packs/src/decidim/elections/trustee/trustee_zone.js +9 -7
- data/app/packs/src/decidim/elections/voter/casting-vote.js +9 -7
- data/app/packs/src/decidim/elections/voter/new-vote.js +92 -71
- data/app/packs/src/decidim/elections/voter/setup-preview.js +0 -4
- data/app/packs/src/decidim/elections/voter/setup-vote.js +0 -4
- data/app/packs/src/decidim/elections/voter/verify-vote.js +11 -6
- data/app/packs/src/decidim/elections/voter/vote_questions.component.js +74 -28
- data/app/packs/src/decidim/votings/admin/polling_officers_picker.js +16 -31
- data/app/packs/src/decidim/votings/admin/polling_stations_form.js +4 -1
- data/app/packs/src/decidim/votings/admin/{polling_officers_form.js → voting_user_role_form.js} +1 -1
- data/app/packs/src/decidim/votings/in-person-vote.js +4 -4
- data/app/packs/src/decidim/votings/polling_officer_zone/edit-closure.js +4 -4
- data/app/packs/src/decidim/votings/polling_officer_zone/in-person-vote.js +1 -1
- data/app/packs/src/decidim/votings/polling_officer_zone/new-closure.js +6 -8
- data/app/packs/stylesheets/decidim/elections/elections.scss +200 -6
- data/app/packs/stylesheets/decidim/votings/admin/votings/_ballot-styles.scss +3 -3
- data/app/packs/stylesheets/decidim/votings/admin/votings/_monitoring-committee-polling-station-closures.scss +2 -2
- data/app/packs/stylesheets/decidim/votings/admin/votings/_results.scss +1 -1
- data/app/packs/stylesheets/decidim/votings/admin/votings.scss +20 -0
- data/app/packs/stylesheets/decidim/votings/votings.scss +53 -2
- data/app/permissions/decidim/votings/admin/permissions.rb +2 -2
- data/app/presenters/decidim/elections/admin_log/election_presenter.rb +2 -2
- data/app/presenters/decidim/elections/admin_log/trustee_presenter.rb +2 -2
- data/app/presenters/decidim/elections/trustee_presenter.rb +1 -1
- data/app/presenters/decidim/votings/admin_log/ballot_style_presenter.rb +2 -2
- data/app/presenters/decidim/votings/admin_log/monitoring_committee_member_presenter.rb +2 -2
- data/app/presenters/decidim/votings/admin_log/polling_officer_presenter.rb +2 -2
- data/app/presenters/decidim/votings/admin_log/polling_station_presenter.rb +2 -2
- data/app/presenters/decidim/votings/admin_log/voting_presenter.rb +2 -2
- data/app/presenters/decidim/votings/census/admin_log/dataset_presenter.rb +2 -2
- data/app/presenters/decidim/votings/voting_stats_presenter.rb +3 -42
- data/app/services/decidim/votings/census/access_codes_exporter.rb +1 -1
- data/app/services/decidim/votings/census_vote_flow.rb +3 -3
- data/app/views/decidim/elections/admin/answers/_form.html.erb +16 -18
- data/app/views/decidim/elections/admin/answers/edit.html.erb +21 -5
- data/app/views/decidim/elections/admin/answers/index.html.erb +33 -18
- data/app/views/decidim/elections/admin/answers/new.html.erb +21 -5
- data/app/views/decidim/elections/admin/elections/_form.html.erb +20 -19
- data/app/views/decidim/elections/admin/elections/edit.html.erb +16 -6
- data/app/views/decidim/elections/admin/elections/index.html.erb +72 -70
- data/app/views/decidim/elections/admin/elections/new.html.erb +16 -6
- data/app/views/decidim/elections/admin/proposals_imports/new.html.erb +36 -21
- data/app/views/decidim/elections/admin/questions/_form.html.erb +18 -20
- data/app/views/decidim/elections/admin/questions/edit.html.erb +20 -6
- data/app/views/decidim/elections/admin/questions/index.html.erb +50 -49
- data/app/views/decidim/elections/admin/questions/new.html.erb +20 -5
- data/app/views/decidim/elections/admin/steps/_create_election.html.erb +41 -36
- data/app/views/decidim/elections/admin/steps/_created.html.erb +2 -2
- data/app/views/decidim/elections/admin/steps/_key_ceremony.html.erb +7 -7
- data/app/views/decidim/elections/admin/steps/_key_ceremony_ended.html.erb +2 -2
- data/app/views/decidim/elections/admin/steps/_results_published.html.erb +4 -4
- data/app/views/decidim/elections/admin/steps/_tally_ended.html.erb +4 -4
- data/app/views/decidim/elections/admin/steps/_tally_started.html.erb +11 -11
- data/app/views/decidim/elections/admin/steps/_vote.html.erb +3 -3
- data/app/views/decidim/elections/admin/steps/_vote_ended.html.erb +2 -2
- data/app/views/decidim/elections/admin/steps/_vote_stats.html.erb +2 -2
- data/app/views/decidim/elections/admin/steps/index.html.erb +44 -37
- data/app/views/decidim/elections/admin/trustees_participatory_spaces/_form.html.erb +10 -14
- data/app/views/decidim/elections/admin/trustees_participatory_spaces/index.html.erb +57 -60
- data/app/views/decidim/elections/admin/trustees_participatory_spaces/new.html.erb +16 -5
- data/app/views/decidim/elections/elections/_elections.html.erb +9 -16
- data/app/views/decidim/elections/elections/election_log.html.erb +171 -179
- data/app/views/decidim/elections/elections/index.html.erb +18 -21
- data/app/views/decidim/elections/elections/index.js.erb +0 -5
- data/app/views/decidim/elections/elections/show.html.erb +63 -39
- data/app/views/decidim/elections/shared/_broken_promises_modal.html.erb +18 -27
- data/app/views/decidim/elections/trustee_zone/elections/_backup_modal.html.erb +10 -20
- data/app/views/decidim/elections/trustee_zone/elections/_key_ceremony_steps.html.erb +32 -27
- data/app/views/decidim/elections/trustee_zone/elections/_restore_modal.html.erb +11 -21
- data/app/views/decidim/elections/trustee_zone/elections/_tally_started_steps.html.erb +46 -41
- data/app/views/decidim/elections/trustee_zone/elections/show.html.erb +4 -6
- data/app/views/decidim/elections/trustee_zone/trustees/_no_public_keys.html.erb +30 -0
- data/app/views/decidim/elections/trustee_zone/trustees/_public_keys.html.erb +17 -0
- data/app/views/decidim/elections/trustee_zone/trustees/_table.html.erb +28 -0
- data/app/views/decidim/elections/trustee_zone/trustees/show.html.erb +21 -96
- data/app/views/decidim/elections/votes/_new_ballot_decision_step.html.erb +22 -26
- data/app/views/decidim/elections/votes/_new_confirm_step.html.erb +59 -47
- data/app/views/decidim/elections/votes/_new_encrypting_step.html.erb +8 -19
- data/app/views/decidim/elections/votes/_new_question.html.erb +12 -28
- data/app/views/decidim/elections/votes/_new_question_modal.html.erb +20 -23
- data/app/views/decidim/elections/votes/_onboarding_modal.html.erb +14 -22
- data/app/views/decidim/elections/votes/_show_casted.html.erb +28 -30
- data/app/views/decidim/elections/votes/_show_casting.html.erb +12 -19
- data/app/views/decidim/elections/votes/_show_failed.html.erb +20 -17
- data/app/views/decidim/elections/votes/new.html.erb +78 -61
- data/app/views/decidim/elections/votes/show.html.erb +12 -11
- data/app/views/decidim/elections/votes/verify.html.erb +40 -61
- data/app/views/decidim/votings/admin/ballot_styles/_form.html.erb +19 -19
- data/app/views/decidim/votings/admin/ballot_styles/edit.html.erb +16 -6
- data/app/views/decidim/votings/admin/ballot_styles/index.html.erb +50 -54
- data/app/views/decidim/votings/admin/ballot_styles/new.html.erb +16 -6
- data/app/views/decidim/votings/admin/monitoring_committee_election_results/_results.html.erb +43 -46
- data/app/views/decidim/votings/admin/monitoring_committee_election_results/index.html.erb +23 -25
- data/app/views/decidim/votings/admin/monitoring_committee_election_results/show.html.erb +5 -5
- data/app/views/decidim/votings/admin/monitoring_committee_members/_form.html.erb +19 -20
- data/app/views/decidim/votings/admin/monitoring_committee_members/index.html.erb +32 -34
- data/app/views/decidim/votings/admin/monitoring_committee_members/new.html.erb +17 -6
- data/app/views/decidim/votings/admin/monitoring_committee_polling_station_closures/_closure_certificate_results.erb +1 -1
- data/app/views/decidim/votings/admin/monitoring_committee_polling_station_closures/_closures.html.erb +53 -56
- data/app/views/decidim/votings/admin/monitoring_committee_polling_station_closures/_elections.html.erb +22 -25
- data/app/views/decidim/votings/admin/monitoring_committee_polling_station_closures/edit.html.erb +12 -11
- data/app/views/decidim/votings/admin/monitoring_committee_polling_station_closures/show.html.erb +1 -1
- data/app/views/decidim/votings/admin/monitoring_committee_verify_elections/index.html.erb +37 -39
- data/app/views/decidim/votings/admin/polling_officers/_form.html.erb +19 -20
- data/app/views/decidim/votings/admin/polling_officers/index.html.erb +40 -41
- data/app/views/decidim/votings/admin/polling_officers/new.html.erb +17 -6
- data/app/views/decidim/votings/admin/polling_stations/_form.html.erb +25 -31
- data/app/views/decidim/votings/admin/polling_stations/edit.html.erb +17 -6
- data/app/views/decidim/votings/admin/polling_stations/index.html.erb +46 -47
- data/app/views/decidim/votings/admin/polling_stations/new.html.erb +17 -6
- data/app/views/decidim/votings/admin/votings/_form.html.erb +49 -52
- data/app/views/decidim/votings/admin/votings/edit.html.erb +35 -28
- data/app/views/decidim/votings/admin/votings/index.html.erb +58 -82
- data/app/views/decidim/votings/admin/votings/new.html.erb +16 -9
- data/app/views/decidim/votings/census/admin/census/_creating_data.html.erb +4 -4
- data/app/views/decidim/votings/census/admin/census/_export_codes.html.erb +3 -3
- data/app/views/decidim/votings/census/admin/census/_generate_codes.html.erb +8 -8
- data/app/views/decidim/votings/census/admin/census/_new_census.html.erb +8 -7
- data/app/views/decidim/votings/census/admin/census/_upload_info.html.erb +5 -5
- data/app/views/decidim/votings/census/admin/census/show.html.erb +7 -7
- data/app/views/decidim/votings/polling_officer_zone/closures/_answer_results_form_fields.html.erb +2 -3
- data/app/views/decidim/votings/polling_officer_zone/closures/_ballot_results_form_fields.html.erb +24 -35
- data/app/views/decidim/votings/polling_officer_zone/closures/_certify_form.html.erb +5 -9
- data/app/views/decidim/votings/polling_officer_zone/closures/_modal_ballots_count_error.html.erb +34 -48
- data/app/views/decidim/votings/polling_officer_zone/closures/_modal_ballots_results_count_error.html.erb +18 -18
- data/app/views/decidim/votings/polling_officer_zone/closures/_question_results_form_fields.html.erb +12 -17
- data/app/views/decidim/votings/polling_officer_zone/closures/_sign_form.html.erb +34 -49
- data/app/views/decidim/votings/polling_officer_zone/closures/edit.html.erb +50 -37
- data/app/views/decidim/votings/polling_officer_zone/closures/new.html.erb +57 -51
- data/app/views/decidim/votings/polling_officer_zone/closures/show.html.erb +44 -34
- data/app/views/decidim/votings/polling_officer_zone/in_person_votes/_complete_voting.html.erb +40 -57
- data/app/views/decidim/votings/polling_officer_zone/in_person_votes/_in_person_form.html.erb +34 -47
- data/app/views/decidim/votings/polling_officer_zone/in_person_votes/_verify_document.html.erb +19 -22
- data/app/views/decidim/votings/polling_officer_zone/in_person_votes/new.html.erb +12 -12
- data/app/views/decidim/votings/polling_officer_zone/in_person_votes/show.html.erb +22 -21
- data/app/views/decidim/votings/polling_officer_zone/polling_officers/_polling_station.html.erb +34 -41
- data/app/views/decidim/votings/polling_officer_zone/polling_officers/index.html.erb +9 -5
- data/app/views/decidim/votings/votings/_access_code_modal.html.erb +26 -31
- data/app/views/decidim/votings/votings/_check_fields.html.erb +19 -28
- data/app/views/decidim/votings/votings/_polling_officers_picker.html.erb +4 -0
- data/app/views/decidim/votings/votings/_votings.html.erb +5 -11
- data/app/views/decidim/votings/votings/check_census.html.erb +53 -53
- data/app/views/decidim/votings/votings/elections_log.html.erb +25 -22
- data/app/views/decidim/votings/votings/index.html.erb +24 -25
- data/app/views/decidim/votings/votings/index.js.erb +0 -5
- data/app/views/decidim/votings/votings/login.html.erb +51 -44
- data/app/views/decidim/votings/votings/show.html.erb +5 -7
- data/app/views/layouts/decidim/admin/voting.html.erb +11 -11
- data/app/views/layouts/decidim/admin/votings.html.erb +16 -0
- data/app/views/layouts/decidim/votings.html.erb +10 -14
- data/config/assets.rb +3 -28
- data/config/locales/ar.yml +0 -6
- data/config/locales/bg.yml +0 -1431
- data/config/locales/ca.yml +169 -223
- data/config/locales/cs.yml +157 -210
- data/config/locales/de.yml +161 -215
- data/config/locales/el.yml +164 -108
- data/config/locales/en.yml +183 -237
- data/config/locales/es-MX.yml +164 -218
- data/config/locales/es-PY.yml +163 -217
- data/config/locales/es.yml +168 -222
- data/config/locales/eu.yml +165 -222
- data/config/locales/fi-plain.yml +154 -208
- data/config/locales/fi.yml +157 -211
- data/config/locales/fr-CA.yml +168 -223
- data/config/locales/fr.yml +171 -226
- data/config/locales/ga-IE.yml +0 -40
- data/config/locales/gl.yml +2 -79
- data/config/locales/hu.yml +0 -62
- data/config/locales/it.yml +6 -243
- data/config/locales/ja.yml +173 -227
- data/config/locales/lt.yml +135 -204
- data/config/locales/lv.yml +0 -34
- data/config/locales/nl.yml +2 -211
- data/config/locales/no.yml +1 -131
- data/config/locales/pl.yml +3 -407
- data/config/locales/pt-BR.yml +4 -374
- data/config/locales/pt.yml +4 -245
- data/config/locales/ro-RO.yml +2 -143
- data/config/locales/ru.yml +0 -5
- data/config/locales/sk.yml +0 -5
- data/config/locales/sv.yml +11 -108
- data/config/locales/tr-TR.yml +58 -126
- data/config/locales/uk.yml +0 -5
- data/config/locales/zh-CN.yml +1 -68
- data/config/locales/zh-TW.yml +84 -166
- data/db/migrate/20210310120708_add_followable_counter_cache_to_votings.rb +2 -6
- data/lib/decidim/api/election_type.rb +1 -1
- data/lib/decidim/api/elections_type.rb +1 -1
- data/lib/decidim/elections/admin_engine.rb +4 -19
- data/lib/decidim/elections/component.rb +4 -452
- data/lib/decidim/elections/engine.rb +23 -1
- data/lib/decidim/elections/menu.rb +39 -0
- data/lib/decidim/elections/seeds.rb +435 -0
- data/lib/decidim/elections/test/factories.rb +22 -21
- data/lib/decidim/elections/trustee_zone_engine.rb +3 -7
- data/lib/decidim/elections/version.rb +1 -1
- data/lib/decidim/elections.rb +6 -0
- data/lib/decidim/votings/admin_engine.rb +16 -122
- data/lib/decidim/votings/census_admin_engine.rb +4 -8
- data/lib/decidim/votings/census_menu.rb +18 -0
- data/lib/decidim/votings/content_blocks/registry_manager.rb +88 -0
- data/lib/decidim/votings/engine.rb +12 -88
- data/lib/decidim/votings/menu.rb +164 -0
- data/lib/decidim/votings/participatory_space.rb +6 -190
- data/lib/decidim/votings/polling_officer_zone_engine.rb +3 -7
- data/lib/decidim/votings/polling_officer_zone_menu.rb +17 -0
- data/lib/decidim/votings/query_extensions.rb +4 -4
- data/lib/decidim/votings/seeds.rb +197 -0
- data/lib/decidim/votings/test/factories.rb +29 -13
- data/lib/decidim/votings/voting_serializer.rb +1 -1
- data/lib/tasks/decidim_elections.rake +2 -2
- metadata +76 -125
- data/app/cells/decidim/elections/election_m/data.erb +0 -19
- data/app/cells/decidim/elections/election_m/footer.erb +0 -5
- data/app/cells/decidim/elections/election_m/tags.erb +0 -3
- data/app/cells/decidim/elections/election_m_cell.rb +0 -96
- data/app/cells/decidim/elections/election_results/blank_votes.erb +0 -7
- data/app/cells/decidim/votings/content_blocks/highlighted_votings/show.erb +0 -30
- data/app/cells/decidim/votings/content_blocks/landing_page/attachments_and_folders_cell.rb +0 -22
- data/app/cells/decidim/votings/content_blocks/landing_page/description/show.erb +0 -15
- data/app/cells/decidim/votings/content_blocks/landing_page/description_cell.rb +0 -25
- data/app/cells/decidim/votings/content_blocks/landing_page/elections/show.erb +0 -15
- data/app/cells/decidim/votings/content_blocks/landing_page/elections/single.erb +0 -11
- data/app/cells/decidim/votings/content_blocks/landing_page/elections_cell.rb +0 -47
- data/app/cells/decidim/votings/content_blocks/landing_page/header/show.erb +0 -29
- data/app/cells/decidim/votings/content_blocks/landing_page/header_cell.rb +0 -108
- data/app/cells/decidim/votings/content_blocks/landing_page/header_settings_form_cell.rb +0 -17
- data/app/cells/decidim/votings/content_blocks/landing_page/metrics/show.erb +0 -12
- data/app/cells/decidim/votings/content_blocks/landing_page/metrics_cell.rb +0 -19
- data/app/cells/decidim/votings/content_blocks/landing_page/polling_stations/address.erb +0 -14
- data/app/cells/decidim/votings/content_blocks/landing_page/polling_stations/map.erb +0 -18
- data/app/cells/decidim/votings/content_blocks/landing_page/polling_stations/show.erb +0 -25
- data/app/cells/decidim/votings/content_blocks/landing_page/polling_stations_cell.rb +0 -56
- data/app/cells/decidim/votings/content_blocks/landing_page/statistics_cell.rb +0 -24
- data/app/cells/decidim/votings/content_blocks/landing_page/timeline/show.erb +0 -7
- data/app/cells/decidim/votings/content_blocks/landing_page/timeline_cell.rb +0 -17
- data/app/cells/decidim/votings/polling_officers/polling_officers_picker/polling_officers.erb +0 -12
- data/app/cells/decidim/votings/voting_m/data.erb +0 -21
- data/app/cells/decidim/votings/voting_m/footer.erb +0 -5
- data/app/cells/decidim/votings/voting_m_cell.rb +0 -94
- data/app/commands/decidim/votings/admin/publish_voting.rb +0 -40
- data/app/commands/decidim/votings/admin/unpublish_voting.rb +0 -40
- data/app/forms/decidim/votings/admin/monitoring_committee_member_form.rb +0 -27
- data/app/helpers/decidim/votings/admin/polling_officers_picker_helper.rb +0 -29
- data/app/packs/entrypoints/decidim_elections_admin_pending_action.js +0 -1
- data/app/packs/entrypoints/decidim_elections_admin_trustees_process.js +0 -1
- data/app/packs/entrypoints/decidim_elections_admin_vote_statistics.js +0 -1
- data/app/packs/entrypoints/decidim_elections_election_log.js +0 -1
- data/app/packs/entrypoints/decidim_elections_onboarding.js +0 -1
- data/app/packs/entrypoints/decidim_elections_trustee_key_ceremony.js +0 -1
- data/app/packs/entrypoints/decidim_elections_trustee_tally_started.js +0 -1
- data/app/packs/entrypoints/decidim_elections_trustee_trustee_zone.js +0 -1
- data/app/packs/entrypoints/decidim_elections_trustee_zone.js +0 -1
- data/app/packs/entrypoints/decidim_elections_trustee_zone.scss +0 -1
- data/app/packs/entrypoints/decidim_elections_voter_casting-vote.js +0 -1
- data/app/packs/entrypoints/decidim_elections_voter_new-vote.js +0 -1
- data/app/packs/entrypoints/decidim_elections_voter_setup-preview.js +0 -1
- data/app/packs/entrypoints/decidim_elections_voter_setup-vote.js +0 -1
- data/app/packs/entrypoints/decidim_elections_voter_verify-vote.js +0 -1
- data/app/packs/entrypoints/decidim_votings_admin_monitoring_committee_members_form.js +0 -1
- data/app/packs/entrypoints/decidim_votings_admin_polling_officers_form.js +0 -1
- data/app/packs/entrypoints/decidim_votings_admin_polling_officers_picker.js +0 -1
- data/app/packs/entrypoints/decidim_votings_admin_polling_stations_form.js +0 -1
- data/app/packs/entrypoints/decidim_votings_admin_update_census_dataset_status.js +0 -1
- data/app/packs/entrypoints/decidim_votings_admin_votings.js +0 -1
- data/app/packs/entrypoints/decidim_votings_admin_votings.scss +0 -1
- data/app/packs/entrypoints/decidim_votings_in-person-vote.js +0 -1
- data/app/packs/entrypoints/decidim_votings_voting-description-cell.js +0 -1
- data/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-edit-closure.js +0 -1
- data/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-in-person-vote.js +0 -1
- data/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-new-closure.js +0 -1
- data/app/packs/entrypoints/decidim_votings_voting_polling_officer_zone-sign-closure.js +0 -1
- data/app/packs/src/decidim/elections/onboarding.js +0 -5
- data/app/packs/src/decidim/votings/admin/monitoring_committee_members_form.js +0 -35
- data/app/packs/src/decidim/votings/voting-description-cell.js +0 -34
- data/app/packs/stylesheets/decidim/elections/focus/_accordion.scss +0 -36
- data/app/packs/stylesheets/decidim/elections/focus/_evote.scss +0 -344
- data/app/packs/stylesheets/decidim/elections/focus/_focus.scss +0 -128
- data/app/packs/stylesheets/decidim/elections/trustee_zone.scss +0 -24
- data/app/packs/stylesheets/decidim/votings/votings/_polling-stations-cell.scss +0 -6
- data/app/packs/stylesheets/decidim/votings/votings/_voting-description-cell.scss +0 -29
- data/app/views/decidim/elections/admin/answers/proposals_picker.html.erb +0 -1
- data/app/views/decidim/elections/elections/_count.html.erb +0 -1
- data/app/views/decidim/elections/elections/_election.html.erb +0 -1
- data/app/views/decidim/elections/elections/_filters.html.erb +0 -25
- data/app/views/decidim/elections/elections/_filters_small_view.html.erb +0 -18
- data/app/views/decidim/elections/votes/_focus_header.html.erb +0 -8
- data/app/views/decidim/elections/votes/_new_confirm_step_footer.html.erb +0 -23
- data/app/views/decidim/votings/admin/votings/polling_officers_picker.html.erb +0 -2
- data/app/views/decidim/votings/votings/_count.html.erb +0 -1
- data/app/views/decidim/votings/votings/_filters.html.erb +0 -25
- data/app/views/decidim/votings/votings/_filters_small_view.html.erb +0 -23
- data/app/views/decidim/votings/votings/_promoted_voting.html.erb +0 -27
- data/app/views/layouts/decidim/_election_votes_header.html.erb +0 -13
- data/app/views/layouts/decidim/election_votes.html.erb +0 -27
- data/app/views/layouts/decidim/voting_landing.html.erb +0 -13
- data/config/locales/he-IL.yml +0 -1
- data/db/seeds/Exampledocument.pdf +0 -0
- data/db/seeds/city.jpeg +0 -0
- data/db/seeds/city2.jpeg +0 -0
- data/decidim-elections.gemspec +0 -37
- data/lib/decidim/elections/seeds/city.jpeg +0 -0
- data/lib/decidim/votings/test/capybara_polling_officers_picker.rb +0 -49
- /data/app/cells/decidim/votings/content_blocks/{landing_page/header_settings_form → hero_settings_form}/show.erb +0 -0
@@ -5,9 +5,6 @@
|
|
5
5
|
export default class VoteQuestionsComponent {
|
6
6
|
constructor($voteWrapper) {
|
7
7
|
this.$voteWrapper = $voteWrapper;
|
8
|
-
this.$continueButton = this.$voteWrapper.find("a.focus__next");
|
9
|
-
this.$confirmButton = this.$voteWrapper.find("a.focus__next.confirm");
|
10
|
-
this.$continueSpan = this.$voteWrapper.find("span.disabled-continue");
|
11
8
|
this.$currentStep = "";
|
12
9
|
this.$currentStepMaxSelection = "";
|
13
10
|
this.$answerCounter = 0;
|
@@ -23,27 +20,38 @@ export default class VoteQuestionsComponent {
|
|
23
20
|
init() {
|
24
21
|
this.setCurrentStep();
|
25
22
|
this.toggleContinueButton();
|
26
|
-
|
27
|
-
$("
|
23
|
+
|
24
|
+
$("[data-counter-selection]").text(this.$answerCounter);
|
28
25
|
this.answerCounter();
|
29
26
|
this.disableCheckbox();
|
30
27
|
}
|
31
28
|
|
32
29
|
setCurrentStep() {
|
33
|
-
this.$currentStep = this.$voteWrapper.find("
|
30
|
+
this.$currentStep = this.$voteWrapper.find('[id^="step"]:not([hidden])')
|
31
|
+
this.$confirmButton = this.$currentStep.find('[id^="next"]');
|
32
|
+
|
34
33
|
this.setSelections();
|
35
34
|
this.onSelectionChange();
|
35
|
+
this.updateWizardSteps(this.$currentStep.attr("id"));
|
36
|
+
}
|
37
|
+
|
38
|
+
errored() {
|
39
|
+
this.$currentStep.attr("hidden", true);
|
40
|
+
this.$currentStep = this.$voteWrapper.find("#failed").attr("hidden", false);
|
36
41
|
}
|
37
42
|
|
38
43
|
toggleContinueButton() {
|
44
|
+
// ignore the button if the step is not a question
|
45
|
+
if (!this.isQuestion(this.$currentStep.attr("id"))) {
|
46
|
+
return
|
47
|
+
}
|
48
|
+
|
39
49
|
if (this.checkAnswers()) {
|
40
50
|
// next step enabled
|
41
|
-
this.$
|
42
|
-
this.$continueSpan.addClass("hide").removeClass("show")
|
51
|
+
this.$confirmButton.attr("disabled", false)
|
43
52
|
} else {
|
44
53
|
// next step disabled
|
45
|
-
this.$
|
46
|
-
this.$continueSpan.addClass("show").removeClass("hide")
|
54
|
+
this.$confirmButton.attr("disabled", true)
|
47
55
|
}
|
48
56
|
}
|
49
57
|
|
@@ -57,7 +65,7 @@ export default class VoteQuestionsComponent {
|
|
57
65
|
|
58
66
|
answerCounter() {
|
59
67
|
let checked = $(`#${this.$currentStep.attr("id")} .answer_input:checked`).length
|
60
|
-
$("
|
68
|
+
$("[data-counter-selection]").text(checked);
|
61
69
|
}
|
62
70
|
|
63
71
|
// disable checkboxes if NOTA option is selected
|
@@ -72,26 +80,27 @@ export default class VoteQuestionsComponent {
|
|
72
80
|
let checkId = $(event.target).attr("id");
|
73
81
|
let checkStatus = event.target.checked;
|
74
82
|
|
75
|
-
this.$currentStep.find(`[data-disabled-by='
|
83
|
+
this.$currentStep.find(`[data-disabled-by='${checkId}']`).each((_index, element) => {
|
84
|
+
const $checkbox = $(element).find("input[type=checkbox]")
|
85
|
+
|
76
86
|
if (checkStatus) {
|
77
|
-
$
|
78
|
-
$
|
79
|
-
$(element).
|
87
|
+
$checkbox.prop("disabled", true);
|
88
|
+
$checkbox.prop("checked", false);
|
89
|
+
$(element).attr("aria-disabled", true);
|
80
90
|
} else {
|
81
|
-
$
|
82
|
-
$(element).
|
91
|
+
$checkbox.prop("disabled", false);
|
92
|
+
$(element).removeAttr("aria-disabled");
|
83
93
|
}
|
84
94
|
});
|
85
95
|
});
|
86
96
|
}
|
87
97
|
|
88
98
|
setSelections() {
|
89
|
-
this.$currentStepMaxSelection = this.$currentStep.find("
|
99
|
+
this.$currentStepMaxSelection = this.$currentStep.find('[id^="question"]').data("max-selection")
|
90
100
|
}
|
91
101
|
|
92
|
-
|
93
102
|
onSelectionChange() {
|
94
|
-
let $voteOptions = this.$currentStep.find("
|
103
|
+
let $voteOptions = this.$currentStep.find('[id^="question"]');
|
95
104
|
$voteOptions.on("change", () => {
|
96
105
|
this.toggleContinueButton();
|
97
106
|
this.toggleConfirmAnswers();
|
@@ -99,26 +108,63 @@ export default class VoteQuestionsComponent {
|
|
99
108
|
});
|
100
109
|
}
|
101
110
|
|
111
|
+
updateWizardSteps(id) {
|
112
|
+
const wizard = document.getElementById("wizard-steps")
|
113
|
+
const heading = document.getElementById("heading")
|
114
|
+
|
115
|
+
if (heading) {
|
116
|
+
// this step has no heading 🤷♀️
|
117
|
+
if (id === "step-encrypting") {
|
118
|
+
heading.hidden = true
|
119
|
+
|
120
|
+
return
|
121
|
+
}
|
122
|
+
|
123
|
+
heading.hidden = false
|
124
|
+
}
|
125
|
+
|
126
|
+
if (wizard) {
|
127
|
+
let selector = id
|
128
|
+
|
129
|
+
if (this.isQuestion(id)) {
|
130
|
+
selector = "step-election"
|
131
|
+
}
|
132
|
+
|
133
|
+
wizard.querySelectorAll("[data-step]").forEach((element) => {
|
134
|
+
if (element.dataset.step === selector) {
|
135
|
+
element.setAttribute("aria-current", "step")
|
136
|
+
} else {
|
137
|
+
element.removeAttribute("aria-current")
|
138
|
+
}
|
139
|
+
})
|
140
|
+
}
|
141
|
+
}
|
142
|
+
|
143
|
+
// the question ids always end with a number
|
144
|
+
isQuestion(id) {
|
145
|
+
return (/[0-9]+$/).test(id);
|
146
|
+
}
|
147
|
+
|
102
148
|
// receive confirmed answers
|
103
149
|
toggleConfirmAnswers() {
|
104
150
|
$(".answer_input:checked").each((_index, element) => {
|
105
|
-
const confirmedAnswer = $("
|
106
|
-
$(confirmedAnswer).
|
151
|
+
const confirmedAnswer = $("#step-confirm").find(`#${element.value}`);
|
152
|
+
$(confirmedAnswer).attr("hidden", false)
|
107
153
|
})
|
108
154
|
|
109
155
|
$(".answer_input").not(":checked").each((_index, element) => {
|
110
|
-
const confirmedAnswer = $("
|
111
|
-
$(confirmedAnswer).
|
156
|
+
const confirmedAnswer = $("#step-confirm").find(`#${element.value}`);
|
157
|
+
$(confirmedAnswer).attr("hidden", true)
|
112
158
|
})
|
113
159
|
|
114
160
|
$(".nota_input:checked").each((_index, element) => {
|
115
|
-
const confirmedAnswer = $("
|
116
|
-
$(confirmedAnswer).
|
161
|
+
const confirmedAnswer = $("#step-confirm").find(`#${element.value}`);
|
162
|
+
$(confirmedAnswer).attr("hidden", false)
|
117
163
|
})
|
118
164
|
|
119
165
|
$(".nota_input").not(":checked").each((_index, element) => {
|
120
|
-
const confirmedAnswer = $("
|
121
|
-
$(confirmedAnswer).
|
166
|
+
const confirmedAnswer = $("#step-confirm").find(`#${element.value}`);
|
167
|
+
$(confirmedAnswer).attr("hidden", true)
|
122
168
|
})
|
123
169
|
}
|
124
170
|
}
|
@@ -1,35 +1,20 @@
|
|
1
|
-
|
2
|
-
const $content = $(".picker-content"),
|
3
|
-
pickerMore = $content.data("picker-more"),
|
4
|
-
pickerPath = $content.data("picker-path"),
|
5
|
-
toggleNoPollingOfficers = () => {
|
6
|
-
const showNoPollingOfficers = $("#polling_officers_list li:visible").length === 0
|
7
|
-
$("#no_polling_officers").toggle(showNoPollingOfficers)
|
8
|
-
}
|
9
|
-
|
10
|
-
let jqxhr = null
|
11
|
-
|
12
|
-
toggleNoPollingOfficers()
|
13
|
-
|
14
|
-
$(".data_picker-modal-content").on("change keyup", "#polling_officers_filter", (event) => {
|
15
|
-
const filter = event.target.value.toLowerCase()
|
1
|
+
import TomSelect from "tom-select/dist/cjs/tom-select.popular";
|
16
2
|
|
17
|
-
|
18
|
-
|
19
|
-
|
3
|
+
document.addEventListener("DOMContentLoaded", () => {
|
4
|
+
const tagContainers = document.querySelectorAll("#polling_officers_filter");
|
5
|
+
tagContainers.forEach((container) => {
|
6
|
+
const { tmName, tmItems, tmNoResults } = container.dataset
|
7
|
+
const config = {
|
8
|
+
plugins: ["remove_button", "dropdown_input"],
|
9
|
+
allowEmptyOption: true,
|
10
|
+
items: JSON.parse(tmItems),
|
11
|
+
render: {
|
12
|
+
item: (data, escape) => `<div>${escape(data.text)}<input type="hidden" name="${tmName}[]" value="${data.value}" /></div>`,
|
13
|
+
// eslint-disable-next-line camelcase
|
14
|
+
...(tmNoResults && { no_results: () => `<div class="no-results">${tmNoResults}</div>` })
|
20
15
|
}
|
16
|
+
};
|
21
17
|
|
22
|
-
|
23
|
-
jqxhr = $.get(`${pickerPath}?q=${filter}`, (data) => {
|
24
|
-
$content.html(data)
|
25
|
-
jqxhr = null
|
26
|
-
toggleNoPollingOfficers()
|
27
|
-
})
|
28
|
-
} else {
|
29
|
-
$("#polling_officers_list li").each((index, li) => {
|
30
|
-
$(li).toggle(li.textContent.toLowerCase().includes(filter))
|
31
|
-
})
|
32
|
-
toggleNoPollingOfficers()
|
33
|
-
}
|
18
|
+
return new TomSelect(container, config)
|
34
19
|
})
|
35
|
-
})
|
20
|
+
});
|
@@ -2,5 +2,8 @@ import attachGeocoding from "src/decidim/geocoding/attach_input"
|
|
2
2
|
|
3
3
|
$(() => {
|
4
4
|
const $form = $(".edit_polling_station, .new_polling_station");
|
5
|
-
|
5
|
+
|
6
|
+
if ($form.length > 0) {
|
7
|
+
attachGeocoding($form.find("#polling_station_address"));
|
8
|
+
}
|
6
9
|
})
|
data/app/packs/src/decidim/votings/admin/{polling_officers_form.js → voting_user_role_form.js}
RENAMED
@@ -1,7 +1,7 @@
|
|
1
1
|
import createFieldDependentInputs from "src/decidim/admin/field_dependent_inputs.component"
|
2
2
|
|
3
3
|
$(() => {
|
4
|
-
const $participantType = $("#
|
4
|
+
const $participantType = $("#voting_user_role_existing_user");
|
5
5
|
|
6
6
|
createFieldDependentInputs({
|
7
7
|
controllerField: $participantType,
|
@@ -4,7 +4,7 @@ import "src/decidim/elections/broken_promises_handler";
|
|
4
4
|
import { Client } from "@decidim/decidim-bulletin_board";
|
5
5
|
|
6
6
|
$(async () => {
|
7
|
-
const $inPersonVoteWrapper = $("
|
7
|
+
const $inPersonVoteWrapper = $("#in-person-vote-wrapper");
|
8
8
|
if ($inPersonVoteWrapper.length > 0) {
|
9
9
|
const bulletinBoardClient = new Client({
|
10
10
|
apiEndpointUrl: $inPersonVoteWrapper.data("apiEndpointUrl")
|
@@ -16,8 +16,8 @@ $(async () => {
|
|
16
16
|
$("form.update_vote_status").trigger("submit");
|
17
17
|
}
|
18
18
|
|
19
|
-
$("
|
20
|
-
$("#verify-document").
|
21
|
-
$("#complete-voting").
|
19
|
+
$("#js-verify-document").on("click", () => {
|
20
|
+
$("#verify-document").attr("hidden", true);
|
21
|
+
$("#complete-voting").attr("hidden", false);
|
22
22
|
});
|
23
23
|
});
|
@@ -12,11 +12,11 @@ $(() => {
|
|
12
12
|
let recount = validBallotsCount + blankBallotsCount + nullBallotsCount
|
13
13
|
|
14
14
|
if (recount === totalBallots) {
|
15
|
-
$("#submit-ballot-recount").
|
16
|
-
$("#btn-modal-closure-results-count-error").
|
15
|
+
$("#submit-ballot-recount").attr("hidden", false);
|
16
|
+
$("#btn-modal-closure-results-count-error").attr("hidden", true);
|
17
17
|
} else {
|
18
|
-
$("#submit-ballot-recount").
|
19
|
-
$("#btn-modal-closure-results-count-error").
|
18
|
+
$("#submit-ballot-recount").attr("hidden", true);
|
19
|
+
$("#btn-modal-closure-results-count-error").attr("hidden", false);
|
20
20
|
}
|
21
21
|
};
|
22
22
|
|
@@ -8,20 +8,18 @@ $(() => {
|
|
8
8
|
const totalBallotsInputValue = parseInt($totalBallotsInput.val(), 10);
|
9
9
|
const electionVotesInputValue = parseInt($electionVotesInput.val(), 10);
|
10
10
|
|
11
|
-
|
12
11
|
if (totalBallotsInputValue === electionVotesInputValue) {
|
13
|
-
$submitBtn.
|
14
|
-
$
|
12
|
+
$submitBtn.find("button").attr("disabled", false);
|
13
|
+
$submitBtn.attr("hidden", false);
|
14
|
+
$modalBtn.attr("hidden", true);
|
15
15
|
} else {
|
16
|
-
$submitBtn.
|
17
|
-
$modalBtn.
|
16
|
+
$submitBtn.attr("hidden", true);
|
17
|
+
$modalBtn.attr("hidden", false);
|
18
18
|
}
|
19
19
|
};
|
20
20
|
|
21
21
|
$totalBallotsInput.on("blur", checkValues);
|
22
22
|
|
23
|
-
$("#submit-verify-votes").addClass("disabled");
|
24
|
-
|
25
23
|
$totalBallotsInput.on("keyup", function() {
|
26
24
|
$("#modal-total-ballots-value").html(parseInt($totalBallotsInput.val(), 10));
|
27
25
|
$("#envelopes_result_polling_officer_notes").val("")
|
@@ -30,6 +28,6 @@ $(() => {
|
|
30
28
|
$("#envelopes_result_polling_officer_notes").on("keyup", function() {
|
31
29
|
let modalPollingOfficerNotes = $("#envelopes_result_polling_officer_notes").val()
|
32
30
|
|
33
|
-
$("#btn-submit-from-modal").
|
31
|
+
$("#btn-submit-from-modal").attr("disabled", !modalPollingOfficerNotes.trim());
|
34
32
|
});
|
35
33
|
});
|
@@ -1,8 +1,202 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
.election {
|
2
|
+
&__section {
|
3
|
+
&-title {
|
4
|
+
@apply flex gap-1 items-center;
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
6
|
+
svg {
|
7
|
+
@apply w-6 h-6 text-tertiary fill-current;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
&-desc {
|
12
|
+
@apply text-gray-2 my-6;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
&__accordion {
|
17
|
+
@apply border-4 border-background rounded px-3 py-2;
|
18
|
+
|
19
|
+
&-trigger {
|
20
|
+
@apply flex justify-between items-center w-full font-bold text-secondary hover:underline focus:outline-none focus:underline;
|
21
|
+
|
22
|
+
> :last-child {
|
23
|
+
@apply flex-none;
|
24
|
+
}
|
25
|
+
|
26
|
+
svg {
|
27
|
+
@apply w-8 h-8 text-secondary fill-current first:block last:hidden;
|
28
|
+
}
|
29
|
+
|
30
|
+
&[role="button"][aria-expanded="true"] svg {
|
31
|
+
@apply first:hidden last:block;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
&-panel {
|
36
|
+
@apply border-t border-gray-3 mt-4 pt-4 space-y-4;
|
37
|
+
|
38
|
+
ul {
|
39
|
+
@apply list-decimal px-4;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
&__aside {
|
45
|
+
&-heading {
|
46
|
+
@apply uppercase font-semibold text-gray-2 text-sm;
|
47
|
+
}
|
48
|
+
|
49
|
+
&-link {
|
50
|
+
@apply flex items-center gap-2 text-sm;
|
51
|
+
|
52
|
+
svg {
|
53
|
+
@apply w-4 h-4 flex-none text-gray fill-current;
|
54
|
+
}
|
55
|
+
|
56
|
+
a {
|
57
|
+
@apply text-md text-secondary;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
.election-log {
|
64
|
+
&__entry {
|
65
|
+
@apply flex flex-col gap-2 rounded border-4 border-background p-4 mb-8 last:mb-0 text-gray-2;
|
66
|
+
}
|
67
|
+
|
68
|
+
&__hash,
|
69
|
+
&__time {
|
70
|
+
@apply text-sm empty:hidden;
|
71
|
+
}
|
72
|
+
|
73
|
+
&__pre {
|
74
|
+
@apply bg-background p-2 rounded;
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
.election-question {
|
79
|
+
@apply block rounded p-4 border-4 border-background flex items-center text-lg text-gray-2 hover:border-tertiary focus:border-tertiary cursor-pointer;
|
80
|
+
|
81
|
+
&[aria-disabled="true"] {
|
82
|
+
@apply text-gray cursor-not-allowed hover:border-background focus:border-background;
|
83
|
+
}
|
84
|
+
|
85
|
+
&__counter {
|
86
|
+
@apply font-semibold text-black text-lg bg-tertiary inline-block;
|
87
|
+
}
|
88
|
+
|
89
|
+
/* overwrite default accordion styles */
|
90
|
+
[id^="step"][aria-hidden="true"] {
|
91
|
+
@apply hidden;
|
92
|
+
}
|
93
|
+
|
94
|
+
&__container {
|
95
|
+
@apply space-y-4 mb-8;
|
96
|
+
}
|
97
|
+
|
98
|
+
&__intro {
|
99
|
+
@apply py-8 border-t-2 border-background space-y-4;
|
100
|
+
}
|
101
|
+
|
102
|
+
&__description {
|
103
|
+
@apply text-gray-2 text-lg;
|
104
|
+
}
|
105
|
+
|
106
|
+
&__maxselections {
|
107
|
+
@apply flex items-center justify-between gap-2 text-gray-2;
|
108
|
+
}
|
109
|
+
|
110
|
+
&__answer {
|
111
|
+
@apply flex flex-col items-start gap-4 py-8 text-gray-2 border-t-2 border-background;
|
112
|
+
|
113
|
+
&-option {
|
114
|
+
@apply flex items-center justify-between w-full text-lg;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
118
|
+
&__ballot {
|
119
|
+
@apply flex flex-col items-start gap-2 py-8 border-t-2 border-background text-lg text-gray-2;
|
120
|
+
}
|
121
|
+
|
122
|
+
&__modal {
|
123
|
+
&-explanation {
|
124
|
+
@apply space-y-4;
|
125
|
+
}
|
126
|
+
|
127
|
+
&-grid {
|
128
|
+
@apply grid grid-cols-2 gap-4;
|
129
|
+
}
|
130
|
+
|
131
|
+
img {
|
132
|
+
@apply aspect-video object-cover h-full w-full;
|
133
|
+
}
|
134
|
+
|
135
|
+
ul {
|
136
|
+
@apply list-disc;
|
137
|
+
}
|
138
|
+
|
139
|
+
li {
|
140
|
+
@apply ml-4;
|
141
|
+
}
|
142
|
+
|
143
|
+
a {
|
144
|
+
@apply text-secondary;
|
145
|
+
}
|
146
|
+
}
|
147
|
+
}
|
148
|
+
|
149
|
+
.election-trustee {
|
150
|
+
&__container {
|
151
|
+
@apply space-y-6 [&_p]:text-gray-2;
|
152
|
+
}
|
153
|
+
|
154
|
+
&__list {
|
155
|
+
@apply list-disc pl-4 text-gray-2;
|
156
|
+
}
|
157
|
+
|
158
|
+
&__table {
|
159
|
+
@apply text-left w-full border-2 border-background;
|
160
|
+
|
161
|
+
th,
|
162
|
+
td {
|
163
|
+
@apply px-4 py-2;
|
164
|
+
}
|
165
|
+
|
166
|
+
th {
|
167
|
+
@apply bg-background;
|
168
|
+
}
|
169
|
+
|
170
|
+
tr:nth-child(even) td {
|
171
|
+
@apply bg-gray-3;
|
172
|
+
}
|
173
|
+
|
174
|
+
a {
|
175
|
+
@apply text-secondary underline;
|
176
|
+
}
|
177
|
+
|
178
|
+
.step_status {
|
179
|
+
span {
|
180
|
+
@apply hidden;
|
181
|
+
}
|
182
|
+
|
183
|
+
&[data-step-status="pending"] .pending,
|
184
|
+
&[data-step-status="processing"] .processing,
|
185
|
+
&[data-step-status="completed"] .completed {
|
186
|
+
@apply block;
|
187
|
+
}
|
188
|
+
}
|
189
|
+
}
|
190
|
+
|
191
|
+
&__submit {
|
192
|
+
@apply p-4 border-4 border-background space-y-4 rounded;
|
193
|
+
}
|
194
|
+
|
195
|
+
&__buttons {
|
196
|
+
@apply flex items-center gap-4;
|
197
|
+
|
198
|
+
[hidden] {
|
199
|
+
@apply hidden;
|
200
|
+
}
|
201
|
+
}
|
8
202
|
}
|
@@ -1,12 +1,12 @@
|
|
1
|
-
.ballot-style__question--checked{
|
1
|
+
.ballot-style__question--checked {
|
2
2
|
color: green;
|
3
3
|
}
|
4
4
|
|
5
|
-
.ballot-style__question--unchecked{
|
5
|
+
.ballot-style__question--unchecked {
|
6
6
|
color: red;
|
7
7
|
}
|
8
8
|
|
9
|
-
.ballot-style__question-header{
|
9
|
+
.ballot-style__question-header {
|
10
10
|
max-width: 100px;
|
11
11
|
display: table-cell;
|
12
12
|
overflow: hidden;
|
@@ -1,9 +1,9 @@
|
|
1
|
-
.polling_station_closure_certificate_results{
|
1
|
+
.polling_station_closure_certificate_results {
|
2
2
|
display: grid;
|
3
3
|
grid-template-columns: 1fr 1fr;
|
4
4
|
align-items: center;
|
5
5
|
|
6
|
-
@media only screen and (max-width: 900px){
|
6
|
+
@media only screen and (max-width: 900px) {
|
7
7
|
grid-template-columns: 1fr;
|
8
8
|
}
|
9
9
|
}
|
@@ -1,3 +1,23 @@
|
|
1
1
|
@import "stylesheets/decidim/votings/admin/votings/ballot-styles";
|
2
2
|
@import "stylesheets/decidim/votings/admin/votings/monitoring-committee-polling-station-closures";
|
3
3
|
@import "stylesheets/decidim/votings/admin/votings/results";
|
4
|
+
@import "tom-select/dist/scss/tom-select";
|
5
|
+
|
6
|
+
/* overwrite tom-select defaults */
|
7
|
+
.ts {
|
8
|
+
&-control {
|
9
|
+
@apply border-gray text-md min-h-[40px];
|
10
|
+
|
11
|
+
input {
|
12
|
+
@apply font-normal text-black text-md;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
&-dropdown {
|
17
|
+
@apply text-md text-gray-2 font-normal;
|
18
|
+
|
19
|
+
.active {
|
20
|
+
@apply text-white bg-secondary;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
@@ -1,2 +1,53 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
.voting {
|
2
|
+
&__map {
|
3
|
+
@apply flex flex-col-reverse md:flex-row items-start gap-4 only:[&>*]:grow first:[&>*]:min-w-[40%];
|
4
|
+
|
5
|
+
& > :last-child:not(:only-child) {
|
6
|
+
@apply aspect-[4/3] w-full rounded overflow-hidden;
|
7
|
+
}
|
8
|
+
|
9
|
+
&-address {
|
10
|
+
@apply border-4 border-background rounded p-4 mt-4 first:mt-0;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
&__polling-station {
|
15
|
+
@apply space-y-4 py-4;
|
16
|
+
|
17
|
+
& > * {
|
18
|
+
@apply flex items-center gap-2;
|
19
|
+
}
|
20
|
+
|
21
|
+
&__accordion {
|
22
|
+
@apply border-4 border-background rounded p-4;
|
23
|
+
|
24
|
+
&-trigger {
|
25
|
+
@apply flex justify-between items-center w-full text-secondary hover:underline;
|
26
|
+
}
|
27
|
+
|
28
|
+
&-arrow {
|
29
|
+
@apply w-8 h-8 text-secondary fill-current first-of-type:block last-of-type:hidden;
|
30
|
+
}
|
31
|
+
|
32
|
+
[role="button"][aria-expanded="true"] &-arrow {
|
33
|
+
@apply first-of-type:hidden last-of-type:block;
|
34
|
+
}
|
35
|
+
|
36
|
+
&-panel {
|
37
|
+
@apply border-t border-gray-3 mt-4 pt-4;
|
38
|
+
|
39
|
+
a {
|
40
|
+
@apply hover:underline;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
& + & {
|
45
|
+
@apply mt-4;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
& + & {
|
50
|
+
@apply mt-4 border-t border-background;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
@@ -140,11 +140,11 @@ module Decidim
|
|
140
140
|
end
|
141
141
|
|
142
142
|
def user_monitoring_committee?
|
143
|
-
Decidim::Votings::MonitoringCommitteeMember.exists?(user:
|
143
|
+
Decidim::Votings::MonitoringCommitteeMember.exists?(user:)
|
144
144
|
end
|
145
145
|
|
146
146
|
def user_monitoring_committee_for_voting?
|
147
|
-
Decidim::Votings::MonitoringCommitteeMember.exists?(user
|
147
|
+
Decidim::Votings::MonitoringCommitteeMember.exists?(user:, voting:)
|
148
148
|
end
|
149
149
|
|
150
150
|
def voting
|
@@ -6,8 +6,8 @@ module Decidim
|
|
6
6
|
# This class holds the logic to present a `Decidim::Election`
|
7
7
|
# for the `AdminLog` log.
|
8
8
|
#
|
9
|
-
# Usage should be automatic and you
|
10
|
-
# directly, but here
|
9
|
+
# Usage should be automatic and you should not need to call this class
|
10
|
+
# directly, but here is an example:
|
11
11
|
#
|
12
12
|
# action_log = Decidim::ActionLog.last
|
13
13
|
# view_helpers # => this comes from the views
|