70 lines
1.8 KiB
Ruby
70 lines
1.8 KiB
Ruby
class Legislation::ProcessesController < Legislation::BaseController
|
|
has_filters %w{open next past}, only: :index
|
|
load_and_authorize_resource
|
|
|
|
def index
|
|
@current_filter ||= 'open'
|
|
@processes = ::Legislation::Process.send(@current_filter).page(params[:page])
|
|
end
|
|
|
|
def show
|
|
if process.active_phase?(:allegations) && process.allegations_phase.started? && draft_version = process.draft_versions.published.last
|
|
redirect_to legislation_process_draft_version_path(process, draft_version)
|
|
elsif process.active_phase?(:debate)
|
|
redirect_to legislation_process_debate_path(process)
|
|
else
|
|
redirect_to legislation_process_allegations_path(process)
|
|
end
|
|
end
|
|
|
|
def debate
|
|
if process.debate_phase.started?
|
|
render :debate
|
|
else
|
|
render :phase_not_open
|
|
end
|
|
end
|
|
|
|
def draft_publication
|
|
if process.draft_publication.started?
|
|
if draft_version = process.draft_versions.published.last
|
|
redirect_to legislation_process_draft_version_path(process, draft_version)
|
|
else
|
|
render :phase_empty
|
|
end
|
|
else
|
|
render :phase_not_open
|
|
end
|
|
end
|
|
|
|
def allegations
|
|
if process.allegations_phase.started?
|
|
if draft_version = process.draft_versions.published.last
|
|
redirect_to legislation_process_draft_version_path(process, draft_version)
|
|
else
|
|
render :phase_empty
|
|
end
|
|
else
|
|
render :phase_not_open
|
|
end
|
|
end
|
|
|
|
def result_publication
|
|
if process.result_publication.started?
|
|
if final_version = process.final_draft_version
|
|
redirect_to legislation_process_draft_version_path(process, final_version)
|
|
else
|
|
render :phase_empty
|
|
end
|
|
else
|
|
render :phase_not_open
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def process
|
|
@process ||= ::Legislation::Process.find(params[:process_id])
|
|
end
|
|
end
|