From 70d00a97689284277f1fc0bc6a88f386a39d69eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baza=CC=81n?= Date: Mon, 30 Jan 2017 20:16:02 +0100 Subject: [PATCH] adds all recounts to offering final recounts list so poll officers can compare --- .../officing/final_recounts_controller.rb | 2 +- app/helpers/officing_helper.rb | 9 +++++ .../officing/final_recounts/new.html.erb | 8 +++++ config/locales/officing.en.yml | 4 +-- config/locales/officing.es.yml | 4 +-- spec/features/officing/final_recount_spec.rb | 36 ++++++++++++++++++- 6 files changed, 57 insertions(+), 6 deletions(-) diff --git a/app/controllers/officing/final_recounts_controller.rb b/app/controllers/officing/final_recounts_controller.rb index 56b0c600e..bbfa13c95 100644 --- a/app/controllers/officing/final_recounts_controller.rb +++ b/app/controllers/officing/final_recounts_controller.rb @@ -4,7 +4,7 @@ class Officing::FinalRecountsController < Officing::BaseController def new @officer_assignments = ::Poll::OfficerAssignment. - includes(:final_recounts, booth_assignment: :booth). + includes(:final_recounts, booth_assignment: [:booth]). joins(:booth_assignment). final. where(id: current_user.poll_officer.officer_assignment_ids). diff --git a/app/helpers/officing_helper.rb b/app/helpers/officing_helper.rb index 5ace7ab5f..842eaee63 100644 --- a/app/helpers/officing_helper.rb +++ b/app/helpers/officing_helper.rb @@ -16,4 +16,13 @@ module OfficingHelper options_for_select(options) end + def recount_to_compare_with_final_recount(final_recount) + recount = final_recount.booth_assignment.recounts.select {|r| r.date == final_recount.date}.first + recount.present? ? recount.count : "-" + end + + def system_recount_to_compare_with_final_recount(final_recount) + final_recount.booth_assignment.voters.select {|v| v.created_at.to_date == final_recount.date}.size + end + end \ No newline at end of file diff --git a/app/views/officing/final_recounts/new.html.erb b/app/views/officing/final_recounts/new.html.erb index 42518cfd9..e67ea509a 100644 --- a/app/views/officing/final_recounts/new.html.erb +++ b/app/views/officing/final_recounts/new.html.erb @@ -52,6 +52,8 @@ <%= t("officing.final_recounts.new.date") %> <%= t("officing.final_recounts.new.booth") %> <%= t("officing.final_recounts.new.count") %> + <%= "Recuento diario anterior" %> + <%= "Recuento del sistema" %> <% @final_recounts.each do |final_recount| %> @@ -65,6 +67,12 @@ <%= final_recount.count %> + + <%= recount_to_compare_with_final_recount final_recount %> + + + <%= system_recount_to_compare_with_final_recount final_recount %> + <% end %> diff --git a/config/locales/officing.en.yml b/config/locales/officing.en.yml index c82d3f740..607346e6b 100644 --- a/config/locales/officing.en.yml +++ b/config/locales/officing.en.yml @@ -46,8 +46,8 @@ en: date: "Date" select_booth: "Select booth" select_date: "Select date" - count: "Vote count" - count_placeholder: "Vote count" + count: "Final vote count" + count_placeholder: "Final vote count" submit: Save final_recount_list: "Your final recounts" residence: diff --git a/config/locales/officing.es.yml b/config/locales/officing.es.yml index df91b79ed..c9cf97544 100644 --- a/config/locales/officing.es.yml +++ b/config/locales/officing.es.yml @@ -46,8 +46,8 @@ es: date: "Día" select_booth: "Elige urna" select_date: "Elige día" - count: "Número de votos" - count_placeholder: "Número de votos" + count: "Recuento final" + count_placeholder: "Número final de votos" submit: "Guardar" final_recount_list: "Tus recuentos finales" residence: diff --git a/spec/features/officing/final_recount_spec.rb b/spec/features/officing/final_recount_spec.rb index 770561bb7..ffb7c38f4 100644 --- a/spec/features/officing/final_recount_spec.rb +++ b/spec/features/officing/final_recount_spec.rb @@ -63,7 +63,7 @@ feature 'Officing Final Recount' do end end - scenario 'Edit recount' do + scenario 'Edit final recount' do final_recount = create(:poll_final_recount, officer_assignment: @officer_assignment, booth_assignment: @officer_assignment.booth_assignment, @@ -97,4 +97,38 @@ feature 'Officing Final Recount' do end expect(page).to_not have_content('100') end + + scenario 'Show daily, final and system recounts to compare' do + voting_officer_assignment = create(:poll_officer_assignment, date: 7.days.ago) + poll = voting_officer_assignment.booth_assignment.poll + poll.update(ends_at: 1.day.ago) + daily_recount = create(:poll_recount, + officer_assignment: voting_officer_assignment, + booth_assignment: voting_officer_assignment.booth_assignment, + date: voting_officer_assignment.date, + count: 500) + final_officer_assignment = create(:poll_officer_assignment, :final, + booth_assignment: voting_officer_assignment.booth_assignment, + date: poll.ends_at + 1.day, + officer: @poll_officer) + final_recount = create(:poll_final_recount, + officer_assignment: final_officer_assignment, + booth_assignment: final_officer_assignment.booth_assignment, + date: daily_recount.date, + count: 100) + 33.times { create(:poll_voter, :valid_document, + poll: poll, + booth_assignment: final_officer_assignment.booth_assignment, + created_at: daily_recount.date) } + + visit new_officing_poll_final_recount_path(poll) + within("#poll_final_recount_#{final_recount.id}") do + expect(page).to have_content(I18n.l(final_recount.date.to_date, format: :long)) + expect(page).to have_content(final_officer_assignment.booth_assignment.booth.name) + expect(page).to have_content('500') + expect(page).to have_content('100') + expect(page).to have_content('33') + end + + end end \ No newline at end of file