Files
grecia/app/controllers/admin/poll/polls_controller.rb
Senén Rodero Rodríguez 7c5fa253f5 Fix queries and scopes after column deletion
Some queries were accessing original column instead of the new
translatable one. This should have been causing unexpected behavior
for requests maded in a different locale than the application default.
2019-04-17 17:40:55 +02:00

87 lines
2.0 KiB
Ruby

class Admin::Poll::PollsController < Admin::Poll::BaseController
include Translatable
include ImageAttributes
load_and_authorize_resource
before_action :load_search, only: [:search_booths, :search_officers]
before_action :load_geozones, only: [:new, :create, :edit, :update]
def index
@polls = Poll.not_budget.order(starts_at: :desc)
end
def show
@poll = Poll.find(params[:id])
end
def new
end
def create
@poll = Poll.new(poll_params.merge(author: current_user))
if @poll.save
notice = t("flash.actions.create.poll")
if @poll.budget.present?
redirect_to admin_poll_booth_assignments_path(@poll), notice: notice
else
redirect_to [:admin, @poll], notice: notice
end
else
render :new
end
end
def edit
end
def update
if @poll.update(poll_params)
redirect_to [:admin, @poll], notice: t("flash.actions.update.poll")
else
render :edit
end
end
def add_question
question = ::Poll::Question.find(params[:question_id])
if question.present?
@poll.questions << question
notice = t("admin.polls.flash.question_added")
else
notice = t("admin.polls.flash.error_on_question_added")
end
redirect_to admin_poll_path(@poll), notice: notice
end
def booth_assignments
@polls = Poll.current
end
private
def load_geozones
@geozones = Geozone.all.order(:name)
end
def poll_params
image_attributes = [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy]
attributes = [:name, :starts_at, :ends_at, :geozone_restricted, :results_enabled,
:stats_enabled, :budget_id, geozone_ids: [],
image_attributes: image_attributes]
params.require(:poll).permit(*attributes, translation_params(Poll))
end
def search_params
params.permit(:poll_id, :search)
end
def load_search
@search = search_params[:search]
end
def resource
@poll ||= Poll.find(params[:id])
end
end