class Admin::Poll::BoothAssignmentsController < Admin::Poll::BaseController before_action :load_poll, except: [:create, :destroy] def index @booth_assignments = @poll.booth_assignments.includes(:booth).order("poll_booths.name") .page(params[:page]).per(50) end def search_booths load_search @booths = ::Poll::Booth.search(@search) respond_to do |format| format.js end end def show included_relations = [:recounts, :voters, officer_assignments: [officer: [:user]]] @booth_assignment = @poll.booth_assignments.includes(*included_relations).find(params[:id]) @voters_by_date = @booth_assignment.voters.group_by {|v| v.created_at.to_date} @partial_results = @booth_assignment.partial_results @recounts = @booth_assignment.recounts end def create @poll = Poll.find(booth_assignment_params[:poll_id]) @booth = Poll::Booth.find(booth_assignment_params[:booth_id]) @booth_assignment = ::Poll::BoothAssignment.new(poll: @poll, booth: @booth) if @booth_assignment.save notice = t("admin.poll_booth_assignments.flash.create") else notice = t("admin.poll_booth_assignments.flash.error_create") end respond_to do |format| format.js { render layout: false } end end def destroy @poll = Poll.find(booth_assignment_params[:poll_id]) @booth = Poll::Booth.find(booth_assignment_params[:booth_id]) @booth_assignment = ::Poll::BoothAssignment.find(params[:id]) if @booth_assignment.destroy notice = t("admin.poll_booth_assignments.flash.destroy") else notice = t("admin.poll_booth_assignments.flash.error_destroy") end respond_to do |format| format.js { render layout: false } end end def manage @booths = ::Poll::Booth.all.order(name: :asc).page(params[:page]).per(300) @poll = Poll.find(params[:poll_id]) end private def load_booth_assignment @booth_assignment = ::Poll::BoothAssignment.find(params[:id]) end def booth_assignment_params params.permit(:booth_id, :poll_id) end def load_poll @poll = ::Poll.find(params[:poll_id]) end def search_params params.permit(:poll_id, :search) end def load_search @search = search_params[:search] end end