diff --git a/app/controllers/admin/poll/officer_assignments_controller.rb b/app/controllers/admin/poll/officer_assignments_controller.rb index e34e1a142..3a704b21a 100644 --- a/app/controllers/admin/poll/officer_assignments_controller.rb +++ b/app/controllers/admin/poll/officer_assignments_controller.rb @@ -17,6 +17,7 @@ class Admin::Poll::OfficerAssignmentsController < Admin::BaseController @officer_assignment = ::Poll::OfficerAssignment.new(booth_assignment: @booth_assignment, officer_id: create_params[:officer_id], date: create_params[:date]) + @officer_assignment.final = true if @officer_assignment.date > @booth_assignment.poll.ends_at if @officer_assignment.save notice = t("admin.poll_officer_assignments.flash.create") @@ -48,7 +49,7 @@ class Admin::Poll::OfficerAssignmentsController < Admin::BaseController end def load_booth_assignment - @booth_assignment = ::Poll::BoothAssignment.find_by(poll_id: create_params[:poll_id], booth_id: create_params[:booth_id]) + @booth_assignment = ::Poll::BoothAssignment.includes(:poll).find_by(poll_id: create_params[:poll_id], booth_id: create_params[:booth_id]) end def redirect_if_blank_required_params diff --git a/app/helpers/polls_helper.rb b/app/helpers/polls_helper.rb index ed39f44e5..d6295739b 100644 --- a/app/helpers/polls_helper.rb +++ b/app/helpers/polls_helper.rb @@ -28,6 +28,11 @@ module PollsHelper options_for_select(options) end + def poll_final_recount_option(poll) + final_date = poll.ends_at.to_date + 1.day + options_for_select([[I18n.t("polls.final_date"), l(final_date)]]) + end + def poll_booths_select_options(poll) options = [] poll.booths.each do |booth| diff --git a/app/views/admin/poll/officer_assignments/index.html.erb b/app/views/admin/poll/officer_assignments/index.html.erb index 81ac5aa61..8bac58295 100644 --- a/app/views/admin/poll/officer_assignments/index.html.erb +++ b/app/views/admin/poll/officer_assignments/index.html.erb @@ -11,7 +11,7 @@
<%= select_tag :date, - poll_dates_select_options(@poll), + poll_dates_select_options(@poll) + poll_final_recount_option(@poll), { prompt: t("admin.poll_officer_assignments.index.select_date"), label: false } %>
@@ -51,7 +51,7 @@ <% @officer_assignments.each do |officer_assignment| %> - <%= l officer_assignment.date.to_date %> + <%= officer_assignment.final? ? t('polls.final_date') : l(officer_assignment.date.to_date) %> <%= booth_name_with_location(officer_assignment.booth_assignment.booth) %> <%= link_to t("admin.poll_officer_assignments.index.remove_assignment"), diff --git a/config/locales/en.yml b/config/locales/en.yml index a5b671809..edf96a210 100755 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -395,6 +395,7 @@ en: all: "All" no_dates: "no date assigned" dates: "From %{open_at} to %{closed_at}" + final_date: "Final recounts/Results" index: filters: current: "Open" diff --git a/config/locales/es.yml b/config/locales/es.yml index 388cbbbe7..ce5d328c5 100755 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -395,6 +395,7 @@ es: all: "Todas" no_dates: "sin fecha asignada" dates: "Desde el %{open_at} hasta el %{closed_at}" + final_date: "Recuento final/Resultados" index: filters: current: "Abiertas"