diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index 456ab56dd..672336ae2 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -1,13 +1,15 @@ class DebatesController < ApplicationController - before_action :parse_order, :parse_tag_filter, only: :index + before_action :parse_order, only: :index + before_action :parse_tag_filter, only: :index before_action :authenticate_user!, except: [:index, :show] load_and_authorize_resource respond_to :html, :js def index - @debates = Debate.search(params).page(params[:page]).for_render.send("sort_by_#{@order}") - @tags = ActsAsTaggableOn::Tag.all + @debates = Debate.all + @debates = @debates.tagged_with(@tag_filter) if @tag_filter + @debates = @debates.page(params[:page]).for_render.send("sort_by_#{@order}") @tag_cloud = Debate.tag_counts.order(taggings_count: :desc, name: :asc).limit(20) set_debate_votes(@debates) end @@ -83,8 +85,9 @@ class DebatesController < ApplicationController end def parse_tag_filter - valid_tags = ActsAsTaggableOn::Tag.all.map(&:name) - @tag_filter = params[:tag] if valid_tags.include?(params[:tag]) + if params[:tag].present? + @tag_filter = params[:tag] if ActsAsTaggableOn::Tag.where(name: params[:tag]).exists? + end end end diff --git a/app/models/debate.rb b/app/models/debate.rb index 9c96c812c..c5cacf0f0 100644 --- a/app/models/debate.rb +++ b/app/models/debate.rb @@ -35,14 +35,6 @@ class Debate < ActiveRecord::Base # Ahoy setup visitable # Ahoy will automatically assign visit_id on create - def self.search(params) - if params[:tag] - tagged_with(params[:tag]) - else - all - end - end - def likes cached_votes_up end diff --git a/app/views/debates/index.html.erb b/app/views/debates/index.html.erb index e9988ac71..cd64b3819 100644 --- a/app/views/debates/index.html.erb +++ b/app/views/debates/index.html.erb @@ -3,30 +3,24 @@
-
- <% if @tag_filter %> -

- <%= t("debates.index.filter_topic", - number: @debates.size, - topic: @tag_filter) %> -

- <% else %> -

<%= t("debates.index.select_topic") %>

-
- -
- <% end %> -
+ <% if @tag_filter %> +
+

+ <%= t("debates.index.filter_topic", + count: @debates.size, + topic: @tag_filter) %> +

+
+ <% end %> -
-
<%= t("debates.index.select_order") %>
+
+
+ <% if @tag_filter %> + <%= t("debates.index.select_order") %> + <% else %> + <%= t("debates.index.select_order_long") %> + <% end %> +