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.
71 lines
2.1 KiB
Ruby
71 lines
2.1 KiB
Ruby
class Management::ProposalsController < Management::BaseController
|
|
include HasOrders
|
|
include CommentableActions
|
|
include Translatable
|
|
include MapLocationAttributes
|
|
|
|
before_action :only_verified_users, except: :print
|
|
before_action :set_proposal, only: [:vote, :show]
|
|
before_action :parse_search_terms, only: :index
|
|
before_action :load_geozones, only: [:edit]
|
|
|
|
has_orders %w[confidence_score hot_score created_at most_commented random], only: [:index, :print]
|
|
has_orders %w[most_voted newest], only: :show
|
|
|
|
def create
|
|
@resource = resource_model.new(strong_params.merge(author: current_user,
|
|
published_at: Time.current))
|
|
|
|
if @resource.save
|
|
track_event
|
|
redirect_path = url_for(controller: controller_name, action: :show, id: @resource.id)
|
|
redirect_to redirect_path, notice: t("flash.actions.create.#{resource_name.underscore}")
|
|
else
|
|
load_geozones
|
|
set_resource_instance
|
|
render :new
|
|
end
|
|
end
|
|
|
|
def show
|
|
super
|
|
@notifications = @proposal.notifications
|
|
|
|
redirect_to management_proposal_path(@proposal), status: :moved_permanently if request.path != management_proposal_path(@proposal)
|
|
end
|
|
|
|
def vote
|
|
@follow = Follow.find_or_create_by!(user: current_user, followable: @proposal)
|
|
@proposal.register_vote(managed_user, "yes")
|
|
end
|
|
|
|
def print
|
|
@proposals = Proposal.send("sort_by_#{@current_order}").for_render.limit(5)
|
|
end
|
|
|
|
private
|
|
|
|
def set_proposal
|
|
@proposal = Proposal.find(params[:id])
|
|
end
|
|
|
|
def proposal_params
|
|
attributes = [:video_url, :responsible_name, :tag_list,
|
|
:terms_of_service, :geozone_id,
|
|
map_location_attributes: map_location_attributes]
|
|
params.require(:proposal).permit(attributes, translation_params(Proposal))
|
|
end
|
|
|
|
def resource_model
|
|
Proposal
|
|
end
|
|
|
|
def only_verified_users
|
|
check_verified_user t("management.proposals.alert.unverified_user")
|
|
end
|
|
|
|
def set_comment_flags(comments)
|
|
@comment_flags = managed_user ? managed_user.comment_flags(comments) : {}
|
|
end
|
|
end
|