Just like we did in commit0214184b2dfor investments, we're removing some possible optimizations (we don't have any benchmarks proving they affect performance at all) in order to simplify the code. The investement votes component `delegate` code was accidentally left but isn't used since commit0214184b2, so we're removing it now that we're removing the `voted_for?` helper method.
61 lines
1.9 KiB
Ruby
61 lines
1.9 KiB
Ruby
class Legislation::ProposalsController < Legislation::BaseController
|
|
include CommentableActions
|
|
include FlagActions
|
|
include ImageAttributes
|
|
|
|
before_action :load_categories, only: [:new, :create, :edit, :map, :summary]
|
|
before_action :load_geozones, only: [:edit, :map, :summary]
|
|
|
|
before_action :authenticate_user!, except: [:show, :map, :summary]
|
|
load_and_authorize_resource :process, class: "Legislation::Process"
|
|
load_and_authorize_resource :proposal, class: "Legislation::Proposal", through: :process
|
|
|
|
invisible_captcha only: [:create, :update], honeypot: :subtitle
|
|
|
|
has_orders %w[most_voted newest oldest], only: :show
|
|
|
|
helper_method :resource_model, :resource_name
|
|
respond_to :html, :js
|
|
|
|
def show
|
|
super
|
|
@document = Document.new(documentable: @proposal)
|
|
if request.path != legislation_process_proposal_path(params[:process_id], @proposal)
|
|
redirect_to legislation_process_proposal_path(params[:process_id], @proposal),
|
|
status: :moved_permanently
|
|
end
|
|
end
|
|
|
|
def create
|
|
@proposal = Legislation::Proposal.new(proposal_params.merge(author: current_user))
|
|
|
|
if @proposal.save
|
|
redirect_to legislation_process_proposal_path(params[:process_id], @proposal), notice: I18n.t("flash.actions.create.proposal")
|
|
else
|
|
render :new
|
|
end
|
|
end
|
|
|
|
def vote
|
|
@proposal.register_vote(current_user, params[:value])
|
|
end
|
|
|
|
private
|
|
|
|
def proposal_params
|
|
params.require(:legislation_proposal).permit(:legislation_process_id, :title,
|
|
:summary, :description, :video_url, :tag_list,
|
|
:terms_of_service, :geozone_id,
|
|
image_attributes: image_attributes,
|
|
documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id])
|
|
end
|
|
|
|
def resource_model
|
|
Legislation::Proposal
|
|
end
|
|
|
|
def resource_name
|
|
"proposal"
|
|
end
|
|
end
|