decidim-elections 0.27.9 → 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 +162 -216
- 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 +12 -109
- 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
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Votings
|
5
|
+
module Admin
|
6
|
+
# Controller that allows managing voting publications.
|
7
|
+
#
|
8
|
+
# i18n-tasks-use t('decidim.admin.voting_publications.create.error')
|
9
|
+
# i18n-tasks-use t('decidim.admin.voting_publications.create.success')
|
10
|
+
# i18n-tasks-use t('decidim.admin.voting_publications.destroy.error')
|
11
|
+
# i18n-tasks-use t('decidim.admin.voting_publications.destroy.success')
|
12
|
+
class VotingPublicationsController < Decidim::Admin::SpacePublicationsController
|
13
|
+
include VotingAdmin
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def enforce_permission_to_publish = enforce_permission_to(:publish, :voting, voting: current_voting)
|
18
|
+
|
19
|
+
def i18n_scope = "decidim.admin.voting_publications"
|
20
|
+
|
21
|
+
def fallback_location = votings_path
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -6,11 +6,13 @@ module Decidim
|
|
6
6
|
# This controller allows to create or update a voting.
|
7
7
|
class VotingsController < Admin::ApplicationController
|
8
8
|
include Decidim::Votings::Admin::Filterable
|
9
|
+
include Decidim::Admin::ParticipatorySpaceAdminBreadcrumb
|
9
10
|
helper_method :votings, :current_voting, :current_participatory_space
|
10
11
|
|
11
12
|
def index
|
12
13
|
enforce_permission_to :read, :votings
|
13
14
|
@votings = filtered_collection
|
15
|
+
render layout: "decidim/admin/votings"
|
14
16
|
end
|
15
17
|
|
16
18
|
def new
|
@@ -58,28 +60,6 @@ module Decidim
|
|
58
60
|
end
|
59
61
|
end
|
60
62
|
|
61
|
-
def publish
|
62
|
-
enforce_permission_to :publish, :voting, voting: current_voting
|
63
|
-
|
64
|
-
PublishVoting.call(current_voting, current_user) do
|
65
|
-
on(:ok) do
|
66
|
-
flash[:notice] = I18n.t("votings.publish.success", scope: "decidim.votings.admin")
|
67
|
-
redirect_to edit_voting_path(voting)
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def unpublish
|
73
|
-
enforce_permission_to :unpublish, :voting, voting: current_voting
|
74
|
-
|
75
|
-
UnpublishVoting.call(current_voting, current_user) do
|
76
|
-
on(:ok) do
|
77
|
-
flash[:notice] = I18n.t("votings.unpublish.success", scope: "decidim.votings.admin")
|
78
|
-
redirect_to edit_voting_path(voting)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
63
|
def available_polling_officers
|
84
64
|
respond_to do |format|
|
85
65
|
format.json do
|
@@ -100,10 +80,6 @@ module Decidim
|
|
100
80
|
end
|
101
81
|
end
|
102
82
|
|
103
|
-
def polling_officers_picker
|
104
|
-
render :polling_officers_picker, layout: false
|
105
|
-
end
|
106
|
-
|
107
83
|
private
|
108
84
|
|
109
85
|
def votings
|
data/app/controllers/decidim/votings/admin/votings_landing_page_content_blocks_controller.rb
CHANGED
@@ -5,7 +5,7 @@ module Decidim
|
|
5
5
|
module Admin
|
6
6
|
# Controller that allows to edit the content of the landing page content blocks
|
7
7
|
class VotingsLandingPageContentBlocksController < Decidim::Votings::Admin::ApplicationController
|
8
|
-
include Decidim::Admin::LandingPageContentBlocks
|
8
|
+
include Decidim::Admin::ContentBlocks::LandingPageContentBlocks
|
9
9
|
|
10
10
|
layout "decidim/admin/voting"
|
11
11
|
|
@@ -33,10 +33,6 @@ module Decidim
|
|
33
33
|
voting_landing_page_content_block_path(scoped_resource, params[:id])
|
34
34
|
end
|
35
35
|
|
36
|
-
def submit_button_text
|
37
|
-
t("landing_page.content_blocks.edit.update", scope: "decidim.votings.admin")
|
38
|
-
end
|
39
|
-
|
40
36
|
alias current_participatory_space scoped_resource
|
41
37
|
end
|
42
38
|
end
|
@@ -5,7 +5,7 @@ module Decidim
|
|
5
5
|
module Admin
|
6
6
|
# Controller that allows to (de)activate the content blocks from a voting landing page
|
7
7
|
class VotingsLandingPageController < Decidim::Votings::Admin::ApplicationController
|
8
|
-
include Decidim::Admin::LandingPage
|
8
|
+
include Decidim::Admin::ContentBlocks::LandingPage
|
9
9
|
|
10
10
|
layout "decidim/admin/voting"
|
11
11
|
|
@@ -27,12 +27,9 @@ module Decidim
|
|
27
27
|
voting_landing_page_path(scoped_resource)
|
28
28
|
end
|
29
29
|
|
30
|
-
def
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
def inactive_content_blocks_title
|
35
|
-
t("landing_page.edit.inactive_content_blocks", scope: "decidim.votings.admin")
|
30
|
+
def resource_create_url(manifest_name)
|
31
|
+
voting_landing_page_content_blocks_path(participatory_process_group_id: params[:participatory_process_group_id],
|
32
|
+
manifest_name:)
|
36
33
|
end
|
37
34
|
|
38
35
|
def resource_content_block_cell
|
@@ -22,7 +22,7 @@ module Decidim
|
|
22
22
|
enforce_permission_to :manage, :census, voting: current_participatory_space
|
23
23
|
|
24
24
|
@form = form(DatasetForm).from_params(params).with_context(
|
25
|
-
current_participatory_space:
|
25
|
+
current_participatory_space:
|
26
26
|
)
|
27
27
|
|
28
28
|
CreateDataset.call(@form, current_user) do
|
@@ -163,7 +163,7 @@ module Decidim
|
|
163
163
|
|
164
164
|
def ballot_style_callout_text
|
165
165
|
if current_participatory_space.has_ballot_styles?
|
166
|
-
t("has_ballot_styles_message", scope: "decidim.votings.census.admin.census.new", ballot_style_code_header:
|
166
|
+
t("has_ballot_styles_message", scope: "decidim.votings.census.admin.census.new", ballot_style_code_header:)
|
167
167
|
else
|
168
168
|
t("missing_ballot_styles_message", scope: "decidim.votings.census.admin.census.new", ballot_styles_admin_path: admin_voting_ballot_styles_path)
|
169
169
|
end
|
@@ -8,17 +8,17 @@ module Decidim
|
|
8
8
|
helper_method :election, :polling_officer, :polling_station, :closure
|
9
9
|
|
10
10
|
def show
|
11
|
-
enforce_permission_to
|
11
|
+
enforce_permission_to(:manage, :polling_station_results, polling_officer:)
|
12
12
|
|
13
13
|
@form = if closure.certificate_phase?
|
14
|
-
form(ClosureCertifyForm).instance.with_context(closure:
|
14
|
+
form(ClosureCertifyForm).instance.with_context(closure:)
|
15
15
|
elsif closure.signature_phase?
|
16
16
|
form(ClosureSignForm).instance
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
def new
|
21
|
-
enforce_permission_to
|
21
|
+
enforce_permission_to(:manage, :polling_station_results, polling_officer:)
|
22
22
|
|
23
23
|
@form = EnvelopesResultForm.new(
|
24
24
|
polling_station_id: polling_station.id,
|
@@ -28,8 +28,8 @@ module Decidim
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def create
|
31
|
-
enforce_permission_to
|
32
|
-
@form = form(EnvelopesResultForm).from_params(params).with_context(polling_officer:
|
31
|
+
enforce_permission_to(:manage, :polling_station_results, polling_officer:)
|
32
|
+
@form = form(EnvelopesResultForm).from_params(params).with_context(polling_officer:)
|
33
33
|
|
34
34
|
CreatePollingStationClosure.call(@form) do
|
35
35
|
on(:ok) do
|
@@ -46,13 +46,13 @@ module Decidim
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def edit
|
49
|
-
enforce_permission_to
|
49
|
+
enforce_permission_to(:manage, :polling_station_results, polling_officer:)
|
50
50
|
|
51
51
|
@form = form(ClosureResultForm).from_model(closure)
|
52
52
|
end
|
53
53
|
|
54
54
|
def update
|
55
|
-
enforce_permission_to
|
55
|
+
enforce_permission_to(:manage, :polling_station_results, polling_officer:)
|
56
56
|
@form = form(ClosureResultForm).from_params(params)
|
57
57
|
|
58
58
|
CreatePollingStationResults.call(@form, closure) do
|
@@ -69,9 +69,9 @@ module Decidim
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def certify
|
72
|
-
enforce_permission_to
|
72
|
+
enforce_permission_to(:manage, :polling_station_results, polling_officer:)
|
73
73
|
|
74
|
-
@form = form(ClosureCertifyForm).from_params(params).with_context(closure:
|
74
|
+
@form = form(ClosureCertifyForm).from_params(params).with_context(closure:)
|
75
75
|
|
76
76
|
CertifyPollingStationClosure.call(@form, closure) do
|
77
77
|
on(:ok) do
|
@@ -87,7 +87,7 @@ module Decidim
|
|
87
87
|
end
|
88
88
|
|
89
89
|
def sign
|
90
|
-
enforce_permission_to
|
90
|
+
enforce_permission_to(:manage, :polling_station_results, polling_officer:)
|
91
91
|
|
92
92
|
@form = form(ClosureSignForm).from_params(params)
|
93
93
|
|
@@ -122,11 +122,11 @@ module Decidim
|
|
122
122
|
end
|
123
123
|
|
124
124
|
def closure
|
125
|
-
@closure ||= polling_station.closures.find_by(election:
|
125
|
+
@closure ||= polling_station.closures.find_by(election:)
|
126
126
|
end
|
127
127
|
|
128
128
|
def polling_station_election_votes_count
|
129
|
-
@polling_station_election_votes_count ||= polling_station.in_person_votes.where(election:
|
129
|
+
@polling_station_election_votes_count ||= polling_station.in_person_votes.where(election:).count
|
130
130
|
end
|
131
131
|
end
|
132
132
|
end
|
@@ -7,6 +7,7 @@ module Decidim
|
|
7
7
|
class InPersonVotesController < Decidim::Votings::PollingOfficerZone::ApplicationController
|
8
8
|
include FormFactory
|
9
9
|
include Decidim::Elections::HasVoteFlow
|
10
|
+
before_action :append_csp_directives
|
10
11
|
|
11
12
|
helper_method :polling_officer, :election, :in_person_form, :has_voter?,
|
12
13
|
:vote_check, :cant_vote_reason, :questions, :in_person_vote_form, :voted_online?,
|
@@ -15,13 +16,13 @@ module Decidim
|
|
15
16
|
helper Decidim::Admin::IconLinkHelper
|
16
17
|
|
17
18
|
def new
|
18
|
-
enforce_permission_to
|
19
|
+
enforce_permission_to(:manage, :in_person_vote, polling_officer:)
|
19
20
|
|
20
21
|
has_pending_in_person_vote?
|
21
22
|
end
|
22
23
|
|
23
24
|
def create
|
24
|
-
enforce_permission_to
|
25
|
+
enforce_permission_to(:manage, :in_person_vote, polling_officer:)
|
25
26
|
|
26
27
|
return if has_pending_in_person_vote?
|
27
28
|
|
@@ -33,11 +34,11 @@ module Decidim
|
|
33
34
|
end
|
34
35
|
|
35
36
|
def show
|
36
|
-
enforce_permission_to :manage, :in_person_vote, polling_officer:
|
37
|
+
enforce_permission_to :manage, :in_person_vote, polling_officer:
|
37
38
|
end
|
38
39
|
|
39
40
|
def update
|
40
|
-
enforce_permission_to
|
41
|
+
enforce_permission_to(:manage, :in_person_vote, polling_officer:)
|
41
42
|
|
42
43
|
Decidim::Votings::Voter::UpdateInPersonVoteStatus.call(in_person_vote) do
|
43
44
|
on(:ok) do
|
@@ -59,6 +60,12 @@ module Decidim
|
|
59
60
|
delegate :has_voter?, to: :vote_flow
|
60
61
|
delegate :polling_station, to: :polling_officer
|
61
62
|
|
63
|
+
def append_csp_directives
|
64
|
+
return if bulletin_board_server.blank?
|
65
|
+
|
66
|
+
content_security_policy.append_csp_directive("connect-src", bulletin_board_server)
|
67
|
+
end
|
68
|
+
|
62
69
|
def bulletin_board_client
|
63
70
|
@bulletin_board_client ||= Decidim::Elections.bulletin_board
|
64
71
|
end
|
@@ -106,13 +113,13 @@ module Decidim
|
|
106
113
|
def in_person_vote_form
|
107
114
|
@in_person_vote_form ||= form(Decidim::Votings::Voter::InPersonVoteForm).from_params(
|
108
115
|
{
|
109
|
-
voter_token
|
110
|
-
voter_id
|
116
|
+
voter_token:,
|
117
|
+
voter_id:,
|
111
118
|
voted: params.dig(:in_person_vote, :voted)
|
112
119
|
},
|
113
|
-
election
|
114
|
-
polling_station
|
115
|
-
polling_officer:
|
120
|
+
election:,
|
121
|
+
polling_station:,
|
122
|
+
polling_officer:
|
116
123
|
)
|
117
124
|
end
|
118
125
|
|
@@ -140,7 +147,7 @@ module Decidim
|
|
140
147
|
end
|
141
148
|
|
142
149
|
def pending_in_person_vote
|
143
|
-
@pending_in_person_vote ||= Decidim::Votings::Votes::PendingInPersonVotes.for.find_by(polling_officer
|
150
|
+
@pending_in_person_vote ||= Decidim::Votings::Votes::PendingInPersonVotes.for.find_by(polling_officer:, election:)
|
144
151
|
end
|
145
152
|
|
146
153
|
def exit_path
|
@@ -11,7 +11,7 @@ module Decidim
|
|
11
11
|
helper_method :polling_stations, :polling_officers_elections
|
12
12
|
|
13
13
|
def index
|
14
|
-
enforce_permission_to :view, :polling_officers, polling_officers:
|
14
|
+
enforce_permission_to :view, :polling_officers, polling_officers:
|
15
15
|
end
|
16
16
|
|
17
17
|
private
|
@@ -5,8 +5,6 @@ module Decidim
|
|
5
5
|
# A controller that holds the logic to show votings in a
|
6
6
|
# public layout.
|
7
7
|
class VotingsController < Decidim::Votings::ApplicationController
|
8
|
-
layout "layouts/decidim/voting_landing", only: :show
|
9
|
-
|
10
8
|
include FormFactory
|
11
9
|
include ParticipatorySpaceContext
|
12
10
|
include NeedsVoting
|
@@ -15,6 +13,8 @@ module Decidim
|
|
15
13
|
include Decidim::Votings::Orderable
|
16
14
|
include Decidim::Elections::HasVoteFlow
|
17
15
|
|
16
|
+
participatory_space_layout only: [:show]
|
17
|
+
|
18
18
|
helper_method :published_votings, :paginated_votings, :filter, :promoted_votings, :only_finished_votings?, :landing_content_blocks, :census_contact_information
|
19
19
|
|
20
20
|
helper Decidim::FiltersHelper
|
@@ -22,7 +22,6 @@ module Decidim
|
|
22
22
|
helper Decidim::SanitizeHelper
|
23
23
|
helper Decidim::PaginateHelper
|
24
24
|
helper Decidim::IconHelper
|
25
|
-
helper Decidim::WidgetUrlsHelper
|
26
25
|
helper Decidim::ResourceHelper
|
27
26
|
helper Decidim::Admin::IconLinkHelper
|
28
27
|
|
@@ -42,10 +41,9 @@ module Decidim
|
|
42
41
|
helper_method :election, :exit_path, :election_log_path, :elections
|
43
42
|
|
44
43
|
def login
|
45
|
-
@form = form(Census::LoginForm).from_params(params, election:
|
44
|
+
@form = form(Census::LoginForm).from_params(params, election:)
|
46
45
|
|
47
|
-
render :login
|
48
|
-
layout: "decidim/election_votes"
|
46
|
+
render :login
|
49
47
|
end
|
50
48
|
|
51
49
|
def show_check_census
|
@@ -59,7 +57,7 @@ module Decidim
|
|
59
57
|
raise ActionController::RoutingError, "Not Found" unless current_participatory_space.check_census_enabled?
|
60
58
|
|
61
59
|
@form = form(Census::CheckForm).from_params(params).with_context(
|
62
|
-
current_participatory_space:
|
60
|
+
current_participatory_space:
|
63
61
|
)
|
64
62
|
|
65
63
|
success = not_found = false
|
@@ -77,7 +75,7 @@ module Decidim
|
|
77
75
|
end
|
78
76
|
end
|
79
77
|
|
80
|
-
render action: :check_census, locals: { success
|
78
|
+
render action: :check_census, locals: { success:, not_found:, datum: }
|
81
79
|
end
|
82
80
|
|
83
81
|
def send_access_code
|
@@ -89,7 +87,7 @@ module Decidim
|
|
89
87
|
flash[:alert] = t("send_access_code.invalid", scope: "decidim.votings.votings")
|
90
88
|
end
|
91
89
|
end
|
92
|
-
render action: :check_census, locals: { success: true, not_found: false, datum:
|
90
|
+
render action: :check_census, locals: { success: true, not_found: false, datum: }
|
93
91
|
end
|
94
92
|
|
95
93
|
def elections_log
|
@@ -40,7 +40,7 @@ module Decidim
|
|
40
40
|
|
41
41
|
private
|
42
42
|
|
43
|
-
# This method will add an error to the `attachment` field only if there
|
43
|
+
# This method will add an error to the `attachment` field only if there is
|
44
44
|
# any error in any other field. This is needed because when the form has
|
45
45
|
# an error, the attachment is lost, so we need a way to inform the user of
|
46
46
|
# this problem.
|
@@ -24,7 +24,7 @@ module Decidim
|
|
24
24
|
|
25
25
|
private
|
26
26
|
|
27
|
-
# This method will add an error to the `photos` field only if there
|
27
|
+
# This method will add an error to the `photos` field only if there is
|
28
28
|
# any error in any other field. This is needed because when the form has
|
29
29
|
# an error, the attachment is lost, so we need a way to inform the user of
|
30
30
|
# this problem.
|
@@ -11,8 +11,8 @@ module Decidim
|
|
11
11
|
private
|
12
12
|
|
13
13
|
def closurables
|
14
|
-
@closurables ||= Decidim::Votings::PollingStationClosure.where(election:
|
15
|
-
Decidim::Elections::BulletinBoardClosure.where(election:
|
14
|
+
@closurables ||= Decidim::Votings::PollingStationClosure.where(election:) +
|
15
|
+
Decidim::Elections::BulletinBoardClosure.where(election:)
|
16
16
|
end
|
17
17
|
|
18
18
|
def groups_for(question)
|
@@ -23,13 +23,13 @@ module Decidim
|
|
23
23
|
end
|
24
24
|
|
25
25
|
{
|
26
|
-
question
|
26
|
+
question:,
|
27
27
|
results: groups.values
|
28
28
|
}
|
29
29
|
end
|
30
30
|
|
31
31
|
def aggregate_results_for(question)
|
32
|
-
Decidim::Elections::Result.where(closurable: closurables, question:
|
32
|
+
Decidim::Elections::Result.where(closurable: closurables, question:)
|
33
33
|
.group(:closurable_type, :result_type, :decidim_elections_answer_id)
|
34
34
|
.sum(:value)
|
35
35
|
end
|
@@ -37,7 +37,7 @@ module Decidim
|
|
37
37
|
def update_group(groups, group_id, key, total)
|
38
38
|
closurable_type, result_type, answer_id = key
|
39
39
|
groups[group_id] ||= {
|
40
|
-
result_type
|
40
|
+
result_type:,
|
41
41
|
answer: all_answers[answer_id],
|
42
42
|
value: 0,
|
43
43
|
polling_station: 0,
|
@@ -10,8 +10,6 @@ module Decidim
|
|
10
10
|
extend ActiveSupport::Concern
|
11
11
|
|
12
12
|
included do
|
13
|
-
DOCUMENT_TYPES = %w(DNI NIE PASSPORT).freeze
|
14
|
-
|
15
13
|
attribute :document_number, String
|
16
14
|
attribute :document_type, String
|
17
15
|
attribute :birthdate, String
|
@@ -21,7 +19,7 @@ module Decidim
|
|
21
19
|
:birthdate,
|
22
20
|
presence: true
|
23
21
|
|
24
|
-
validates :document_type, inclusion: { in:
|
22
|
+
validates :document_type, inclusion: { in: :document_types }
|
25
23
|
end
|
26
24
|
|
27
25
|
# hash of birth, document type and number
|
@@ -35,13 +33,19 @@ module Decidim
|
|
35
33
|
end
|
36
34
|
|
37
35
|
def options_for_document_type_select
|
38
|
-
|
36
|
+
document_types.map do |document_type|
|
39
37
|
[
|
40
38
|
I18n.t(document_type.downcase, scope: "decidim.votings.census.document_types"),
|
41
39
|
document_type
|
42
40
|
]
|
43
41
|
end
|
44
42
|
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def document_types
|
47
|
+
Decidim::Elections.document_types
|
48
|
+
end
|
45
49
|
end
|
46
50
|
end
|
47
51
|
end
|
@@ -23,12 +23,12 @@ module Decidim
|
|
23
23
|
self.ballot_results = BallotResultForm.from_model(model)
|
24
24
|
|
25
25
|
self.question_results = model.election.questions.flat_map do |question|
|
26
|
-
QuestionResultForm.from_model(question
|
26
|
+
QuestionResultForm.from_model(question:, closure: model)
|
27
27
|
end
|
28
28
|
|
29
29
|
self.answer_results = model.election.questions.flat_map do |question|
|
30
30
|
question.answers.map do |answer|
|
31
|
-
AnswerResultForm.from_model(answer
|
31
|
+
AnswerResultForm.from_model(answer:, closure: model)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -6,15 +6,17 @@ module Decidim
|
|
6
6
|
# Custom helpers for trustees admin.
|
7
7
|
#
|
8
8
|
module TrusteesParticipatorySpacesHelper
|
9
|
+
include Decidim::PaginateHelper
|
10
|
+
|
9
11
|
def trustee_current_participatory_space(trustee)
|
10
12
|
trustee.trustees_participatory_spaces.find_by(participatory_space: current_participatory_space)
|
11
13
|
end
|
12
14
|
|
13
15
|
def considered_icon_action_for(trustee)
|
14
16
|
if trustee_current_participatory_space(trustee).considered
|
15
|
-
"
|
17
|
+
"close-line"
|
16
18
|
else
|
17
|
-
"check"
|
19
|
+
"check-line"
|
18
20
|
end
|
19
21
|
end
|
20
22
|
|
@@ -17,6 +17,14 @@ module Decidim
|
|
17
17
|
]
|
18
18
|
)
|
19
19
|
end
|
20
|
+
|
21
|
+
def filter_sections
|
22
|
+
@filter_sections ||= [{ method: :with_any_date, collection: date_filter_values, label_scope: "decidim.elections.elections.filters", id: "date" }]
|
23
|
+
end
|
24
|
+
|
25
|
+
def component_name
|
26
|
+
(defined?(current_component) && translated_attribute(current_component&.name).presence) || t("decidim.components.elections.name")
|
27
|
+
end
|
20
28
|
end
|
21
29
|
end
|
22
30
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Votings
|
5
|
+
# This helper include some methods for rendering votings dynamic maps.
|
6
|
+
module MapHelper
|
7
|
+
include Decidim::SanitizeHelper
|
8
|
+
include Decidim::LayoutHelper
|
9
|
+
|
10
|
+
def polling_station_data_for_map(polling_stations)
|
11
|
+
polling_stations_geocoded = polling_stations.select(&:geocoded_and_valid?)
|
12
|
+
polling_stations_geocoded.map do |polling_station|
|
13
|
+
polling_station.slice(:latitude, :longitude, :address)
|
14
|
+
.merge(
|
15
|
+
title: translated_attribute(polling_station.title),
|
16
|
+
items: [{ icon: icon("map-line").html_safe, text: polling_station.address }].to_json
|
17
|
+
)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -15,6 +15,39 @@ module Decidim
|
|
15
15
|
]
|
16
16
|
)
|
17
17
|
end
|
18
|
+
|
19
|
+
def filter_sections
|
20
|
+
@filter_sections ||= [{ method: :with_any_date, collection: date_filter_values, label_scope: "decidim.votings.votings.filters", id: "date" }]
|
21
|
+
end
|
22
|
+
|
23
|
+
def voting_nav_items(participatory_space)
|
24
|
+
components = participatory_space.components.published.or(Decidim::Component.where(id: try(:current_component)))
|
25
|
+
|
26
|
+
(
|
27
|
+
[
|
28
|
+
if participatory_space.check_census_enabled?
|
29
|
+
{
|
30
|
+
name: t("layouts.decidim.voting_navigation.check_census"),
|
31
|
+
url: decidim_votings.voting_check_census_path(participatory_space),
|
32
|
+
active: is_active_link?(decidim_votings.voting_check_census_path(participatory_space), :exclusive)
|
33
|
+
}
|
34
|
+
end
|
35
|
+
] + components.map do |component|
|
36
|
+
{
|
37
|
+
name: translated_attribute(component.name),
|
38
|
+
url: main_component_path(component),
|
39
|
+
active: is_active_link?(main_component_path(component), :inclusive) && !is_active_link?("election_log", /election_log$/)
|
40
|
+
}
|
41
|
+
end +
|
42
|
+
[
|
43
|
+
{
|
44
|
+
name: t("layouts.decidim.voting_navigation.election_log"),
|
45
|
+
url: decidim_votings.voting_elections_log_path(participatory_space),
|
46
|
+
active: is_active_link?(decidim_votings.voting_elections_log_path(participatory_space), :exclusive) || is_active_link?("election_log", /election_log$/)
|
47
|
+
}
|
48
|
+
]
|
49
|
+
).compact
|
50
|
+
end
|
18
51
|
end
|
19
52
|
end
|
20
53
|
end
|