These changes fix a bug that causes categories of a legislation process to be wiped on update of the process. It also adds a regression test for this fix.
82 lines
2.3 KiB
Ruby
82 lines
2.3 KiB
Ruby
class Admin::Legislation::ProcessesController < Admin::Legislation::BaseController
|
|
include Translatable
|
|
include ImageAttributes
|
|
|
|
has_filters %w[active all], only: :index
|
|
|
|
load_and_authorize_resource :process, class: "Legislation::Process"
|
|
|
|
def index
|
|
@processes = ::Legislation::Process.send(@current_filter).order(start_date: :desc)
|
|
.page(params[:page])
|
|
end
|
|
|
|
def create
|
|
if @process.save
|
|
link = legislation_process_path(@process)
|
|
notice = t("admin.legislation.processes.create.notice", link: link)
|
|
redirect_to edit_admin_legislation_process_path(@process), notice: notice
|
|
else
|
|
flash.now[:error] = t("admin.legislation.processes.create.error")
|
|
render :new
|
|
end
|
|
end
|
|
|
|
def update
|
|
if @process.update(process_params)
|
|
link = legislation_process_path(@process)
|
|
redirect_back(fallback_location: (request.referer || root_path),
|
|
notice: t("admin.legislation.processes.update.notice", link: link))
|
|
else
|
|
flash.now[:error] = t("admin.legislation.processes.update.error")
|
|
render :edit
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
@process.destroy!
|
|
notice = t("admin.legislation.processes.destroy.notice")
|
|
redirect_to admin_legislation_processes_path, notice: notice
|
|
end
|
|
|
|
private
|
|
|
|
def process_params
|
|
params.require(:legislation_process).permit(allowed_params)
|
|
end
|
|
|
|
def allowed_params
|
|
[
|
|
:start_date,
|
|
:end_date,
|
|
:debate_start_date,
|
|
:debate_end_date,
|
|
:draft_start_date,
|
|
:draft_end_date,
|
|
:draft_publication_date,
|
|
:allegations_start_date,
|
|
:allegations_end_date,
|
|
:proposals_phase_start_date,
|
|
:proposals_phase_end_date,
|
|
:result_publication_date,
|
|
:debate_phase_enabled,
|
|
:draft_phase_enabled,
|
|
:allegations_phase_enabled,
|
|
:proposals_phase_enabled,
|
|
:draft_publication_enabled,
|
|
:result_publication_enabled,
|
|
:published,
|
|
:custom_list,
|
|
:background_color,
|
|
:font_color,
|
|
translation_params(::Legislation::Process),
|
|
documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy],
|
|
image_attributes: image_attributes
|
|
]
|
|
end
|
|
|
|
def resource
|
|
@process || ::Legislation::Process.find(params[:id])
|
|
end
|
|
end
|