decidim-elections 0.26.2 → 0.27.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/cells/decidim/votings/content_blocks/highlighted_votings/show.erb +2 -2
- data/app/cells/decidim/votings/content_blocks/highlighted_votings_cell.rb +1 -4
- data/app/cells/decidim/votings/content_blocks/landing_page/description/show.erb +1 -1
- data/app/cells/decidim/votings/content_blocks/landing_page/header/show.erb +2 -2
- data/app/cells/decidim/votings/content_blocks/landing_page/header_cell.rb +1 -1
- data/app/commands/decidim/elections/admin/add_user_as_trustee.rb +1 -1
- data/app/commands/decidim/elections/admin/create_answer.rb +1 -1
- data/app/commands/decidim/elections/admin/create_election.rb +1 -1
- data/app/commands/decidim/elections/admin/create_question.rb +1 -2
- data/app/commands/decidim/elections/admin/destroy_answer.rb +1 -1
- data/app/commands/decidim/elections/admin/destroy_election.rb +1 -1
- data/app/commands/decidim/elections/admin/destroy_question.rb +1 -1
- data/app/commands/decidim/elections/admin/end_vote.rb +1 -1
- 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 +1 -1
- data/app/commands/decidim/elections/admin/remove_trustee_from_participatory_space.rb +1 -1
- data/app/commands/decidim/elections/admin/report_missing_trustee.rb +1 -1
- data/app/commands/decidim/elections/admin/setup_election.rb +4 -2
- data/app/commands/decidim/elections/admin/start_key_ceremony.rb +1 -1
- data/app/commands/decidim/elections/admin/start_tally.rb +1 -1
- data/app/commands/decidim/elections/admin/start_vote.rb +1 -1
- data/app/commands/decidim/elections/admin/unpublish_election.rb +1 -1
- data/app/commands/decidim/elections/admin/update_action_status.rb +1 -1
- data/app/commands/decidim/elections/admin/update_answer.rb +1 -1
- data/app/commands/decidim/elections/admin/update_answer_selection.rb +1 -1
- data/app/commands/decidim/elections/admin/update_election.rb +1 -1
- data/app/commands/decidim/elections/admin/update_question.rb +1 -2
- data/app/commands/decidim/elections/admin/update_trustee_participatory_space.rb +1 -1
- data/app/commands/decidim/elections/trustee_zone/update_election_bulletin_board_status.rb +1 -1
- data/app/commands/decidim/elections/trustee_zone/update_trustee.rb +1 -1
- 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 +1 -1
- data/app/commands/decidim/votings/admin/create_polling_officer.rb +1 -1
- data/app/commands/decidim/votings/admin/create_voting.rb +3 -2
- 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/destroy_polling_station.rb +1 -1
- data/app/commands/decidim/votings/admin/manage_polling_station.rb +2 -2
- data/app/commands/decidim/votings/admin/monitoring_committee_validate_polling_station_closure.rb +1 -1
- data/app/commands/decidim/votings/admin/publish_voting.rb +1 -1
- data/app/commands/decidim/votings/admin/unpublish_voting.rb +1 -1
- data/app/commands/decidim/votings/admin/update_ballot_style.rb +1 -1
- data/app/commands/decidim/votings/admin/update_voting.rb +3 -2
- data/app/commands/decidim/votings/census/admin/create_dataset.rb +32 -21
- data/app/commands/decidim/votings/census/admin/create_datum.rb +1 -1
- 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_export.rb +4 -2
- data/app/commands/decidim/votings/census/admin/launch_access_codes_generation.rb +2 -2
- data/app/commands/decidim/votings/census/admin/update_dataset.rb +1 -1
- data/app/commands/decidim/votings/certify_polling_station_closure.rb +1 -1
- data/app/commands/decidim/votings/check_census.rb +1 -1
- 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 +1 -1
- data/app/commands/decidim/votings/sign_polling_station_closure.rb +1 -1
- data/app/commands/decidim/votings/voter/in_person_vote.rb +1 -1
- data/app/commands/decidim/votings/voter/update_in_person_vote_status.rb +1 -1
- data/app/controllers/decidim/elections/admin/steps_controller.rb +2 -2
- data/app/controllers/decidim/elections/elections_controller.rb +10 -12
- data/app/controllers/decidim/elections/trustee_zone/elections_controller.rb +1 -1
- data/app/controllers/decidim/votings/census/admin/census_controller.rb +6 -2
- data/app/controllers/decidim/votings/votings_controller.rb +10 -13
- data/app/forms/decidim/elections/admin/question_form.rb +0 -2
- data/app/forms/decidim/elections/admin/setup_form.rb +46 -3
- data/app/forms/decidim/elections/admin/vote_period_form.rb +2 -2
- data/app/forms/decidim/votings/admin/ballot_style_form.rb +1 -1
- data/app/forms/decidim/votings/admin/voting_form.rb +4 -3
- data/app/forms/decidim/votings/census/admin/dataset_form.rb +2 -5
- data/app/forms/decidim/votings/census/admin/datum_form.rb +1 -1
- data/app/helpers/decidim/elections/application_helper.rb +1 -1
- data/app/helpers/decidim/votings/votings_helper.rb +1 -1
- data/app/models/decidim/elections/answer.rb +1 -6
- data/app/models/decidim/elections/election.rb +15 -4
- data/app/models/decidim/elections/question.rb +2 -7
- data/app/models/decidim/votings/census/dataset.rb +1 -1
- data/app/models/decidim/votings/polling_station.rb +2 -3
- data/app/models/decidim/votings/voting.rb +15 -0
- data/app/packs/entrypoints/{decidim_elections_trustee_tally.js → decidim_elections_trustee_tally_started.js} +0 -0
- data/app/packs/src/decidim/elections/admin/pending_action.js +2 -0
- data/app/packs/src/decidim/elections/admin/trustees_process.js +2 -0
- data/app/packs/src/decidim/elections/broken_promises_handler.js +11 -0
- data/app/packs/src/decidim/elections/trustee/key_ceremony.js +3 -0
- data/app/packs/src/decidim/elections/trustee/tally.js +4 -1
- data/app/packs/src/decidim/elections/voter/casting-vote.js +3 -0
- data/app/packs/src/decidim/elections/voter/setup-vote.js +3 -0
- data/app/packs/src/decidim/votings/admin/update_census_dataset_status.js +2 -2
- data/app/packs/src/decidim/votings/in-person-vote.js +3 -0
- data/app/permissions/decidim/votings/admin/permissions.rb +2 -14
- data/app/permissions/decidim/votings/permissions.rb +1 -3
- data/app/presenters/decidim/votings/voting_stats_presenter.rb +4 -1
- data/app/queries/decidim/elections/admin/pending_actions.rb +1 -1
- data/app/queries/decidim/elections/admin/votes_for_statistics.rb +1 -1
- data/app/queries/decidim/elections/elections_finished_to_end.rb +1 -1
- data/app/queries/decidim/elections/elections_ready_to_start.rb +1 -1
- data/app/queries/decidim/elections/filtered_elections.rb +1 -1
- data/app/queries/decidim/elections/trustees/by_participatory_space.rb +1 -1
- data/app/queries/decidim/elections/trustees/by_participatory_space_trustee_ids.rb +1 -1
- data/app/queries/decidim/elections/votes/last_vote_for_voter.rb +1 -1
- data/app/queries/decidim/elections/votes/pending_votes.rb +1 -1
- data/app/queries/decidim/votings/admin/admin_users.rb +1 -1
- data/app/queries/decidim/votings/admin/ballot_style_by_voting_code.rb +1 -1
- data/app/queries/decidim/votings/admin/polling_officers_join_polling_stations.rb +1 -1
- data/app/queries/decidim/votings/admin/polling_officers_join_polling_stations_and_user.rb +2 -2
- data/app/queries/decidim/votings/admin/polling_officers_join_user.rb +1 -1
- data/app/queries/decidim/votings/organization_prioritized_votings.rb +2 -2
- data/app/queries/decidim/votings/organization_promoted_votings.rb +1 -1
- data/app/queries/decidim/votings/organization_published_votings.rb +2 -2
- data/app/queries/decidim/votings/organization_votings.rb +1 -1
- data/app/queries/decidim/votings/prioritized_votings.rb +1 -1
- data/app/queries/decidim/votings/published_votings.rb +1 -1
- data/app/queries/decidim/votings/votes/in_person_vote_for_voter.rb +1 -1
- data/app/queries/decidim/votings/votes/pending_in_person_votes.rb +1 -1
- data/app/services/decidim/votings/census_vote_flow.rb +1 -3
- data/app/views/decidim/elections/admin/questions/_form.html.erb +0 -4
- data/app/views/decidim/elections/admin/steps/_create_election.html.erb +14 -1
- data/app/views/decidim/elections/admin/steps/{_tally.html.erb → _tally_started.html.erb} +1 -1
- data/app/views/decidim/elections/admin/steps/index.html.erb +2 -0
- data/app/views/decidim/elections/elections/_filters.html.erb +2 -2
- data/app/views/decidim/elections/elections/election_log.html.erb +3 -1
- data/app/views/decidim/elections/shared/_broken_promises_modal.html.erb +33 -0
- data/app/views/decidim/elections/trustee_zone/elections/{_tally_steps.html.erb → _tally_started_steps.html.erb} +0 -0
- data/app/views/decidim/elections/trustee_zone/elections/show.html.erb +5 -1
- data/app/views/decidim/elections/trustee_zone/trustees/show.html.erb +3 -1
- data/app/views/decidim/elections/votes/_onboarding_modal.html.erb +3 -1
- data/app/views/decidim/elections/votes/_show_casting.html.erb +5 -1
- data/app/views/decidim/elections/votes/new.html.erb +11 -5
- data/app/views/decidim/elections/votes/verify.html.erb +4 -1
- data/app/views/decidim/votings/admin/votings/_form.html.erb +9 -0
- data/app/views/decidim/votings/census/admin/census/_creating_data.html.erb +1 -1
- data/app/views/decidim/votings/census/admin/census/_exporting_codes.html.erb +1 -1
- data/app/views/decidim/votings/census/admin/census/_freeze.html.erb +2 -0
- data/app/views/decidim/votings/census/admin/census/_generate_codes.html.erb +14 -4
- data/app/views/decidim/votings/census/admin/census/show.html.erb +1 -1
- data/app/views/decidim/votings/polling_officer_zone/closures/_certify_form.html.erb +3 -1
- data/app/views/decidim/votings/polling_officer_zone/closures/_sign_form.html.erb +3 -1
- data/app/views/decidim/votings/polling_officer_zone/closures/edit.html.erb +3 -1
- data/app/views/decidim/votings/polling_officer_zone/closures/new.html.erb +3 -1
- data/app/views/decidim/votings/polling_officer_zone/in_person_votes/_complete_voting.html.erb +8 -2
- data/app/views/decidim/votings/polling_officer_zone/in_person_votes/new.html.erb +5 -1
- data/app/views/decidim/votings/polling_officer_zone/in_person_votes/show.html.erb +5 -1
- data/app/views/decidim/votings/votings/_filters.html.erb +2 -3
- data/app/views/decidim/votings/votings/_promoted_voting.html.erb +1 -1
- data/app/views/layouts/decidim/election_votes.html.erb +3 -1
- data/config/assets.rb +1 -1
- data/config/locales/ar.yml +2 -3
- data/config/locales/bg.yml +1 -0
- data/config/locales/ca.yml +64 -30
- data/config/locales/cs.yml +66 -27
- data/config/locales/de.yml +53 -30
- data/config/locales/el.yml +1 -1
- data/config/locales/en.yml +63 -27
- data/config/locales/es-MX.yml +65 -31
- data/config/locales/es-PY.yml +65 -31
- data/config/locales/es.yml +67 -33
- data/config/locales/eu.yml +5 -40
- data/config/locales/fi-plain.yml +64 -29
- data/config/locales/fi.yml +66 -31
- data/config/locales/fr-CA.yml +64 -29
- data/config/locales/fr.yml +62 -27
- data/config/locales/ga-IE.yml +1 -15
- data/config/locales/gl.yml +22 -32
- data/config/locales/hu.yml +28 -13
- data/config/locales/it.yml +5 -34
- data/config/locales/ja.yml +65 -33
- data/config/locales/lb.yml +1 -0
- data/config/locales/lt.yml +1445 -0
- data/config/locales/lv.yml +1 -1
- data/config/locales/nl.yml +10 -51
- data/config/locales/no.yml +11 -39
- data/config/locales/pl.yml +16 -35
- data/config/locales/pt-BR.yml +6 -34
- data/config/locales/pt.yml +12 -40
- data/config/locales/ro-RO.yml +11 -25
- data/config/locales/sl.yml +1 -0
- data/config/locales/sv.yml +60 -11
- data/config/locales/tr-TR.yml +4 -14
- data/config/locales/zh-CN.yml +1 -5
- data/db/migrate/20220404112802_rename_bb_status_tally_to_tally_started.rb +19 -0
- data/db/migrate/20220424121541_add_show_check_census_to_votings.rb +7 -0
- data/db/migrate/20220615102642_remove_description_from_elections_questions.rb +7 -0
- data/db/migrate/20220711112802_rename_dataset_file_to_filename.rb +7 -0
- data/lib/decidim/api/election_question_type.rb +0 -1
- data/lib/decidim/elections/component.rb +4 -16
- data/lib/decidim/elections/test/factories.rb +4 -5
- data/lib/decidim/elections/version.rb +1 -1
- data/lib/decidim/votings/participatory_space.rb +3 -3
- data/lib/decidim/votings/test/factories.rb +3 -2
- metadata +31 -27
- data/app/services/decidim/elections/election_search.rb +0 -35
- data/app/services/decidim/votings/voting_search.rb +0 -46
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class RenameBbStatusTallyToTallyStarted < ActiveRecord::Migration[6.1]
|
4
|
+
class Election < ApplicationRecord
|
5
|
+
self.table_name = :decidim_elections_elections
|
6
|
+
end
|
7
|
+
|
8
|
+
def up
|
9
|
+
# rubocop:disable Rails/SkipsModelValidations
|
10
|
+
Election.where(bb_status: "tally").update_all(bb_status: "tally_started")
|
11
|
+
# rubocop:enable Rails/SkipsModelValidations
|
12
|
+
end
|
13
|
+
|
14
|
+
def down
|
15
|
+
# rubocop:disable Rails/SkipsModelValidations
|
16
|
+
Election.where(bb_status: "tally_started").update_all(bb_status: "tally")
|
17
|
+
# rubocop:enable Rails/SkipsModelValidations
|
18
|
+
end
|
19
|
+
end
|
@@ -11,7 +11,6 @@ module Decidim
|
|
11
11
|
|
12
12
|
field :id, GraphQL::Types::ID, "The internal ID of this question", null: false
|
13
13
|
field :title, Decidim::Core::TranslatedFieldType, "The title for this question", null: false
|
14
|
-
field :description, Decidim::Core::TranslatedFieldType, "The description for this question", null: false
|
15
14
|
field :max_selections, GraphQL::Types::Int, "The maximum number of possible selections for this question", null: false
|
16
15
|
field :weight, GraphQL::Types::Int, "The ordering weight for this question", null: true
|
17
16
|
field :random_answers_order, GraphQL::Types::Boolean, "Should this question order answers in random order?", null: true
|
@@ -113,9 +113,6 @@ Decidim.register_component(:elections) do |component|
|
|
113
113
|
{
|
114
114
|
election: upcoming_election,
|
115
115
|
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
116
|
-
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
117
|
-
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
118
|
-
end,
|
119
116
|
max_selections: Faker::Number.between(from: 1, to: 3),
|
120
117
|
weight: Faker::Number.number(digits: 1),
|
121
118
|
random_answers_order: Faker::Boolean.boolean(true_ratio: 0.5),
|
@@ -145,7 +142,7 @@ Decidim.register_component(:elections) do |component|
|
|
145
142
|
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
146
143
|
attached_to: answer,
|
147
144
|
content_type: "image/jpeg",
|
148
|
-
file: ActiveStorage::Blob.
|
145
|
+
file: ActiveStorage::Blob.create_and_upload!(
|
149
146
|
io: File.open(File.join(__dir__, "seeds", "city.jpeg")),
|
150
147
|
filename: "city.jpeg",
|
151
148
|
content_type: "image/jpeg",
|
@@ -213,9 +210,6 @@ Decidim.register_component(:elections) do |component|
|
|
213
210
|
{
|
214
211
|
election: finished_election,
|
215
212
|
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
216
|
-
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
217
|
-
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
218
|
-
end,
|
219
213
|
max_selections: 2,
|
220
214
|
weight: Faker::Number.number(digits: 1),
|
221
215
|
random_answers_order: Faker::Boolean.boolean(true_ratio: 0.5),
|
@@ -245,7 +239,7 @@ Decidim.register_component(:elections) do |component|
|
|
245
239
|
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
246
240
|
attached_to: answer,
|
247
241
|
content_type: "image/jpeg",
|
248
|
-
file: ActiveStorage::Blob.
|
242
|
+
file: ActiveStorage::Blob.create_and_upload!(
|
249
243
|
io: File.open(File.join(__dir__, "seeds", "city.jpeg")),
|
250
244
|
filename: "city.jpeg",
|
251
245
|
content_type: "image/jpeg",
|
@@ -336,9 +330,6 @@ Decidim.register_component(:elections) do |component|
|
|
336
330
|
{
|
337
331
|
election: election_with_results,
|
338
332
|
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
339
|
-
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
340
|
-
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
341
|
-
end,
|
342
333
|
max_selections: 2,
|
343
334
|
weight: Faker::Number.number(digits: 1),
|
344
335
|
random_answers_order: Faker::Boolean.boolean(true_ratio: 0.5),
|
@@ -369,7 +360,7 @@ Decidim.register_component(:elections) do |component|
|
|
369
360
|
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
370
361
|
attached_to: answer,
|
371
362
|
content_type: "image/jpeg",
|
372
|
-
file: ActiveStorage::Blob.
|
363
|
+
file: ActiveStorage::Blob.create_and_upload!(
|
373
364
|
io: File.open(File.join(__dir__, "seeds", "city.jpeg")),
|
374
365
|
filename: "city.jpeg",
|
375
366
|
content_type: "image/jpeg",
|
@@ -456,9 +447,6 @@ Decidim.register_component(:elections) do |component|
|
|
456
447
|
{
|
457
448
|
election: ongoing_election,
|
458
449
|
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
459
|
-
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
460
|
-
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
461
|
-
end,
|
462
450
|
max_selections: 2,
|
463
451
|
weight: Faker::Number.number(digits: 1),
|
464
452
|
random_answers_order: Faker::Boolean.boolean(true_ratio: 0.5),
|
@@ -488,7 +476,7 @@ Decidim.register_component(:elections) do |component|
|
|
488
476
|
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
489
477
|
attached_to: answer,
|
490
478
|
content_type: "image/jpeg",
|
491
|
-
file: ActiveStorage::Blob.
|
479
|
+
file: ActiveStorage::Blob.create_and_upload!(
|
492
480
|
io: File.open(File.join(__dir__, "seeds", "city.jpeg")),
|
493
481
|
filename: "city.jpeg",
|
494
482
|
content_type: "image/jpeg",
|
@@ -70,7 +70,7 @@ FactoryBot.define do
|
|
70
70
|
|
71
71
|
trait :ready_for_setup do
|
72
72
|
transient do
|
73
|
-
trustee_keys { 3.times.
|
73
|
+
trustee_keys { 3.times.to_h { [Faker::Name.name, generate(:private_key).export.to_json] } }
|
74
74
|
end
|
75
75
|
|
76
76
|
upcoming
|
@@ -124,13 +124,13 @@ FactoryBot.define do
|
|
124
124
|
end
|
125
125
|
end
|
126
126
|
|
127
|
-
trait :
|
127
|
+
trait :tally_started do
|
128
128
|
vote_ended
|
129
|
-
bb_status { "
|
129
|
+
bb_status { "tally_started" }
|
130
130
|
end
|
131
131
|
|
132
132
|
trait :tally_ended do
|
133
|
-
|
133
|
+
tally_started
|
134
134
|
bb_status { "tally_ended" }
|
135
135
|
verifiable_results_file_hash { SecureRandom.hex(32) }
|
136
136
|
verifiable_results_file_url { Faker::Internet.url }
|
@@ -170,7 +170,6 @@ FactoryBot.define do
|
|
170
170
|
|
171
171
|
election
|
172
172
|
title { generate_localized_title }
|
173
|
-
description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
|
174
173
|
min_selections { 1 }
|
175
174
|
max_selections { 1 }
|
176
175
|
weight { Faker::Number.number(digits: 1) }
|
@@ -51,7 +51,7 @@ Decidim.register_participatory_space(:votings) do |participatory_space|
|
|
51
51
|
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
52
52
|
end,
|
53
53
|
scope: n.positive? ? nil : Decidim::Scope.reorder(Arel.sql("RANDOM()")).first,
|
54
|
-
banner_image: ActiveStorage::Blob.
|
54
|
+
banner_image: ActiveStorage::Blob.create_and_upload!(
|
55
55
|
io: File.open(File.join(seeds_root, "city.jpeg")),
|
56
56
|
filename: "banner_image.jpeg",
|
57
57
|
content_type: "image/jpeg",
|
@@ -99,8 +99,8 @@ Decidim.register_participatory_space(:votings) do |participatory_space|
|
|
99
99
|
user.update!(
|
100
100
|
name: Faker::Name.name,
|
101
101
|
nickname: Faker::Twitter.unique.screen_name,
|
102
|
-
password: "
|
103
|
-
password_confirmation: "
|
102
|
+
password: "decidim123456789",
|
103
|
+
password_confirmation: "decidim123456789",
|
104
104
|
organization: organization,
|
105
105
|
confirmed_at: Time.current,
|
106
106
|
locale: I18n.default_locale,
|
@@ -29,6 +29,7 @@ FactoryBot.define do
|
|
29
29
|
introductory_image { Decidim::Dev.test_file("city.jpeg", "image/jpeg") }
|
30
30
|
voting_type { "hybrid" }
|
31
31
|
census_contact_information { nil }
|
32
|
+
show_check_census { true }
|
32
33
|
|
33
34
|
trait :unpublished do
|
34
35
|
published_at { nil }
|
@@ -105,7 +106,7 @@ FactoryBot.define do
|
|
105
106
|
|
106
107
|
factory :dataset, class: "Decidim::Votings::Census::Dataset" do
|
107
108
|
voting { create(:voting) }
|
108
|
-
|
109
|
+
filename { "file.csv" }
|
109
110
|
status { "init_data" }
|
110
111
|
csv_row_raw_count { 1 }
|
111
112
|
csv_row_processed_count { 1 }
|
@@ -174,7 +175,7 @@ FactoryBot.define do
|
|
174
175
|
with_questions
|
175
176
|
|
176
177
|
after(:create) do |ballot_style, evaluator|
|
177
|
-
evaluator.election.questions.first(2).map { |question| create(:ballot_style_question, question: question, ballot_style: ballot_style) }
|
178
|
+
evaluator.election.reload.questions.first(2).map { |question| create(:ballot_style_question, question: question, ballot_style: ballot_style) }
|
178
179
|
end
|
179
180
|
end
|
180
181
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-elections
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.27.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leonardo Diez
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-09-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: decidim-bulletin_board
|
@@ -17,84 +17,84 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - '='
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0.
|
20
|
+
version: '0.23'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - '='
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0.
|
27
|
+
version: '0.23'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: voting_schemes-dummy
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - '='
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 0.
|
34
|
+
version: '0.23'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - '='
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 0.
|
41
|
+
version: '0.23'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: voting_schemes-electionguard
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - '='
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 0.
|
48
|
+
version: '0.23'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - '='
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.
|
55
|
+
version: '0.23'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: decidim-core
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - '='
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.
|
62
|
+
version: 0.27.0.rc2
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - '='
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.
|
69
|
+
version: 0.27.0.rc2
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: decidim-forms
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - '='
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 0.
|
76
|
+
version: 0.27.0.rc2
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - '='
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: 0.
|
83
|
+
version: 0.27.0.rc2
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: decidim-proposals
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - '='
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0.
|
90
|
+
version: 0.27.0.rc2
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - '='
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0.
|
97
|
+
version: 0.27.0.rc2
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: rack-attack
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,28 +115,28 @@ dependencies:
|
|
115
115
|
requirements:
|
116
116
|
- - '='
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: 0.
|
118
|
+
version: 0.27.0.rc2
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
123
|
- - '='
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: 0.
|
125
|
+
version: 0.27.0.rc2
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: decidim-dev
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
130
|
- - '='
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: 0.
|
132
|
+
version: 0.27.0.rc2
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
137
|
- - '='
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: 0.
|
139
|
+
version: 0.27.0.rc2
|
140
140
|
description: The Elections module adds elections to any participatory space.
|
141
141
|
email:
|
142
142
|
- leo@codegram.com
|
@@ -391,7 +391,7 @@ files:
|
|
391
391
|
- app/packs/entrypoints/decidim_elections_election_log.js
|
392
392
|
- app/packs/entrypoints/decidim_elections_onboarding.js
|
393
393
|
- app/packs/entrypoints/decidim_elections_trustee_key_ceremony.js
|
394
|
-
- app/packs/entrypoints/
|
394
|
+
- app/packs/entrypoints/decidim_elections_trustee_tally_started.js
|
395
395
|
- app/packs/entrypoints/decidim_elections_trustee_trustee_zone.js
|
396
396
|
- app/packs/entrypoints/decidim_elections_trustee_zone.js
|
397
397
|
- app/packs/entrypoints/decidim_elections_trustee_zone.scss
|
@@ -418,6 +418,7 @@ files:
|
|
418
418
|
- app/packs/src/decidim/elections/admin/pending_action.js
|
419
419
|
- app/packs/src/decidim/elections/admin/trustees_process.js
|
420
420
|
- app/packs/src/decidim/elections/admin/vote_statistics.js
|
421
|
+
- app/packs/src/decidim/elections/broken_promises_handler.js
|
421
422
|
- app/packs/src/decidim/elections/election_log.js
|
422
423
|
- app/packs/src/decidim/elections/onboarding.js
|
423
424
|
- app/packs/src/decidim/elections/trustee/key_ceremony.js
|
@@ -495,11 +496,9 @@ files:
|
|
495
496
|
- app/queries/decidim/votings/votes/pending_in_person_votes.rb
|
496
497
|
- app/serializers/decidim/votings/census/datum_serializer.rb
|
497
498
|
- app/services/decidim/elections/current_user_vote_flow.rb
|
498
|
-
- app/services/decidim/elections/election_search.rb
|
499
499
|
- app/services/decidim/elections/vote_flow.rb
|
500
500
|
- app/services/decidim/votings/census/access_codes_exporter.rb
|
501
501
|
- app/services/decidim/votings/census_vote_flow.rb
|
502
|
-
- app/services/decidim/votings/voting_search.rb
|
503
502
|
- app/uploaders/decidim/cw/votings/census/voting_census_uploader.rb
|
504
503
|
- app/views/decidim/elections/admin/answers/_form.html.erb
|
505
504
|
- app/views/decidim/elections/admin/answers/edit.html.erb
|
@@ -521,8 +520,8 @@ files:
|
|
521
520
|
- app/views/decidim/elections/admin/steps/_key_ceremony.html.erb
|
522
521
|
- app/views/decidim/elections/admin/steps/_key_ceremony_ended.html.erb
|
523
522
|
- app/views/decidim/elections/admin/steps/_results_published.html.erb
|
524
|
-
- app/views/decidim/elections/admin/steps/_tally.html.erb
|
525
523
|
- app/views/decidim/elections/admin/steps/_tally_ended.html.erb
|
524
|
+
- app/views/decidim/elections/admin/steps/_tally_started.html.erb
|
526
525
|
- app/views/decidim/elections/admin/steps/_vote.html.erb
|
527
526
|
- app/views/decidim/elections/admin/steps/_vote_ended.html.erb
|
528
527
|
- app/views/decidim/elections/admin/steps/_vote_stats.html.erb
|
@@ -539,11 +538,12 @@ files:
|
|
539
538
|
- app/views/decidim/elections/elections/index.html.erb
|
540
539
|
- app/views/decidim/elections/elections/index.js.erb
|
541
540
|
- app/views/decidim/elections/elections/show.html.erb
|
541
|
+
- app/views/decidim/elections/shared/_broken_promises_modal.html.erb
|
542
542
|
- app/views/decidim/elections/trustee_mailer/notification.html.erb
|
543
543
|
- app/views/decidim/elections/trustee_zone/elections/_backup_modal.html.erb
|
544
544
|
- app/views/decidim/elections/trustee_zone/elections/_key_ceremony_steps.html.erb
|
545
545
|
- app/views/decidim/elections/trustee_zone/elections/_restore_modal.html.erb
|
546
|
-
- app/views/decidim/elections/trustee_zone/elections/
|
546
|
+
- app/views/decidim/elections/trustee_zone/elections/_tally_started_steps.html.erb
|
547
547
|
- app/views/decidim/elections/trustee_zone/elections/show.html.erb
|
548
548
|
- app/views/decidim/elections/trustee_zone/elections/update.js.erb
|
549
549
|
- app/views/decidim/elections/trustee_zone/trustees/show.html.erb
|
@@ -751,6 +751,10 @@ files:
|
|
751
751
|
- db/migrate/20210422124826_add_verifiable_results_to_decidim_elections_election.rb
|
752
752
|
- db/migrate/20210426072845_add_signed_at_to_polling_station_closure.rb
|
753
753
|
- db/migrate/20210427131742_add_validated_at_to_votings_polling_station_closures.rb
|
754
|
+
- db/migrate/20220404112802_rename_bb_status_tally_to_tally_started.rb
|
755
|
+
- db/migrate/20220424121541_add_show_check_census_to_votings.rb
|
756
|
+
- db/migrate/20220615102642_remove_description_from_elections_questions.rb
|
757
|
+
- db/migrate/20220711112802_rename_dataset_file_to_filename.rb
|
754
758
|
- db/seeds/Exampledocument.pdf
|
755
759
|
- db/seeds/city.jpeg
|
756
760
|
- db/seeds/city2.jpeg
|
@@ -806,14 +810,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
806
810
|
requirements:
|
807
811
|
- - ">="
|
808
812
|
- !ruby/object:Gem::Version
|
809
|
-
version: '
|
813
|
+
version: '3.0'
|
810
814
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
811
815
|
requirements:
|
812
|
-
- - "
|
816
|
+
- - ">"
|
813
817
|
- !ruby/object:Gem::Version
|
814
|
-
version:
|
818
|
+
version: 1.3.1
|
815
819
|
requirements: []
|
816
|
-
rubygems_version: 3.
|
820
|
+
rubygems_version: 3.2.22
|
817
821
|
signing_key:
|
818
822
|
specification_version: 4
|
819
823
|
summary: A decidim elections module (votings space and elections component)
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Elections
|
5
|
-
# This class handles search and filtering of elections.
|
6
|
-
class ElectionSearch < ResourceSearch
|
7
|
-
# Public: Initializes the service.
|
8
|
-
# component - A Decidim::Component to get the election from.
|
9
|
-
# page - The page number to paginate the results.
|
10
|
-
# per_page - The number of proposals to return per page.
|
11
|
-
def initialize(options = {})
|
12
|
-
super(Election.all, options)
|
13
|
-
end
|
14
|
-
|
15
|
-
# Handle the search_text filter
|
16
|
-
def search_search_text
|
17
|
-
query
|
18
|
-
.where("decidim_elections_elections.title::text ILIKE ?", "%#{search_text}%")
|
19
|
-
.or(query.where("decidim_elections_elections.description::text ILIKE ?", "%#{search_text}%"))
|
20
|
-
end
|
21
|
-
|
22
|
-
# Handle the state filter
|
23
|
-
def search_state
|
24
|
-
active = state.member?("active") ? query.active : nil
|
25
|
-
upcoming = state.member?("upcoming") ? query.upcoming : nil
|
26
|
-
finished = state.member?("finished") ? query.finished : nil
|
27
|
-
|
28
|
-
query
|
29
|
-
.where(id: upcoming)
|
30
|
-
.or(query.where(id: active))
|
31
|
-
.or(query.where(id: finished))
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Votings
|
5
|
-
# Service that encapsulates all logic related to filtering votings.
|
6
|
-
class VotingSearch < Searchlight::Search
|
7
|
-
# Public: Initializes the service.
|
8
|
-
# page - The page number to paginate the results.
|
9
|
-
# per_page - The number of proposals to return per page.
|
10
|
-
def initialize(options = {})
|
11
|
-
super(options)
|
12
|
-
end
|
13
|
-
|
14
|
-
def base_query
|
15
|
-
Decidim::Votings::Voting.where(organization: options[:organization]).published
|
16
|
-
end
|
17
|
-
|
18
|
-
# Handle the search_text filter
|
19
|
-
def search_search_text
|
20
|
-
query
|
21
|
-
.where(Arel.sql("title->>'#{current_locale}' ILIKE ?").to_s, "%#{search_text}%")
|
22
|
-
.or(
|
23
|
-
query.where(Arel.sql("description->>'#{current_locale}' ILIKE ?").to_s, "%#{search_text}%")
|
24
|
-
)
|
25
|
-
end
|
26
|
-
|
27
|
-
# Handle the state filter
|
28
|
-
def search_state
|
29
|
-
active = state.member?("active") ? query.active : nil
|
30
|
-
upcoming = state.member?("upcoming") ? query.upcoming : nil
|
31
|
-
finished = state.member?("finished") ? query.finished : nil
|
32
|
-
|
33
|
-
query
|
34
|
-
.where(id: upcoming)
|
35
|
-
.or(query.where(id: active))
|
36
|
-
.or(query.where(id: finished))
|
37
|
-
end
|
38
|
-
|
39
|
-
private
|
40
|
-
|
41
|
-
def current_locale
|
42
|
-
I18n.locale.to_s
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|