This filter was added in commit4285ba4b, it was changed in commit002d8688, and most of the code from the original commit has disappeared without a trace (maybe due to a merge conflict?). This filter could actually be useful if we started using it when users click on a tag. Since we don't, I'm removing it. We might add it back if we decide to actually use it.
76 lines
2.1 KiB
Ruby
76 lines
2.1 KiB
Ruby
class DebatesController < ApplicationController
|
|
include FeatureFlags
|
|
include CommentableActions
|
|
include FlagActions
|
|
include Translatable
|
|
|
|
before_action :authenticate_user!, except: [:index, :show, :map]
|
|
before_action :set_view, only: :index
|
|
before_action :debates_recommendations, only: :index, if: :current_user
|
|
|
|
feature_flag :debates
|
|
|
|
invisible_captcha only: [:create, :update], honeypot: :subtitle
|
|
|
|
has_orders ->(c) { Debate.debates_orders(c.current_user) }, only: :index
|
|
has_orders %w[most_voted newest oldest], only: :show
|
|
|
|
load_and_authorize_resource
|
|
helper_method :resource_model, :resource_name
|
|
respond_to :html, :js
|
|
|
|
def index_customization
|
|
@featured_debates = @debates.featured
|
|
end
|
|
|
|
def show
|
|
super
|
|
@related_contents = Kaminari.paginate_array(@debate.relationed_contents).page(params[:page]).per(5)
|
|
redirect_to debate_path(@debate), status: :moved_permanently if request.path != debate_path(@debate)
|
|
end
|
|
|
|
def vote
|
|
@debate.register_vote(current_user, params[:value])
|
|
set_debate_votes(@debate)
|
|
end
|
|
|
|
def unmark_featured
|
|
@debate.update!(featured_at: nil)
|
|
redirect_to debates_path
|
|
end
|
|
|
|
def mark_featured
|
|
@debate.update!(featured_at: Time.current)
|
|
redirect_to debates_path
|
|
end
|
|
|
|
def disable_recommendations
|
|
if current_user.update(recommended_debates: false)
|
|
redirect_to debates_path, notice: t("debates.index.recommendations.actions.success")
|
|
else
|
|
redirect_to debates_path, error: t("debates.index.recommendations.actions.error")
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def debate_params
|
|
attributes = [:tag_list, :terms_of_service]
|
|
params.require(:debate).permit(attributes, translation_params(Debate))
|
|
end
|
|
|
|
def resource_model
|
|
Debate
|
|
end
|
|
|
|
def set_view
|
|
@view = (params[:view] == "minimal") ? "minimal" : "default"
|
|
end
|
|
|
|
def debates_recommendations
|
|
if Setting["feature.user.recommendations_on_debates"] && current_user.recommended_debates
|
|
@recommended_debates = Debate.recommendations(current_user).sort_by_random.limit(3)
|
|
end
|
|
end
|
|
end
|